我正在尝试找出将数据从云存储加载到BigQuery的最有效方法。我的意思是高效 - 我最好不要将数据拆分成较小的集合以分别上传每个子集 - 解压缩我的数据以便我可以利用bq工具的5TB限制对我的目的来说也不实用,即将超过30个(> 4GB)数据集上传到单独的BigQuery表中。
我研究了以下替代方案: 1. bq load - 对压缩数据有4GB的限制 2.拆分数据,转换为pandas数据帧,转换为json,加载到BQ - 这需要拆分,我想避免给定我必须上传的数据集的数量,并且它们都有不同的行大小,所以它不会使手头的任务自动化是微不足道的。 3.云数据流?
我没有查看Dataflow的详细信息,但我的整体问题是 - 对于大数据集,这是一个更好的选择 - 分割数据和运行批量上传或流数据,即从一次插入一行云存储到BQ?
答案 0 :(得分:1)
几乎可以肯定,最简单的选择是解压缩数据,将其复制到GCS中,然后从那里将数据加载到BigQuery中。您的所有其他建议要么更昂贵,要么更多,或者不太可能扩展。
使用解压缩输入数据的唯一缺点是网络上传时间较长,您需要支付更多费用才能将其存储在GCS中。也就是说,当你将它加载到bigquery时,它只需要在GCS中几分钟。