本頁說明如何使用 Workflows,將 Batch 中儲存的工作資訊匯出至 BigQuery 資料表。具體來說,請瞭解如何執行範例匯出工作流程,以及如何在 BigQuery 中查看產生的工作資訊。
如果想在系統自動或手動刪除工作後保留工作資訊,或是想在 Batch 以外的地方分析資訊,匯出工作資訊就很有用。或者,如果您只想將工作和作業狀態變更資訊匯出至 BigQuery,請改為參閱「使用通知監控作業」。
如要瞭解如何匯出其他Google Cloud 服務中儲存的工作資訊,請參閱該服務的匯出說明文件。例如,請參閱下列頁面:
事前準備
- 如果您從未使用過 Batch,請參閱「開始使用 Batch」,並完成專案和使用者的必要條件,啟用 Batch。
-
Enable the BigQuery and Workflows APIs.
選用:在專案中找出要儲存工作資訊的現有 BigQuery 資料集或資料表。現有資料表必須具有相符的結構定義。
否則,您可以使用匯出工作流程建立新的資料集或表格。
-
準備服務帳戶,以用於匯出作業工作流程:
- 建立新的服務帳戶 或 找出現有的服務帳戶。
-
為確保服務帳戶具備執行匯出作業工作流程的必要權限,請要求管理員將專案的下列 IAM 角色授予服務帳戶:
-
寫入記錄:
記錄寫入者 (
roles/logging.logWriter
) -
建立及編輯 BigQuery 資料集和表格:
BigQuery 管理員 (
roles/bigquery.admin
) -
查看及刪除批次工作:
「批次工作編輯者」 (
roles/batch.jobsEditor
)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
-
寫入記錄:
記錄寫入者 (
-
如要取得建立、部署及執行匯出作業工作流程所需的權限,請要求管理員將專案的下列 IAM 角色授予您:
-
查看工作:
批次工作檢視器 (
roles/batch.jobsViewer
) -
查看服務帳戶:
按一下「查看服務帳戶」 (
roles/iam.serviceAccountViewer
) -
查看 BigQuery 資料集和表格:
BigQuery 資料檢視者 (
roles/bigquery.dataViewer
) -
建立、部署及執行工作流程:
工作流程編輯器 (
roles/workflows.editor
)
-
查看工作:
批次工作檢視器 (
-
確認專案中的使用者可以查看匯出的工作資訊。
如要確保使用者具備匯出工作資訊的必要權限,請要求管理員授予使用者資料表、資料集或專案的 BigQuery 資料檢視者 (
roles/bigquery.dataViewer
) IAM 角色。
匯出工作資訊
本節說明如何使用匯出工作流程 (來自 export-to-bigquery
程式碼範例),匯出工作資訊。匯出工作流程會匯出專案中位於指定區域,且符合指定篩選條件的工作資訊。
匯出工作流程會將工作資訊匯出至指定資料集中的指定表格,如果專案中沒有這些表格,工作流程會自動建立。根據預設,匯出工作流程也會從 Batch 刪除匯出的工作,但您可以選擇編輯匯出工作流程,不要刪除工作。
針對要使用的每個匯出工作流程,執行下列操作:
設定工作流程定義
從 GitHub 下載
export-to-bigquery-delete-batch-jobs.yaml
檔案。使用文字編輯器開啟
export-to-bigquery-delete-batch-jobs.yaml
檔案。 然後進行下列編輯:將
sys.get_env("GOOGLE_CLOUD_PROJECT_ID")
替換為您的專案 ID,格式為字串,例如"my-project-id"
。請將
sys.get_env("GOOGLE_CLOUD_LOCATION")
替換為要匯出工作的所在區域,格式為字串,例如"us-central1"
。選用:編輯篩選條件,指定要匯出的工作。
根據預設,匯出工作流程會指定篩選條件
"(status.state:SUCCEEDED OR status.state:FAILED OR status.state:CANCELLED) AND create_time<=\"2023-05-01T00:00:00Z\""
。根據預設篩選條件,系統只會匯出處於SUCCEEDED
、FAILED
或CANCELLED
狀態,且是在2023-05-01T00:00:00Z
RFC 3339 時間戳記之前或當天建立的工作資訊。選用:將
default_dataset_id
替換為您希望匯出工作流程使用或建立的資料集名稱。(選用) 將
default_table_id
替換為您要匯出工作流程使用或建立的資料表名稱。如果不想讓工作流程刪除匯出的工作,請按照下列步驟操作:
移除下列程式碼行:
- log_delete_step: call: sys.log args: text: ${"Deleting Batch job " + j.name} severity: NOTICE - delete_job: call: googleapis.batch.v1.projects.locations.jobs.delete args: name: ${j.name}
移除
+ " and deleted"
。
儲存檔案。讓檔案保持開啟。
建立及部署工作流程
前往 Google Cloud 控制台的「Workflows」頁面:
在「Workflows」頁面中,按一下
「Create」(建立)。在「工作流程名稱」欄位中,輸入工作流程的名稱,例如
export-batch-jobs-us-central1
。在「Service account」(服務帳戶) 清單中,選取您準備好的服務帳戶。
點選「下一步」。
在工作流程編輯器中,將範例工作流程替換為
export-to-bigquery-delete-batch-jobs.yaml
檔案的內容。然後關閉檔案。按一下「Deploy」(部署)。「工作流程詳細資料」頁面隨即開啟。
執行工作流程
在「工作流程詳細資料」頁面中,按一下「執行」
。「Execute workflow」(執行工作流程) 頁面隨即開啟。在開啟的「Execute workflow」(執行工作流程) 頁面中,按一下「Execute」(執行)。
在開啟的「執行詳細資料」頁面中,等待工作流程執行完畢。舉例來說,匯出及刪除幾項工作的執行時間通常為幾秒鐘,但如果匯出及刪除大量工作,執行時間可能會較長。
工作流程執行完畢後,「輸出」窗格會顯示結果。
查看匯出的工作資訊
本節將介紹如何查看匯出作業工作流程建立的資料表資料。舉例來說,您可以按照下列步驟操作,確認工作流程已順利執行,並瀏覽表格資料。如要進一步瞭解如何查看及使用匯出的工作資訊 (例如編寫查詢),請參閱 BigQuery 說明文件中的「管理資料表資料」。
前往 Google Cloud 控制台的「BigQuery」頁面:
在「Explorer」面板中,開啟匯出工作資訊的資料表:
- 在「Search BigQuery resources」(搜尋 BigQuery 資源) 欄位中,輸入匯出工作流程中的資料表名稱。舉例來說,預設資料表名稱為
default_table_id
。 - 按一下資料表名稱。系統會開啟資料表詳細資料頁面。
在資料表詳細資料頁面中,按一下「詳細資料」分頁標籤。
在「詳細資料」分頁中,記下「上次修改時間」時間戳記和「列數」。
在資料表詳細資料頁面中,按一下「預覽」分頁標籤。
- 在「Search BigQuery resources」(搜尋 BigQuery 資源) 欄位中,輸入匯出工作流程中的資料表名稱。舉例來說,預設資料表名稱為