从MySQL转移到BigQuery没有超出限制?

时间:2015-08-26 15:57:00

标签: google-bigquery

我有一个包含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)有什么方法可以避免达到这些限制?

1 个答案:

答案 0 :(得分:3)

将数据放入BigQuery有不同的方法:

  • 加载工作
  • 流媒体插入

所以你要做的就是加载数据,而不是流式传输。 从实时数据源流式传输是很好的,但是当您迁移项目时,更容易将数据转储为CSV或JSON,然后使用批处理loading into BigQuery,您可以在其中加载大到5TB(JSON)的文件。

如果你这样做,你所有的限制麻烦都消失了,你不会重新发明轮子。

您的应用稍后将使用流式插入来添加您的表格的数据。