将 Google Cloud SQL 数据导入 BigQuery 的最佳方式

Ste*_*ren 6 google-cloud-sql google-bigquery

我在 Cloud SQL 实例中有一个数据库。我想将其内容复制到 BigQuery 中以进行分析。我不需要不断更新 BigQuery 数据集。如果导出只完成一次就可以了。

实现这一目标的最佳方法是什么?

“创建表”BigQuery UI 不允许我从 Cloud SQL(仅限文件、云存储、云端硬盘或 BigTable)导入。

Jia*_* He 8

BigQuery 可以通过Cloud SQL 联合查询直接查询 Cloud SQL 。它引入了一个名为 EXTERNAL_QUERY( connection_id , external_sql )的新 SQL 函数,该函数在connection_id指定的 Cloud SQL 数据库中运行external_sql

您需要先在 BigQuery 中创建连接,然后在 EXTERNAL_QUERY() 中引用connection_id。以下是将 Cloud SQL 数据复制到 BigQuery 的示例查询。

INSERT
  demo.customers (column1)
SELECT
   * 
FROM
   EXTERNAL_QUERY("project.us.connection",
                  "SELECT column1 FROM mysql_table;");
Run Code Online (Sandbox Code Playgroud)


loi*_*ieu 6

创建与 CloudSQL 服务器的连接后,您可以使用它在单个查询中从 BigQuery 创建表。

CREATE TABLE CUSTOMER AS
SELECT * FROM EXTERNAL_QUERY("<your_connection_id>", "SELECT * FROM CUSTOMER");
Run Code Online (Sandbox Code Playgroud)


dse*_*sto 3

到目前为止,还没有自动工具可以将数据从 Cloud SQL 导入 BigQuery,因此您可以遵循的过程包括:

  1. 按照文档中的说明,以 CSV 格式从 Cloud SQL 实例中所需的表中导出数据。
  2. 按照文档中所述的过程,将 CSV 数据导入到您想要的 BigQuery 表中。

你完成了。如果您的数据库很大并且有很多表,您可能需要使用 API以编程方式进行导入。