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