BigQuery 到 Cloud Storage TFRecord 範本

BigQuery 到 Cloud Storage TFRecord 範本是一種管道,可從 BigQuery 查詢讀取資料,並以 TFRecord 格式寫入 Cloud Storage 值區。您可以指定訓練、測試和驗證的百分比分割。根據預設,訓練集的分割比例為 1 或 100%,測試集和驗證集的分割比例則為 0 或 0%。設定資料集分割時,訓練、測試和驗證的總和必須為 1 或 100% (例如 0.6+0.2+0.2)。Dataflow 會自動為每個輸出資料集決定最佳分片數。

管道相關規定

  • BigQuery 資料集和資料表必須存在。
  • 在執行管道前,輸出 Cloud Storage 值區必須已存在。訓練、測試和驗證子目錄不需預先存在,系統會自動產生。

範本參數

必要參數

  • readQuery:從來源擷取資料的 BigQuery SQL 查詢。例如:select * from dataset1.sample_table
  • outputDirectory:寫入訓練、測試和驗證 TFRecord 檔案時要使用的頂層 Cloud Storage 路徑前置字串。系統會從 outputDirectory 自動產生訓練、測試和驗證 TFRecord 檔案的子目錄。例如:gs://mybucket/output

選用參數

  • readIdColumn:BigQuery 資料欄的名稱,用於儲存資料列的專屬 ID。
  • invalidOutputPath:Cloud Storage 路徑,用於寫入無法轉換為目標實體的 BigQuery 資料列。例如:gs://your-bucket/your-path
  • outputSuffix:寫入的訓練、測試和驗證 TFRecord 檔案的檔案尾碼。預設值為 .tfrecord
  • trainingPercentage:分配給訓練 TFRecord 檔案的查詢資料百分比。預設值為 1100%
  • testingPercentage:分配給測試 TFRecord 檔案的查詢資料百分比。預設值為 00%
  • validationPercentage:分配給驗證 TFRecord 檔案的查詢資料百分比。預設值為 00%

執行範本

控制台

  1. 前往 Dataflow 的「Create job from template」(透過範本建立工作) 頁面。
  2. 前往「依據範本建立工作」
  3. 在「工作名稱」欄位中,輸入專屬工作名稱。
  4. 選用:如要使用區域端點,請從下拉式選單中選取值。預設區域為 us-central1

    如需可執行 Dataflow 工作的地區清單,請參閱「Dataflow 位置」。

  5. 從「Dataflow template」(Dataflow 範本) 下拉式選單中選取 the BigQuery to TFRecords template。
  6. 在提供的參數欄位中輸入參數值。
  7. 按一下「Run Job」(執行工作)

gcloud

在殼層或終端機中執行範本:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/Cloud_BigQuery_to_GCS_TensorFlow_Records \
    --region REGION_NAME \
    --parameters \
readQuery=READ_QUERY,\
outputDirectory=OUTPUT_DIRECTORY,\
trainingPercentage=TRAINING_PERCENTAGE,\
testingPercentage=TESTING_PERCENTAGE,\
validationPercentage=VALIDATION_PERCENTAGE,\
outputSuffix=OUTPUT_FILENAME_SUFFIX

更改下列內容:

  • JOB_NAME: 您選擇的不重複工作名稱
  • VERSION: 您要使用的範本版本

    您可以使用下列值:

  • REGION_NAME: 您要部署 Dataflow 工作的地區,例如 us-central1
  • READ_QUERY:要執行的 BigQuery 查詢
  • OUTPUT_DIRECTORY:輸出資料集的 Cloud Storage 路徑前置字元
  • TRAINING_PERCENTAGE:訓練資料集的十進位百分比分割
  • TESTING_PERCENTAGE:測試資料集的小數百分比分割
  • VALIDATION_PERCENTAGE:驗證資料集的十進位百分比分割
  • OUTPUT_FILENAME_SUFFIX:偏好的輸出 TensorFlow Record 檔案後置字串

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/Cloud_BigQuery_to_GCS_TensorFlow_Records
{
   "jobName": "JOB_NAME",
   "parameters": {
       "readQuery":"READ_QUERY",
       "outputDirectory":"OUTPUT_DIRECTORY",
       "trainingPercentage":"TRAINING_PERCENTAGE",
       "testingPercentage":"TESTING_PERCENTAGE",
       "validationPercentage":"VALIDATION_PERCENTAGE",
       "outputSuffix":"OUTPUT_FILENAME_SUFFIX"
   },
   "environment": { "zone": "us-central1-f" }
}

更改下列內容:

  • PROJECT_ID: 您要執行 Dataflow 工作的專案 ID Google Cloud
  • JOB_NAME: 您選擇的不重複工作名稱
  • VERSION: 您要使用的範本版本

    您可以使用下列值:

  • LOCATION: 您要部署 Dataflow 工作的地區,例如 us-central1
  • READ_QUERY:要執行的 BigQuery 查詢
  • OUTPUT_DIRECTORY:輸出資料集的 Cloud Storage 路徑前置字元
  • TRAINING_PERCENTAGE:訓練資料集的十進位百分比分割
  • TESTING_PERCENTAGE:測試資料集的小數百分比分割
  • VALIDATION_PERCENTAGE:驗證資料集的十進位百分比分割
  • OUTPUT_FILENAME_SUFFIX:偏好的輸出 TensorFlow Record 檔案後置字串

後續步驟