将 Google 云 SQL 备份上传到 Bigquery

Upload Google Cloud SQL backup to Bigquery

我在尝试将 Google 云 SQL 数据库移动到 BigQuery 时遇到了麻烦。我已将数据库备份从 Cloud SQL 导出到 Cloud Storage,但在尝试将其导入 BigQuery 时,出现错误:'Not found: URI' for gs://bucket-name/文件名

我想做的事情有可能吗?我希望以某种方式直接将 Cloud SQL 数据上传到 BigQuery。这是一个很大的 table (>27GB),我一直在与 Cloud SQL 连接时遇到很多问题,因此导出为 CSV 或 JSON 不是最佳选择。

BigQuery 不支持 mysql 备份格式,因此最好的方法是从云 sql 数据库生成 csv 或 json 并将这些文件保存到云存储中.

有关导入数据的更多信息,请参阅 BigQuery documentation

您可以使用 BigQuery Cloud SQL federated query 将 Cloud SQL table 复制到 BigQuery 中。您可以使用一个 BigQuery SQL 语句来完成。例如,以下 SQL 将 MySQL table sales_20191002 复制到 BigQuery table 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") 将在 "connection" 中指定的 Cloud SQL 数据库中执行 "foreign SQL",并将 return 结果返回到 BigQuery。 "foreign SQL" 是源数据库 SQL 方言(MySQL 或 PostgreSQL)。

在 运行 以上 SQL 查询之前,您需要创建一个指向您的 Cloud SQL 数据库的 BigQuery 连接。

要复制整个 Cloud SQL 数据库,您可能需要编写一个脚本来迭代所有 table 并循环复制它们。