作为使用联邦查询将Cloud SQL表迁移到BigQuery的一部分,我正在执行一个查询,以生成一个大小约为1TB(几十亿行)的新BigQuery表。我使用SQL客户端提交查询作业,在查询中我从Cloud BigQuery数据库表中选择all并使用EXTERNAL_QUERY。
我发现查询可能需要几个小时(并且失败,并显示"Operation timed 6+ after 6.0 hour")!即使它没有失败,我也想加快速度,因为我可能需要再次执行此迁移。
我看到PostgreSQL出口是20Mb/秒,与需要半天的工作一致。如果我考虑一些更分布式的数据流,会有帮助吗?或者更简单,使用可以通过BigQuery异步运行的BigQuery客户端来扩展我的Python代码以生成多个查询?
或者,是否可以仍然使用单个查询,但增加出口流量(数据库配置)?
发布于 2021-01-06 08:37:17
我认为使用转储导出更合适。
在大表上运行查询是一项低效的工作。
我建议将Cloud SQL数据导出为CSV文件。
BigQuery可以导入CSV格式的文件,因此您可以使用此文件创建新的bigQuery表。

我不确定这项工作需要多长时间,但至少不会失败。
有关将云SQL导出到CSV dump的更多详细工作,请参考here。
https://stackoverflow.com/questions/65588494
复制相似问题