Google bigquery 从MySQL到BigQuery的传输是否不超过限制?

Google bigquery 从MySQL到BigQuery的传输是否不超过限制?,google-bigquery,Google Bigquery,我有一个大型数据集,包含5个表中的数百万条记录。我正在压平这些表,并尝试将它们作为一个批处理作业上传到bigquery中。我将使用一个ruby脚本连接到mysql进行查询,并将它们批量上传到bigquery中 我将使用此包装器连接到BigQuery 此包装器用于连接到MySQL 我的想法是一次从mysql查询10万条记录并上传这些记录,但我不想达到这些限制。。。 以下限制适用于将数据流式传输到BigQuery 最大行大小:1 MB HTTP请求大小限制:10 MB 每秒最大行数:每个表每秒100

我有一个大型数据集,包含5个表中的数百万条记录。我正在压平这些表,并尝试将它们作为一个批处理作业上传到bigquery中。我将使用一个ruby脚本连接到mysql进行查询,并将它们批量上传到bigquery中

我将使用此包装器连接到BigQuery

此包装器用于连接到MySQL

我的想法是一次从mysql查询10万条记录并上传这些记录,但我不想达到这些限制。。。 以下限制适用于将数据流式传输到BigQuery

最大行大小:1 MB
HTTP请求大小限制:10 MB
每秒最大行数:每个表每秒100000行。超过这个数额 将导致超出配额的错误。每个请求的最大行数:500
每秒最大字节数:每个表每秒100 MB。超过这个 金额将导致超出配额的错误

资料来源:


问题:
(1) 我是不是在重新发明轮子,而且已经有什么东西可以做到这一点了?
(2) 是否有一种简单的方法来标记bigquery中上载的内容以防止重复?

(3) 有没有办法避免达到这些限制?

在BigQuery中放置数据有不同的方法:

  • 加载作业
  • 流式插入
因此,您在这里尝试的是加载数据,而不是流式传输数据。 从实时数据源进行流式处理很好,但是当您迁移项目时,将数据转储为CSV或JSON,然后使用批处理,您可以在其中加载大到5TB(JSON)的文件

如果你这样做的话,你所有与极限有关的麻烦都消失了,你也不会重新发明轮子


您的应用程序稍后将使用Streaming insert向表中添加即时数据。

请注意,如果您正在从mysql读取数据,则可以使用mysqldump转储到CSV。如果bigquery在CSV格式方面给您带来了问题,您可能需要使用格式选项(请尝试
--字段以=\t结尾--行以=\n结尾),因为制表符分隔的格式比逗号分隔的格式更稳定


将数据转储到csv后,您可以将其上载到google云存储,然后运行bigquery加载作业以立即导入整个内容。

感谢奔腾10!您是对的。我确实尝试使用csv进行上载,但bigquery会在csv中返回一些格式错误。我将看看是否可以编写一个快速脚本,将整个数据库拆分为10兆fJSON中的iles,也许这将是一种更好的方法。您不需要拆分为10万个文件。JSON加载作业的限制是5 TB。好吗?