透過程式執行工作
您可以使用 BigQuery REST API 和用戶端程式庫,建立及管理非同步工作,自動執行應用程式的載入、查詢、擷取和複製作業。呼叫 jobs.insert 方法啟動工作後,您可以輪詢工作資源的狀態屬性,追蹤執行作業何時完成,並確認作業是否成功。
事前準備
授予 Identity and Access Management (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 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Java 設定操作說明進行操作。詳情請參閱 BigQuery Java API 參考文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Python 設定操作說明進行操作。詳情請參閱 BigQuery Python API 參考文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
加入工作標籤
您可以使用 bq 指令列工具的 --label 旗標,透過指令列將標籤新增至查詢工作。bq 工具僅支援為查詢工作新增標籤。
您也可以在透過 API 提交工作時,在呼叫 jobs.insert 方法時指定工作設定中的 labels 屬性,為工作新增標籤。API 可用於在任何工作類型中加入標籤。
您無法在待處理、執行中或已完成的工作中加入或更新標籤。
在工作中加入標籤後,標籤就會納入您的帳單資料中。
詳情請參閱「新增工作標籤」。