我有一个包含5个表的数百万条记录的大型数据集。我正在展平这些表并尝试将它们作为一个批处理作业上传到bigquery中。我将使用ruby脚本连接到mysql进行查询并批量上传到bigquery。
我将使用此包装器连接到BigQuery https://github.com/abronte/BigQuery
此包装器连接到MySQL https://rubygems.org/gems/mysql
我的想法是,我将一次从mysql查询100k记录并上传这些记录,但我不想达到这些限制...... 以下限制适用于将数据流式传输到BigQuery。
最大行尺寸:1 MB
HTTP请求大小限制:10 MB
每秒最大行数:每个表每秒100,000行。超过这个数额 将导致quota_exceeded错误。每个请求的最大行数:500
每秒最大字节数:每个表每秒100 MB。超过这个 金额将导致quota_exceeded错误。
来源:https://cloud.google.com/bigquery/streaming-data-into-bigquery
问题:
(1)我是否正在重新发明轮子,那里有一些东西可以做到这一点?
(2)是否有一种简单的方法来标记在bigquery中上传的内容以防止重复?
(3)有什么方法可以避免达到这些限制?
答案 0 :(得分:3)
将数据放入BigQuery有不同的方法:
所以你要做的就是加载数据,而不是流式传输。 从实时数据源流式传输是很好的,但是当您迁移项目时,更容易将数据转储为CSV或JSON,然后使用批处理loading into BigQuery,您可以在其中加载大到5TB(JSON)的文件。
如果你这样做,你所有的限制麻烦都消失了,你不会重新发明轮子。
您的应用稍后将使用流式插入来添加您的表格的数据。