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

时间:2017-12-03 22:46:40

标签: google-bigquery google-cloud-sql

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

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

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

4 个答案:

答案 0 :(得分:2)

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

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

INSERT
  demo.customers (column1)
SELECT
   * 
FROM
   EXTERNAL_QUERY("project.us.connection",
                  "SELECT column1 FROM mysql_table;");

答案 1 :(得分:1)

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

  1. 按照in the documentation中的说明,以CSV格式从您希望在Cloud SQL实例中的表中导出数据。
  2. 按照in the documentation
  3. 解释的过程将CSV数据导入您想要的BigQuery表

    你完成了。如果您的数据库很大且有很多表,您可能希望以编程方式进行导入using the API

答案 2 :(得分:1)

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

CREATE TABLE CUSTOMER AS
SELECT * FROM EXTERNAL_QUERY("<your_connection_id>", "SELECT * FROM CUSTOMER");

答案 3 :(得分:0)

更新的解决方案:现在在测试版中,您可以使用 Cloud Data Fusion 非常轻松地完成此操作(目前支持 MySQL 和 SQL Server)。