透過程式執行工作
如何使用 REST API 或用戶端程式庫,透過程式執行 BigQuery 工作:
- 呼叫
jobs.insert方法。 - 定期要求工作資源並檢查狀態屬性,掌握工作完成時間。
- 確認工作是否順利完成。
事前準備
授予身分與存取權管理 (IAM) 角色,讓使用者擁有執行本文件各項工作所需的權限。
所需權限
如要執行 BigQuery 工作,您需要 bigquery.jobs.create IAM 權限。
下列每個預先定義的 IAM 角色都包含執行作業所需的權限:
roles/bigquery.userroles/bigquery.jobUserroles/bigquery.admin
此外,建立工作時,系統會自動授予您該工作的下列權限:
bigquery.jobs.getbigquery.jobs.update
如要進一步瞭解 BigQuery 中的 IAM 角色和權限,請參閱預先定義的角色與權限一文。
執行中的工作
如何透過程式執行工作:
呼叫
jobs.insert方法啟動工作。呼叫jobs.insert方法時,請加入工作資源表示法。在工作資源的
configuration區段中,加入會指定工作類型 (load、query、extract或copy) 的子屬性。呼叫
jobs.insert方法後,使用工作 ID 和位置呼叫jobs.get檢查工作狀態,然後透過status.state瞭解工作狀態。status.state為DONE時表示工作已停止執行,不過DONE狀態並不代表工作順利完成,只代表工作已停止執行。確認工作是否成功。如果工作有
errorResult屬性,即表示工作失敗。status.errorResult屬性所含的資訊會說明工作失敗原因。未出現status.errorResult表示工作成功完成,但可能有一些不嚴重的錯誤,例如匯入幾個資料列時發生問題。不嚴重的錯誤會在工作的status.errors清單中傳回。
使用用戶端程式庫執行工作
如要使用 BigQuery 的 Cloud 用戶端程式庫建立及執行工作,請按照下列步驟操作:
C#
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 C# 設定操作說明進行操作。詳情請參閱 BigQuery C# API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Java 設定操作說明進行操作。詳情請參閱 BigQuery Java API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Python 設定操作說明進行操作。詳情請參閱 BigQuery Python API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
加入工作標籤
您可以使用 bq 指令列工具的 --label 旗標,透過指令列為查詢工作加入標籤。bq 工具僅支援在查詢工作中加入標籤。
如果某個工作是透過 API 提交,您也可以在其中加入標籤,方法是當您呼叫 jobs.insert 方法時,在工作設定中指定 labels 屬性。API 可用於在任何工作類型中加入標籤。
您無法在待處理、執行中或已完成的工作中加入或更新標籤。
在工作中加入標籤後,標籤就會納入您的帳單資料中。
詳情請參閱「新增工作標籤」。