本文件說明如何執行下列操作:
事前準備
必要的角色
如要取得完成本文件任務所需的權限,請要求管理員授予您工作區的 Dataform 編輯者 (roles/dataform.editor
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
定義要在建立資料表前執行的 SQL 陳述式
您可以設定 Dataform,在 BigQuery 中建立所選資料表之前,先執行一或多個 SQL 陳述式。如要在 Dataform 建立所選資料表之前執行 SQL 陳述式,請將陳述式新增至資料表定義 SQLX 檔案中的 pre_operations
區塊。
如要建立在 Dataform 建立特定資料表之前執行的自訂 SQL 陳述式,請按照下列步驟操作:
- 前往開發工作區。
- 在「檔案」窗格中展開
definitions/
。 - 開啟 SQLX 資料表定義檔案。
- 在
config
區塊外輸入pre_operations { ... }
。 - 在
pre_operations { ... }
中加入 SQL 陳述式。 - 選用:如要新增多個陳述式,請以
---
分隔。 - 選用步驟:按一下「格式」。
以下程式碼範例顯示 pre_operations
陳述式,可用於建立可在 select 陳述式中使用的暫時函式:
pre_operations {
CREATE TEMP FUNCTION AddFourAndDivide(x INT64, y INT64)
RETURNS FLOAT64
AS ((x + 4) / y);
}
定義在建立資料表後要執行的 SQL 陳述式
您可以設定 Dataform,在 BigQuery 中建立所選資料表後執行一或多個 SQL 陳述式。如要在 Dataform 建立所選資料表後執行 SQL 陳述式,請將陳述式新增至資料表定義 SQLX 檔案中的 post_operations
區塊。您可以將多個 SQL 陳述式新增至 post_operations
區塊。
如要建立在 Dataform 建立特定資料表後執行的自訂 SQL 陳述式,請按照下列步驟操作:
- 前往開發工作區。
- 在「檔案」窗格中展開
definitions/
。 - 開啟 SQLX 資料表定義檔案。
- 在
config
區塊外輸入post_operations { ... }
。 - 在
post_operations { ... }
中加入 SQL 陳述式。 - 選用步驟:按一下「格式」。
以下程式碼範例顯示 post_operations
陳述式,可授予群組對已建立資料表的存取權:
post_operations {
GRANT `roles/bigquery.dataViewer`
ON
TABLE ${self()}
TO "group:allusers@example.com", "user:otheruser@example.com"
}
停用資料表建立功能
如要停止 Dataform 在 BigQuery 中建立所選資料表,您可以在 SQLX 資料表定義檔案中停用該資料表。Dataform 會在依附元件圖表中保留已停用的資料表,但不會編譯及建立資料表。舉例來說,如果表格失敗,而您不希望在修正問題時整個工作流程也失敗,這項功能就很實用。
如要停用資料表,請按照下列步驟操作:
- 前往開發工作區。
- 在「檔案」窗格中展開
definitions/
。 - 選取 SQLX 資料表定義檔案。
- 在檔案的
config
區塊中輸入disabled: true
。 - 選用步驟:按一下「格式」。
以下程式碼範例顯示停用的資料表:
config {
type: "table",
disabled: true
}
select * from ${ref("source_data")}
新增執行標記
本節說明如何在 Dataform 核心 SQLX 檔案中新增標記,以便將工作流程分類。
如要將工作流程的元件整理成集合,您可以將自訂標記新增至下列類型的 SQLX 檔案:
table
view
incremental
assertion
operations
在工作流程執行期間,您可以只執行含有所選標記的檔案。
您可以使用 Cloud Composer 或工作流程與 Cloud Scheduler,建立排程,以便在特定時間間隔內執行 Dataform 工作流程,並使用所選標記。
新增標記
您可以在 SQLX 檔案中加入多個標記。
如要在 SQLX 檔案中新增標記,請按照下列步驟操作:
- 前往開發工作區。
- 在「檔案」窗格中展開
definitions/
。 - 選取 SQLX 檔案。
在
config
區塊中,使用下列格式新增標記:tags: ["CUSTOM_TAG"]
將
CUSTOM_TAG
替換成您的標記。選用:如要新增多個標記,請以半形逗號 (
,
) 分隔。選用步驟:按一下「格式」。
以下程式碼範例顯示含有 daily
和 hourly
標記的 user_counts
檢視畫面:
config {
type: "view",
name: "user_counts",
tags: ["daily", "hourly"]
}
後續步驟
- 如要瞭解如何在
workflow_settings.yaml
中設定 Dataform 設定,請參閱「設定 Dataform 工作流程設定」。 - 如要瞭解如何透過斷言測試資料表資料,請參閱「透過斷言測試資料表」。
- 如要瞭解如何透過包含項目重複使用程式碼,請參閱「透過包含項目在單一存放區重複使用程式碼」。
- 如要瞭解如何手動觸發執行作業,請參閱「觸發執行作業」。
- 如要瞭解如何在 Dataform 中新增 BigQuery 政策標記,請參閱「新增 BigQuery 政策標記」。