我在尝试将Google Cloud SQL数据库迁移到BigQuery时遇到了麻烦。我已将数据库备份从Cloud SQL导出到云存储,但在尝试将其导入BigQuery时,我收到错误:gs:// bucket-name / <错误:'not found:URI' EM>文件名
我正在尝试做甚么可能吗?我希望以某种方式直接将Cloud SQL数据上传到BigQuery。它是一个大表(> 27GB),我与Cloud SQL有很多连接问题,所以导出为CSV或JSON不是最好的选择。
答案 0 :(得分:3)
BigQuery不支持mysql备份格式,因此最佳路由是从云sql数据库生成csv或json,并将这些文件保存到云存储中。
有关导入数据的更多信息,请参阅BigQuery documentation。
答案 1 :(得分:2)
您可以使用BigQuery Cloud SQL federated query将Cloud SQL表复制到BigQuery中。您可以使用一个BigQuery SQL语句来实现。例如,按照SQL将MySQL表sales_20191002复制到BigQuery表demo.sales_20191002。
INSERT
demo.sales_20191002 (column1, column2 etc..)
SELECT
*
FROM
EXTERNAL_QUERY(
"project.us.connection",
"SELECT * FROM sales_20191002;");
EXTERNAL_QUERY("connection", "foreign SQL")
将在“连接”中指定的Cloud SQL数据库中执行“外部SQL”,并将结果返回给BigQuery。 “外部SQL”是源数据库SQL方言(MySQL或PostgreSQL)。
在运行SQL查询之前,您需要创建一个指向Cloud SQL数据库的BigQuery连接。
要复制整个Cloud SQL数据库,您可能需要编写脚本来迭代所有表并循环复制它们。