首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将mysql结果输入BigQuery的最快方法

问将mysql结果输入BigQuery的最快方法
EN

Stack Overflow用户
提问于 2017-09-30 04:58:44
回答 1查看 1.9K关注 0票数 1

我有一个104行的mysql表。使用流插入的方法,它几乎需要三个小时,成本为5美元。

查询或复制mysql表并将其放入BQ的最快方法是什么?例如,是否有一种方法可以将mysql数据库(不是GCP上的数据库)直接流到GCS上的csv文件中,然后从BQ加载csv文件?我们注意到将csv文件从GCS加载到BQ中是相当快的。

以最快的方式将来自外部mysql表(或任何外部数据库)的数据以最快的方式输入BQ的建议方法是什么?

Update:请注意,我们并不试图通过执行增量提要来缩小数据大小(我们已经这样做了)。这个问题只是问,从外部数据库将1亿行数据(比如15 an )输入BQ的绝对最快的方法是什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-30 17:11:00

有一系列博客WePay展示了他们实现这一目标的方法:

MySQL到GCS操作符对MySQL表执行SELECT查询。选择提取大于(或等于)上一次高水印的所有数据。高水印要么是表的主键(如果表仅附加),要么是修改时间戳列(如果表接收到更新)。同样,SELECT语句也可以追溯一点时间(或多行),以捕获上次查询中可能丢弃的行(由于上面提到的问题)。

有了气流,他们设法使BigQuery与他们的MySQL数据库保持每15分钟同步。

增编(因为这个问题想知道在BigQuery中插入行的最快方法):

  • 流插入是将数据输入BigQuery的最快方法,但是每秒有10万行的限制。100米行将花费100秒,至少以这个速度。
  • bq load是GCS中的一个文件(json、csv、avro),通常是批量和免费导入数据的最快方法。
  • 尝试一个联邦查询:将您的(json、csv、avro)文件放在GCS中,而不是直接从GCS运行传统的导入查询数据。这应该比bq load更快(不需要等待负载调度器),并且可以将SELECT *的结果输出到新的BQ原生表中。这样做的成本将是查询的成本(扫描字节)。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46499732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档