将Google Cloud SQL备份上传到Bigquery

时间:2015-01-05 17:32:14

标签: google-bigquery

我在尝试将Google Cloud SQL数据库迁移到BigQuery时遇到了麻烦。我已将数据库备份从Cloud SQL导出到云存储,但在尝试将其导入BigQuery时,我收到错误:gs:// bucket-name / <错误:'not found:URI' EM>文件名

我正在尝试做甚么可能吗?我希望以某种方式直接将Cloud SQL数据上传到BigQuery。它是一个大表(> 27GB),我与Cloud SQL有很多连接问题,所以导出为CSV或JSON不是最好的选择。

2 个答案:

答案 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数据库,您可能需要编写脚本来迭代所有表并循环复制它们。