載入範例資料

本文件提供如何將 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 檔案格式匯出來源資料。建議您使用 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 相符的 Spanner 架構:

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

後續步驟