本文說明如何將少量資料以 CSV 檔案格式載入 Spanner。您可以在執行正式資料遷移作業前載入範例資料,測試結構定義、查詢和應用程式。
事前準備
安裝 Google Cloud CLI,或使用 Cloud Shell,其中已預先安裝所有必要工具。
-
如要取得將 BigQuery 資料匯出至 Spanner 的必要權限,請要求管理員在專案中授予您下列 IAM 角色:
-
從 BigQuery 表格匯出資料:
BigQuery 資料檢視者 (
roles/bigquery.dataViewer
) -
執行匯出作業:
BigQuery 使用者 (
roles/bigquery.user
) -
將資料寫入 Spanner 表格:
Spanner 資料庫使用者 (
roles/spanner.databaseUser
)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
-
從 BigQuery 表格匯出資料:
BigQuery 資料檢視者 (
將範例資料載入 Spanner
下列操作說明使用 BigQuery 反向 ETL 工作流程和 Google Cloud CLI 執行。
使用下列指令,在 gcloud CLI 中設定預設專案:
gcloud config set project PROJECT_ID
以 CSV 檔案格式匯出來源資料。請考慮使用 PostgreSQL 資料庫的
pg_dump
或 MySQL 資料庫的mysqldump
工具,將範例資料轉換為 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
使用下列指令建立與匯入資料相符的 Spanner 結構定義:BQ_TABLE
gcloud spanner databases ddl update SPANNER_DATABASE \ --instance=SPANNER_INSTANCE \ --ddl="CREATE TABLE SPANNER_TABLE ..."
詳情請參閱「更新 Spanner 結構定義」。
使用下列指令,將資料從 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;'