匯出工作資訊

本頁說明如何使用 Workflows,將 Batch 中儲存的工作資訊匯出至 BigQuery 資料表。具體來說,請瞭解如何執行範例匯出工作流程,以及如何在 BigQuery 中查看產生的工作資訊。

如果想在系統自動或手動刪除工作後保留工作資訊,或是想在 Batch 以外的地方分析資訊,匯出工作資訊就很有用。或者,如果您只想將工作和作業狀態變更資訊匯出至 BigQuery,請改為參閱「使用通知監控作業」。

如要瞭解如何匯出其他Google Cloud 服務中儲存的工作資訊,請參閱該服務的匯出說明文件。例如,請參閱下列頁面:

事前準備

  1. 如果您從未使用過 Batch,請參閱「開始使用 Batch」,並完成專案和使用者的必要條件,啟用 Batch。
  2. Enable the BigQuery and Workflows APIs.

    Enable the APIs

  3. 選用:在專案中找出要儲存工作資訊的現有 BigQuery 資料集或資料表。現有資料表必須具有相符的結構定義。

    否則,您可以使用匯出工作流程建立新的資料集或表格。

  4. 準備服務帳戶,以用於匯出作業工作流程:

    1. 建立新的服務帳戶找出現有的服務帳戶
    2. 為確保服務帳戶具備執行匯出作業工作流程的必要權限,請要求管理員將專案的下列 IAM 角色授予服務帳戶:

      • 寫入記錄: 記錄寫入者 (roles/logging.logWriter)
      • 建立及編輯 BigQuery 資料集和表格: BigQuery 管理員 (roles/bigquery.admin)
      • 查看及刪除批次工作: 「批次工作編輯者」 (roles/batch.jobsEditor)

      如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

      管理員或許還可透過自訂角色或其他預先定義的角色,授予服務帳戶必要權限。

  5. 如要取得建立、部署及執行匯出作業工作流程所需的權限,請要求管理員將專案的下列 IAM 角色授予您:

  6. 確認專案中的使用者可以查看匯出的工作資訊。

    如要確保使用者具備匯出工作資訊的必要權限,請要求管理員授予使用者資料表、資料集或專案的 BigQuery 資料檢視者 (roles/bigquery.dataViewer) IAM 角色。

匯出工作資訊

本節說明如何使用匯出工作流程 (來自 export-to-bigquery 程式碼範例),匯出工作資訊。匯出工作流程會匯出專案中位於指定區域,且符合指定篩選條件的工作資訊。

匯出工作流程會將工作資訊匯出至指定資料集中的指定表格,如果專案中沒有這些表格,工作流程會自動建立。根據預設,匯出工作流程也會從 Batch 刪除匯出的工作,但您可以選擇編輯匯出工作流程,不要刪除工作。

針對要使用的每個匯出工作流程,執行下列操作:

  1. 設定工作流程定義
  2. 建立及部署工作流程
  3. 執行工作流程。每次要匯出指定工作時,請重複這個步驟。

設定工作流程定義

  1. 從 GitHub 下載 export-to-bigquery-delete-batch-jobs.yaml 檔案

  2. 使用文字編輯器開啟 export-to-bigquery-delete-batch-jobs.yaml 檔案。 然後進行下列編輯:

    1. sys.get_env("GOOGLE_CLOUD_PROJECT_ID") 替換為您的專案 ID,格式為字串,例如 "my-project-id"

    2. 請將 sys.get_env("GOOGLE_CLOUD_LOCATION") 替換為要匯出工作的所在區域,格式為字串,例如 "us-central1"

    3. 選用:編輯篩選條件,指定要匯出的工作。

      根據預設,匯出工作流程會指定篩選條件 "(status.state:SUCCEEDED OR status.state:FAILED OR status.state:CANCELLED) AND create_time<=\"2023-05-01T00:00:00Z\""。根據預設篩選條件,系統只會匯出處於 SUCCEEDEDFAILEDCANCELLED 狀態,且是在 2023-05-01T00:00:00Z RFC 3339 時間戳記之前或當天建立的工作資訊。

    4. 選用:將 default_dataset_id 替換為您希望匯出工作流程使用或建立的資料集名稱。

    5. (選用) 將 default_table_id 替換為您要匯出工作流程使用或建立的資料表名稱。

    6. 如果不想讓工作流程刪除匯出的工作,請按照下列步驟操作:

      1. 移除下列程式碼行:

                - 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}
        
      2. 移除 + " and deleted"

    7. 儲存檔案。讓檔案保持開啟。

建立及部署工作流程

  1. 前往 Google Cloud 控制台的「Workflows」頁面:

    前往「Workflows」頁面

  2. 在「Workflows」頁面中,按一下 「Create」(建立)

  3. 在「工作流程名稱」欄位中,輸入工作流程的名稱,例如 export-batch-jobs-us-central1

  4. 在「Service account」(服務帳戶) 清單中,選取您準備好的服務帳戶。

  5. 點選「下一步」

  6. 在工作流程編輯器中,將範例工作流程替換為 export-to-bigquery-delete-batch-jobs.yaml 檔案的內容。然後關閉檔案。

  7. 按一下「Deploy」(部署)。「工作流程詳細資料」頁面隨即開啟。

執行工作流程

  1. 在「工作流程詳細資料」頁面中,按一下「執行」。「Execute workflow」(執行工作流程) 頁面隨即開啟。

  2. 在開啟的「Execute workflow」(執行工作流程) 頁面中,按一下「Execute」(執行)

  3. 在開啟的「執行詳細資料」頁面中,等待工作流程執行完畢。舉例來說,匯出及刪除幾項工作的執行時間通常為幾秒鐘,但如果匯出及刪除大量工作,執行時間可能會較長。

    工作流程執行完畢後,「輸出」窗格會顯示結果。

查看匯出的工作資訊

本節將介紹如何查看匯出作業工作流程建立的資料表資料。舉例來說,您可以按照下列步驟操作,確認工作流程已順利執行,並瀏覽表格資料。如要進一步瞭解如何查看及使用匯出的工作資訊 (例如編寫查詢),請參閱 BigQuery 說明文件中的「管理資料表資料」。

  1. 前往 Google Cloud 控制台的「BigQuery」頁面:

    前往「BigQuery」頁面

  2. 在「Explorer」面板中,開啟匯出工作資訊的資料表:

    1. 在「Search BigQuery resources」(搜尋 BigQuery 資源) 欄位中,輸入匯出工作流程中的資料表名稱。舉例來說,預設資料表名稱為 default_table_id
    2. 按一下資料表名稱。系統會開啟資料表詳細資料頁面。
    3. 在資料表詳細資料頁面中,按一下「詳細資料」分頁標籤。

      在「詳細資料」分頁中,記下「上次修改時間」時間戳記和「列數」

    4. 在資料表詳細資料頁面中,按一下「預覽」分頁標籤。

後續步驟