2016-04-18 42 views
0

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

我看着下列选项:1。 BQ负载 - 具有4GB的限制对压缩数据 2分的数据,转换成数据帧大熊猫,转换成JSON,加载到BQ - 这需要分裂,这是我我想避免给定我必须上传的数据集的数量,并且它们都有不同的行大小,所以手动将任务自动化并不是微不足道的。 3.云数据流?

我还没有看过Dataflow的细节,但我的整体问题是 - 对于大数据集,这是一个更好的选择 - 分割数据并运行批量上传或流数据,即一次插入一行从云存储到BQ?

+0

在你的情况下,我会100%投票反对流 –

+0

请注意,.gz文件不是可分片压缩格式,因此使用非常大的.gz文件进行数据存储将会在任何大规模数据分析框架中出现问题。即使支持100GB .gz文件,单个工作人员也需要很长时间来处理该文件。 –

回答

1

几乎可以肯定,最简单的选择是解压缩数据,将其复制到GCS中,并从那里将其加载到BigQuery中。您的所有其他建议要么会更昂贵,更多工作,要么规模可能性更小。

使用解压缩的输入数据的唯一缺点是网络上传时间较长,您将花更多的钱存储在GCS中。也就是说,只需要在GCS中放几分钟,然后将其加载到bigquery中。

相关问题