載入範例資料

本文說明如何將少量資料以 CSV 檔案格式載入 Spanner。您可以在執行正式資料遷移作業前載入範例資料,測試結構定義、查詢和應用程式。

事前準備

  1. 安裝 Google Cloud CLI,或使用 Cloud Shell,其中已預先安裝所有必要工具。

  2. 如要取得將 BigQuery 資料匯出至 Spanner 的必要權限,請要求管理員在專案中授予您下列 IAM 角色:

    • 從 BigQuery 表格匯出資料: BigQuery 資料檢視者 (roles/bigquery.dataViewer)
    • 執行匯出作業: BigQuery 使用者 (roles/bigquery.user)
    • 將資料寫入 Spanner 表格: Spanner 資料庫使用者 (roles/spanner.databaseUser)

    如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

    您或許還可透過自訂角色或其他預先定義的角色取得必要權限。

將範例資料載入 Spanner

下列操作說明使用 BigQuery 反向 ETL 工作流程和 Google Cloud CLI 執行。

  1. 使用下列指令,在 gcloud CLI 中設定預設專案:

     gcloud config set project PROJECT_ID
  2. 以 CSV 檔案格式匯出來源資料。請考慮使用 PostgreSQL 資料庫的 pg_dump 或 MySQL 資料庫的 mysqldump 工具,將範例資料轉換為 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. 使用下列指令建立與匯入資料相符的 Spanner 結構定義:BQ_TABLE

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

    詳情請參閱「更新 Spanner 結構定義」。

  5. 使用下列指令,將資料從 BigQuery 匯出至 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;'
     

後續步驟