我在 Cloud SQL 实例中有一个数据库。我想将其内容复制到 BigQuery 中以便执行分析。 我不需要不断更新 BigQuery 数据集。如果只导出一次就可以了。
实现这一目标的最佳方法是什么?
“创建表”BigQuery UI 不允许我从 Cloud SQL 导入(仅限文件、云存储、驱动器或 BigTable)。
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;");
创建与 CloudSQL 服务器的连接后,您可以使用它在单个查询中从 BigQuery 创建表。
CREATE TABLE CUSTOMER AS
SELECT * FROM EXTERNAL_QUERY("<your_connection_id>", "SELECT * FROM CUSTOMER");
到目前为止,还没有任何自动化工具可以将数据从 Cloud SQL 导入 BigQuery,因此您可以遵循的过程包括: