加载示例数据

本文档介绍了如何在 导出到 Spanner。您可以在执行生产数据迁移之前加载示例数据,以测试架构、查询和应用。

准备工作

  1. 安装 Google Cloud CLI 或使用 Cloud Shell,其中预安装了所有必要的工具。

  2. 如需获得将 BigQuery 数据导出到 Spanner 所需的权限,请让管理员向您授予项目的以下 IAM 角色:

    • 从 BigQuery 表中导出数据: BigQuery 数据查看者 (roles/bigquery.dataViewer)
    • 运行导出作业: BigQuery 用户 (roles/bigquery.user)
    • 将数据写入 Spanner 表: Spanner Database User (roles/spanner.databaseUser)

    如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

    您也可以通过自定义角色或其他预定义角色来获取所需的权限。

将示例数据加载到 Spanner

以下说明使用 BigQuery 反向 ETL 工作流和 Google Cloud CLI

  1. 使用以下命令在 gcloud CLI 上设置默认项目:

     gcloud config set project PROJECT_ID
  2. 以 CSV 文件格式导出源数据。建议将 pg_dump - PostgreSQL 数据库或 mysqldump 使用 MySQL 数据库工具将示例数据转换为 CSV 文件 文件格式

  3. 使用以下 bq 命令将数据加载到 BigQuery 中:

    1. 创建 BigQuery 数据集。

      bq mk BQ_DATASET
    2. 将数据批量加载到新的 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
  4. 创建一个与导入的 BQ_TABLE

     gcloud spanner databases ddl update SPANNER_DATABASE \
     --instance=SPANNER_INSTANCE \
     --ddl="CREATE TABLE SPANNER_TABLE ..."

    如需更多信息 请参阅更新 Spanner 架构

  5. 使用 以下命令:

       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;'
     

后续步骤