「Spanner 到 Cloud Storage 文字」範本是一個批次管道,可從 Spanner 資料表讀取資料,並以 CSV 文字檔案的格式寫入 Cloud Storage。
管道相關規定
- 執行管道前,輸入 Spanner 資料表必須已存在。
範本參數
必要參數
- spannerTable:要從中讀取資料的 Spanner 資料表。
- spannerProjectId:包含要讀取資料的 Spanner 資料庫的 Google Cloud 專案 ID。
- spannerInstanceId:要求資料表的執行個體 ID。
- spannerDatabaseId:要求資料表的資料庫 ID。
- textWritePrefix:指定資料寫入目的地的 Cloud Storage 路徑前置字串,例如:
gs://mybucket/somefolder/
。
選用參數
- csvTempDirectory:寫入暫時 CSV 檔案的 Cloud Storage 路徑。例如:
gs://your-bucket/your-path
。 - spannerPriority:Spanner 呼叫的請求優先順序 (https://cloud.google.com/spanner/docs/reference/rest/v1/RequestOptions)。可能的值為
HIGH
、MEDIUM
、LOW
。預設值為MEDIUM
。 - spannerHost:要在範本中呼叫的 Cloud Spanner 端點。僅供測試。例如,
https://batch-spanner.googleapis.com
。預設值為:https://batch-spanner.googleapis.com。 - spannerSnapshotTime:與您要讀取的 Spanner 資料庫版本對應的時間戳記。時間戳記必須採用 RFC 3339 (https://tools.ietf.org/html/rfc3339) 世界標準時間 Zulu 格式。時間戳記必須是過去的時間,且適用最大時間戳記過時程度 (https://cloud.google.com/spanner/docs/timestamp-bounds#maximum_timestamp_staleness)。例如:
1990-12-31T23:59:60Z
。預設為空白。 - dataBoostEnabled:設為
true
即可使用 Spanner Data Boost 的運算資源執行工作,對 Spanner OLTP 工作流程的影響幾乎為零。如果為 true,則需要spanner.databases.useDataBoost
Identity and Access Management (IAM) 權限。詳情請參閱「Data Boost 總覽」(https://cloud.google.com/spanner/docs/databoost/databoost-overview)。預設值為 false。
執行範本
控制台
- 前往 Dataflow 的「Create job from template」(透過範本建立工作) 頁面。 前往「依據範本建立工作」
- 在「工作名稱」欄位中,輸入專屬工作名稱。
- 選用:如要使用區域端點,請從下拉式選單中選取值。預設區域為
us-central1
。如需可執行 Dataflow 工作的地區清單,請參閱「Dataflow 位置」。
- 從「Dataflow template」(Dataflow 範本) 下拉式選單中選取 the Cloud Spanner to Text Files on Cloud Storage template。
- 在提供的參數欄位中輸入參數值。
- 按一下「Run Job」(執行工作)。
gcloud
在殼層或終端機中執行範本:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/Spanner_to_GCS_Text \ --region REGION_NAME \ --parameters \ spannerProjectId=SPANNER_PROJECT_ID,\ spannerDatabaseId=DATABASE_ID,\ spannerInstanceId=INSTANCE_ID,\ spannerTable=TABLE_ID,\ textWritePrefix=gs://BUCKET_NAME/output/
更改下列內容:
JOB_NAME
: 您選擇的不重複工作名稱VERSION
: 您要使用的範本版本您可以使用下列值:
latest
,使用範本的最新版本,該版本位於值區中非依日期命名的上層資料夾:gs://dataflow-templates-REGION_NAME/latest/- 版本名稱 (例如
2023-09-12-00_RC00
),用於指定範本版本,該版本會以巢狀結構存放在值區中依日期命名的上層資料夾中:gs://dataflow-templates-REGION_NAME/
REGION_NAME
: 您要部署 Dataflow 工作的地區,例如us-central1
SPANNER_PROJECT_ID
:您要從中讀取資料的 Spanner 資料庫專案 ID Google CloudDATABASE_ID
:Spanner 資料庫 IDBUCKET_NAME
:Cloud Storage bucket 的名稱INSTANCE_ID
:Spanner 執行個體 IDTABLE_ID
:Spanner 資料表 ID
API
如要使用 REST API 執行範本,請傳送 HTTP POST 要求。如要進一步瞭解 API 和授權範圍,請參閱 projects.templates.launch
。
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates-LOCATION/VERSION/Spanner_to_GCS_Text { "jobName": "JOB_NAME", "parameters": { "spannerProjectId": "SPANNER_PROJECT_ID", "spannerDatabaseId": "DATABASE_ID", "spannerInstanceId": "INSTANCE_ID", "spannerTable": "TABLE_ID", "textWritePrefix": "gs://BUCKET_NAME/output/" }, "environment": { "zone": "us-central1-f" } }
更改下列內容:
PROJECT_ID
: 您要執行 Dataflow 工作的專案 ID Google CloudJOB_NAME
: 您選擇的不重複工作名稱VERSION
: 您要使用的範本版本您可以使用下列值:
latest
,使用範本的最新版本,該版本位於值區中非依日期命名的上層資料夾:gs://dataflow-templates-REGION_NAME/latest/- 版本名稱 (例如
2023-09-12-00_RC00
),用於指定範本版本,該版本會以巢狀結構存放在值區中依日期命名的上層資料夾中:gs://dataflow-templates-REGION_NAME/
LOCATION
: 您要部署 Dataflow 工作的地區,例如us-central1
SPANNER_PROJECT_ID
:您要從中讀取資料的 Spanner 資料庫專案 ID Google CloudDATABASE_ID
:Spanner 資料庫 IDBUCKET_NAME
:Cloud Storage bucket 的名稱INSTANCE_ID
:Spanner 執行個體 IDTABLE_ID
:Spanner 資料表 ID
後續步驟
- 瞭解 Dataflow 範本。
- 請參閱 Google 提供的範本清單。