本文档介绍了如何在 导出到 Spanner。您可以在执行生产数据迁移之前加载示例数据,以测试架构、查询和应用。
准备工作
安装 Google Cloud CLI 或使用 Cloud Shell,其中预安装了所有必要的工具。
-
如需获得将 BigQuery 数据导出到 Spanner 所需的权限,请让管理员向您授予项目的以下 IAM 角色:
-
从 BigQuery 表中导出数据:
BigQuery 数据查看者 (
roles/bigquery.dataViewer
) -
运行导出作业:
BigQuery 用户 (
roles/bigquery.user
) -
将数据写入 Spanner 表:
Spanner Database User (
roles/spanner.databaseUser
)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
-
从 BigQuery 表中导出数据:
BigQuery 数据查看者 (
将示例数据加载到 Spanner
以下说明使用 BigQuery 反向 ETL 工作流和 Google Cloud CLI。
使用以下命令在 gcloud CLI 上设置默认项目:
gcloud config set project PROJECT_ID
以 CSV 文件格式导出源数据。建议将
pg_dump
- PostgreSQL 数据库或mysqldump
使用 MySQL 数据库工具将示例数据转换为 CSV 文件 文件格式使用以下
bq
命令将数据加载到 BigQuery 中:创建 BigQuery 数据集。
bq mk BQ_DATASET
将数据批量加载到新的 BigQuery 表中。
bq load \ --source_format=CSV \ --autodetect \ --allow_quoted_newlines \ BQ_DATASET.BQ_TABLE /path/to/file
或者,您也可以从 Cloud Storage 文件批量加载数据。
bq load \ --source_format=CSV \ --autodetect \ --allow_quoted_newlines \ BQ_DATASET.BQ_TABLE gs://BUCKET/FILE
创建一个与导入的 BQ_TABLE:
gcloud spanner databases ddl update SPANNER_DATABASE \ --instance=SPANNER_INSTANCE \ --ddl="CREATE TABLE SPANNER_TABLE ..."
如需更多信息 请参阅更新 Spanner 架构。
使用 以下命令:
bq --use_legacy_sql=false 'EXPORT DATA OPTIONS( uri="https://spanner.googleapis.com/projects/PROJECT_ID/instances/SPANNER_INSTANCE/databases/SPANNER_DATABASE" format='CLOUD_SPANNER' spanner_options="""{ "table": "SPANNER_TABLE" }""" ) AS SELECT * FROM BQ_DATASET.BQ_TABLE;'