提问者:小点点

在加载到BigQuery之前在Google Cloud Storage上暂存数据是否(仍然)有优势?


我有一个数据集存储为本地文件(~100GB未压缩JSON,仍然可以压缩),我想摄取到BigQuery(即存储在那里)。

某些指南(例如,https://www.oreilly.com/library/view/google-bigquery-the/9781492044451/ch04.html)建议先将此数据上传到Google Cloud Storage,然后再将其加载到BigQuery。

这样做是否有优势,而不是直接从本地源加载到BigQuery中(在本地文件上使用bq load)?有几个地方建议这可能会加快加载速度或使其更可靠(Google Bigquery加载具有本地文件大小限制的数据,大型bigquery加载作业的最可靠格式),但我不确定今天是否仍然如此。例如,根据其留档,BigQuery支持可恢复上传以提高可靠性(https://cloud.google.com/bigquery/docs/loading-data-local#resumable),尽管我不知道在使用bq load时是否使用了这些。我能找到的唯一仍然适用的限制是压缩JSON文件的大小限制为4 GB(https://cloud.google.com/bigquery/quotas#load_jobs)。


共1个答案

匿名用户

是的,在云存储中拥有数据是开发过程中的一大优势。在我的案例中,我经常多次从云存储中的数据创建一个BigQuery表,直到我调整所有的东西,如架构、模型、分区、解决错误等。每次上传数据都会非常耗时。

云存储到BigQuery

优点

  • 加载数据非常快
  • 可以在不使用时删除BQ表并在需要时导入它(BQ表比Cloud Storage中的普通压缩数据大得多)
  • 您保存本地存储
  • 创建表期间失败的可能性较小(从本地存储可能存在网络问题、计算机问题等)

缺点

  • 您为存储支付了一些额外的费用(如果您不打算经常访问您的数据,例如每月一次-您可以降低价格以使用近线存储)

所以我会先将数据存储到Cloud Storage,但当然,这取决于您的用例。