首页 > 解决方案 > 在加载到 BigQuery 之前在 Google Cloud Storage 上暂存数据是否(仍然)有优势?

问题描述

我有一个存储为本地文件的数据集(约 100 GB 未压缩的 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)。

标签: google-bigquerygoogle-cloud-storage

解决方案


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

从 Cloud Storage 到 BigQuery

优点

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

缺点

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

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


推荐阅读