這個範本已淘汰,並將於 2023 年第 3 季移除。 請改用 Firestore 到 Cloud Storage Text 範本。
「Datastore 到 Cloud Storage 文字」範本是一種批次管道,可讀取 Datastore 實體並將這些實體以文字檔案的形式寫入 Cloud Storage。您可以提供函式,將每個實體視為 JSON 字串處理。如果您未提供這類函式,則輸出檔案中的每一行都會是一個 JSON 序列化實體。
管道相關規定
執行管道之前,必須先在專案中設定 Datastore。
範本參數
必要參數
- datastoreReadGqlQuery:用來指定要抓取哪個實體的 GQL (https://cloud.google.com/datastore/docs/reference/gql_reference) 查詢,例如:
SELECT * FROM MyKind。 - datastoreReadProjectId:包含您要讀取資料的 Datastore 執行個體的 Google Cloud 專案 ID。
- textWritePrefix:指定資料寫入目的地的 Cloud Storage 路徑前置字串,例如:
gs://mybucket/somefolder/。
選用參數
- datastoreReadNamespace:要求實體的命名空間;如要使用預設的命名空間,請將這個參數留空。
- javascriptTextTransformGcsPath:定義要使用的 JavaScript 使用者定義函式 (UDF) 的 .js 檔案 Cloud Storage URI。例如:
gs://my-bucket/my-udfs/my_file.js。 - javascriptTextTransformFunctionName:要使用的 JavaScript 使用者定義函式 (UDF) 名稱。舉例來說,如果您的 JavaScript 函式程式碼是
myTransform(inJson) { /*...do stuff...*/ },則函式名稱就是myTransform。如需 JavaScript UDF 範例,請參閱 UDF 範例 (https://github.com/GoogleCloudPlatform/DataflowTemplates#udf-examples)。
執行範本
控制台
- 前往 Dataflow 的「Create job from template」(透過範本建立工作) 頁面。 前往「依範本建立工作」
- 在「Job name」(工作名稱) 欄位中,輸入不重複的工作名稱。
- 選用:如要使用區域端點,請從下拉式選單中選取值。預設區域為
us-central1。如需可執行 Dataflow 工作的地區清單,請參閱「Dataflow 位置」。
- 從「Dataflow template」(Dataflow 範本) 下拉式選單中,選取 the Datastore to Text Files on Cloud Storage template。
- 在提供的參數欄位中輸入參數值。
- 按一下「Run Job」(執行工作)。
gcloud
在殼層或終端機中執行範本:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/Datastore_to_GCS_Text \ --region REGION_NAME \ --parameters \ datastoreReadGqlQuery="SELECT * FROM DATASTORE_KIND",\ datastoreReadProjectId=DATASTORE_PROJECT_ID,\ datastoreReadNamespace=DATASTORE_NAMESPACE,\ javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\ javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\ textWritePrefix=gs://BUCKET_NAME/output/
更改下列內容:
JOB_NAME: 您選擇的不重複工作名稱REGION_NAME:您要部署 Dataflow 工作的區域,例如us-central1VERSION:您要使用的範本版本您可以使用下列值:
latest使用最新版範本,該範本位於值區中非依日期命名的上層資料夾: gs://dataflow-templates-REGION_NAME/latest/- 版本名稱,例如
2023-09-12-00_RC00,可使用特定版本的範本,該範本會以巢狀結構存放在值區中相應的依日期命名上層資料夾中:gs://dataflow-templates-REGION_NAME/
BUCKET_NAME:Cloud Storage bucket 的名稱DATASTORE_PROJECT_ID:Datastore 執行個體所在的 Google Cloud 專案 IDDATASTORE_KIND:Datastore 實體的類型DATASTORE_NAMESPACE:Datastore 實體的命名空間JAVASCRIPT_FUNCTION: 您要使用的 JavaScript 使用者定義函式 (UDF) 名稱舉例來說,如果您的 JavaScript 函式程式碼是
myTransform(inJson) { /*...do stuff...*/ },則函式名稱就是myTransform。如需 JavaScript UDF 範例,請參閱「UDF 範例」。PATH_TO_JAVASCRIPT_UDF_FILE: 定義要使用的 JavaScript 使用者定義函式 (UDF) 的.js檔案 Cloud Storage URI,例如gs://my-bucket/my-udfs/my_file.js
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/Datastore_to_GCS_Text { "jobName": "JOB_NAME", "parameters": { "datastoreReadGqlQuery": "SELECT * FROM DATASTORE_KIND" "datastoreReadProjectId": "DATASTORE_PROJECT_ID", "datastoreReadNamespace": "DATASTORE_NAMESPACE", "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE", "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION", "textWritePrefix": "gs://BUCKET_NAME/output/" }, "environment": { "zone": "us-central1-f" } }
更改下列內容:
PROJECT_ID: 您要執行 Dataflow 工作的 Google Cloud 專案 IDJOB_NAME: 您選擇的不重複工作名稱LOCATION:您要部署 Dataflow 工作的區域,例如us-central1VERSION:您要使用的範本版本您可以使用下列值:
latest使用最新版範本,該範本位於值區中非依日期命名的上層資料夾: gs://dataflow-templates-REGION_NAME/latest/- 版本名稱,例如
2023-09-12-00_RC00,可使用特定版本的範本,該範本會以巢狀結構存放在值區中相應的依日期命名上層資料夾中:gs://dataflow-templates-REGION_NAME/
BUCKET_NAME:Cloud Storage bucket 的名稱DATASTORE_PROJECT_ID:Datastore 執行個體所在的 Google Cloud 專案 IDDATASTORE_KIND:Datastore 實體的類型DATASTORE_NAMESPACE:Datastore 實體的命名空間JAVASCRIPT_FUNCTION: 您要使用的 JavaScript 使用者定義函式 (UDF) 名稱舉例來說,如果您的 JavaScript 函式程式碼是
myTransform(inJson) { /*...do stuff...*/ },則函式名稱就是myTransform。如需 JavaScript UDF 範例,請參閱「UDF 範例」。PATH_TO_JAVASCRIPT_UDF_FILE: 定義要使用的 JavaScript 使用者定義函式 (UDF) 的.js檔案 Cloud Storage URI,例如gs://my-bucket/my-udfs/my_file.js
後續步驟
- 瞭解 Dataflow 範本。
- 請參閱 Google 提供的範本清單。