【发布时间】:2017-09-30 04:58:44
【问题描述】:
我有一个 104M 行的 mysql 表。使用streaming inserts的方法,大约需要三个小时,费用为5美元。
查询或复制 mysql 表并将其放入 BQ 的最快方法是什么?例如,有没有办法将 mysql 数据库(不在 GCP 上)直接流式传输到 GCS 上的 csv 文件中,然后从 BQ 加载 csv 文件?我们注意到loading csv files from GCS into BQ 非常快。
以最快的方式将数据从外部 mysql 表(或任何外部数据库,实际上)获取到 BQ 的建议方法是什么?
更新:请注意,我们并没有尝试通过增量馈送来减少数据大小(我们已经这样做了)。这个问题只是问从外部数据库将 100M 行数据(比如说 15GB)获取到 BQ 中的绝对最快的方法是什么。
【问题讨论】:
-
我从来没有做过,但我想最快的方法是将表格导出为 CSV,然后上传到 GCS。您也可以使用 Cloud Dataflow,并编写一个自定义接收器来与 MySQL 通信,但这可能不值得。
-
@GrahamPolley 关于如何/为什么比直接流式插入更快的任何基准?
-
没有。流式传输会更快,但请记住,您必须为流式插入付费。您还需要通过流式处理指数式退避和重试。
标签: mysql google-bigquery