将 Google Cloud SQL 数据导入 BigQuery 的最佳方式
Best way to import Google Cloud SQL data into BigQuery
我在云 SQL 实例中有一个数据库。我想将其内容复制到 BigQuery 中以执行分析。
我不需要不断更新 BigQuery 数据集。只导出一次就可以了
实现此目标的最佳方法是什么?
'Create Table' BigQuery UI 不允许我从云端导入 SQL(仅文件、云端存储、驱动器或 BigTable)。
到目前为止,还没有将数据从云端导入 BigQuery 的自动化工具SQL,因此您可以遵循以下步骤:
- 以 CSV 格式从您想要的 table 云 SQL 实例中导出数据,如 in the documentation 所述。
- 将 CSV 数据导入 BigQuery table 您要遵循的过程也已解释 in the documentation。
大功告成。如果您的数据库很大并且有很多 table,您可能希望以编程方式进行导入,using the API.
BigQuery 可以通过 Cloud SQL federated queries 直接查询 Cloud SQL。它引入了一个新的 SQL 函数,称为 EXTERNAL_QUERY(connection_id, external_sql), 运行 external_sql SQL 数据库中的 connection_id。
您需要先在 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;");
创建与 CloudSQL 服务器的连接后,您可以使用它在单个查询中从 BigQuery 创建 table。
CREATE TABLE CUSTOMER AS
SELECT * FROM EXTERNAL_QUERY("<your_connection_id>", "SELECT * FROM CUSTOMER");
更新解决方案:现在处于测试阶段,您可以使用 Cloud Data Fusion 非常轻松地完成此操作(目前支持 MySQL 和 SQL 服务器)。
- Using Replication
- MySQL Tutorial(官方文档)
- SQL Server Tutorial(官方文档)
我在云 SQL 实例中有一个数据库。我想将其内容复制到 BigQuery 中以执行分析。 我不需要不断更新 BigQuery 数据集。只导出一次就可以了
实现此目标的最佳方法是什么?
'Create Table' BigQuery UI 不允许我从云端导入 SQL(仅文件、云端存储、驱动器或 BigTable)。
到目前为止,还没有将数据从云端导入 BigQuery 的自动化工具SQL,因此您可以遵循以下步骤:
- 以 CSV 格式从您想要的 table 云 SQL 实例中导出数据,如 in the documentation 所述。
- 将 CSV 数据导入 BigQuery table 您要遵循的过程也已解释 in the documentation。
大功告成。如果您的数据库很大并且有很多 table,您可能希望以编程方式进行导入,using the API.
BigQuery 可以通过 Cloud SQL federated queries 直接查询 Cloud SQL。它引入了一个新的 SQL 函数,称为 EXTERNAL_QUERY(connection_id, external_sql), 运行 external_sql SQL 数据库中的 connection_id。
您需要先在 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;");
创建与 CloudSQL 服务器的连接后,您可以使用它在单个查询中从 BigQuery 创建 table。
CREATE TABLE CUSTOMER AS
SELECT * FROM EXTERNAL_QUERY("<your_connection_id>", "SELECT * FROM CUSTOMER");
更新解决方案:现在处于测试阶段,您可以使用 Cloud Data Fusion 非常轻松地完成此操作(目前支持 MySQL 和 SQL 服务器)。
- Using Replication
- MySQL Tutorial(官方文档)
- SQL Server Tutorial(官方文档)