【问题标题】:Streaming data from Cloud storage to BigQuery将数据从云存储流式传输到 BigQuery
【发布时间】:2016-08-10 19:38:08
【问题描述】:

我正在尝试找出将数据从云存储加载到 BigQuery 的最有效方法。高效我的意思是 - 最好我不想将数据拆分成更小的集合来分别上传每个子集 - 解压缩我的数据以便我可以利用 bq 工具的 5TB 限制对于我的目的来说也是不切实际的,即将 30 多个(>4GB)数据集上传到单独的 BigQuery 表中。

我研究了以下替代方案: 1. bq load - 压缩数据限制为 4GB 2.拆分数据,转换为pandas数据框,转换为json,加载到BQ - 这需要拆分,考虑到我必须上传的数据集数量并且它们都有不同的行大小,所以我想避免这种情况,所以它不会将手头的任务自动化是微不足道的。 3. 云数据流?

我没有研究 Dataflow 的详细信息,但我的总体问题是 - 对于大型数据集,这是一个更好的选择 - 拆分数据并运行批量上传或流式传输数据,即一次插入一行云存储到 BQ?

【问题讨论】:

  • 在你的情况下,我会 100% 投票反对流媒体
  • 请注意,.gz 文件不是可分片的压缩格式,因此使用非常大的 .gz 文件进行数据存储在任何大规模数据分析框架中都会出现问题。即使支持 100GB 的 .gz 文件,单个工作人员处理该文件也需要 很长时间 时间。

标签: google-bigquery


【解决方案1】:

几乎可以肯定,最简单的选择是解压缩数据,将其复制到 GCS,然后从那里将其加载到 BigQuery。您的所有其他建议要么会更昂贵、工作量更大,要么更不可能扩展。

使用解压后的输入数据唯一的缺点是网络上传时间较长,而且您需要为将其存储在 GCS 中支付更多费用。也就是说,当您将其加载到 bigquery 中时,它只需要在 GCS 中停留几分钟。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-23
    • 2021-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    相关资源
    最近更新 更多