本文說明如何在 Dataform 中執行下列操作:
事前準備
前往 Google Cloud 控制台的「Dataform」頁面。
選取或建立存放區。
選取或建立開發工作區。
選用:如要覆寫發布設定中的預設 Google Cloud 專案,請在您打算使用的專案中授予自訂服務帳戶存取權。
必要的角色
如要取得完成本文工作所需的權限,請要求管理員授予您下列 IAM 角色:
- Dataform 管理員 (
roles/dataform.admin) 存放區 - 自訂服務帳戶的服務帳戶使用者 (
roles/iam.serviceAccountUser)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
如要提升排程安全性,請參閱「實作進階排程權限」。
如要更新 Dataform 存放區版本設定的發布版本,您必須為使用此版本設定的工作流程設定中的每個自訂服務帳戶,授予 Dataform 服務代理程式 iam.serviceAccounts.actAs 權限。這項權限包含在服務帳戶使用者角色 (roles/iam.serviceAccountUser) 中。詳情請參閱「授予必要的 IAM 角色」。
Dataform 工作流程生命週期簡介
本節說明 Dataform 的工作流程生命週期,以及如何在 Dataform 中設定編譯和執行作業。
Dataform 工作流程生命週期包含下列階段:
- 開發
- 您可以在 Dataform 工作區開發工作流程。
- 編譯
Dataform 會在工作區中即時將工作流程程式碼編譯為 SQL,並建立工作區的編譯結果,您可以在 BigQuery 中執行該結果。Dataform 會使用工作流程設定檔中定義的設定,建立編譯結果。
Dataform 編譯作業是密封的,可確保編譯作業的一致性,也就是說,每次編譯相同的程式碼時,都會產生相同的 SQL 編譯結果。Dataform 會在無法存取網際網路的沙箱環境中編譯程式碼。編譯期間無法執行其他動作,例如呼叫外部 API。
- 執行
在工作流程叫用中,Dataform 會在 BigQuery 中執行工作區編譯結果。
如要根據需求調整 Dataform 工作流程生命週期,您可以設定編譯結果,影響 Dataform 執行工作流程的位置和方式。接著,您可以手動觸發或排定執行時間,決定 Dataform 何時執行整個工作流程或選取的元素。
設定 Dataform 編譯的方式
根據預設,Dataform 會使用工作流程設定檔中的設定,建立編譯結果。您可以透過編譯覆寫功能覆寫預設設定,建立自訂編譯結果。然後手動觸發自訂編譯結果的執行作業,或排定執行作業。
Dataform 提供下列選項,可設定編譯結果:
- 工作區編譯覆寫設定
- 您可以設定編譯覆寫,套用至存放區中的所有工作區。您可以使用工作區編譯覆寫功能建立獨立的開發環境。
- 版本設定
- 您可以建立版本設定,設定範本來建立 Dataform 存放區的編譯結果。接著,您可以建立工作流程設定,排定所選發布版本設定中建立的編譯結果執行時程。
- Dataform API 編譯覆寫
- 您可以在終端機中傳遞 Dataform API 要求,藉此建立及執行具有編譯覆寫的單一編譯結果。
建立工作區編譯覆寫設定
您可以透過工作區編譯覆寫設定,為 Dataform 存放區中的所有工作區建立編譯覆寫設定。每個存放區只能建立一個工作區編譯覆寫設定。
如果您在存放區中手動觸發工作區的執行作業,且該存放區具有工作區編譯覆寫設定,Dataform 會將這些覆寫設定套用至工作區的編譯結果。
您可以設定下列工作區編譯覆寫設定:
- Dataform 執行工作區內容的專案Google Cloud
- 資料表前置字串
- 結構定義後置字串
您可以使用工作區編譯覆寫功能,透過動態編譯覆寫功能,在 BigQuery 中隔離工作區編譯結果,建立獨立的開發環境。動態資料表前置字串和結構定義後置字串編譯覆寫包含 ${workspaceName} 變數。在工作區中觸發執行作業時,Dataform 會將 ${workspaceName} 變數替換為目前工作區的名稱,建立工作區專屬的編譯覆寫。
請注意,您無法排定使用工作區編譯覆寫設定建立的編譯結果執行時間。
建立發布版本設定
透過發布設定,您可以設定範本,為建立存放區的編譯結果。
在版本設定中,您可以設定工作流程設定、編譯變數的編譯覆寫,以及建立整個存放區編譯結果的頻率。
在發布設定中,您可以設定下列編譯覆寫:
- Google Cloud 專案
- 資料表前置字串
- 結構定義後置字串
- 編譯變數的值
您可以在 Dataform 存放區中建立多個發布設定,開發生命週期的每個階段各有一個,藉此建立獨立的存放區編譯結果。
接著,您可以建立工作流程設定,安排所選版本設定中建立的編譯結果執行作業。
您也可以手動在所選發行設定中觸發編譯結果的執行作業。
使用 Dataform API 編譯覆寫設定單一編譯結果
在終端機中傳遞 Dataform API 要求,即可為單一編譯結果設定編譯覆寫。
在
compilationResults.create
要求中,您可以建立 Dataform 工作區或指定 Git commitish 的單一編譯結果。
在 compilationResults.create 要求的