設定其他表格設定

本文說明如何在資料表定義檔中設定其他資料表設定。使用 Dataform 核心,您可以定義 pre_operationspost_operations,在建立資料表之前或之後執行 SQL 陳述式。您也可以覆寫資料表設定 (例如 databaseschema),並停用資料表建立作業。

事前準備

  1. 前往 Google Cloud 控制台的「Dataform」頁面。

    前往 Dataform

  2. 選取或建立存放區

  3. 選取或建立開發工作區

  4. 建立資料表

必要的角色

如要取得設定其他表格設定所需的權限,請要求管理員授予您工作區的 Dataform 編輯者 (roles/dataform.editor) 身分與存取權管理角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

您或許還可透過自訂角色或其他預先定義的角色取得必要權限。

覆寫資料表設定

您可以覆寫所選資料表的結構定義、資料庫和名稱。

根據預設,資料表會遵循您在 workflow_settings.yaml 中設定的結構定義和資料庫設定。資料表名稱與資料表定義 SQLX 檔案的名稱相同。

如要覆寫所選資料表的結構定義和名稱,請按照下列步驟操作:

  1. 前往開發工作區。

  2. 在「檔案」窗格中,展開 definitions/

  3. 開啟 SQLX 資料表定義檔。

  4. config 區塊中,輸入下列程式碼片段:

     {
       schema: "OVERRIDDEN_SCHEMA",
       database: "OVERRIDDEN_DATABASE",
       name: "OVERRIDDEN_NAME"
     }
    

    更改下列內容:

    • OVERRIDDEN_SCHEMA:要在其中建立資料表的 BigQuery 資料集

    • OVERRIDDEN_DATABASE:您要在其中建立資料表的 BigQuery 專案 ID

    • OVERRIDDEN_NAME:資料表名稱,與 SQLX 資料表定義檔名不同

  5. 選用:按一下「格式」

使用覆寫的資料表名稱參照資料表

  • 如要參照具有覆寫資料表名稱的資料表,請在 ref 函式中,輸入 name: "" 中設定的覆寫資料表名稱。

下列程式碼範例會參照名稱已覆寫為 overridden_name 的資料表:

  SELECT * FROM ${ref("overridden_name")}

定義要在建立資料表前執行的 SQL 陳述式

您可以設定 Dataform,在 BigQuery 中建立所選資料表之前,先執行一或多個 SQL 陳述式。如要在 Dataform 建立所選資料表前執行 SQL 陳述式,請將陳述式新增至資料表定義 SQLX 檔案的 pre_operations 區塊。

如要建立自訂 SQL 陳述式,在 Dataform 建立特定資料表前執行,請按照下列步驟操作:

  1. 前往開發工作區。

  2. 在「檔案」窗格中,展開 definitions/

  3. 開啟 SQLX 資料表定義檔。

  4. config 區塊外,輸入 pre_operations { ... }

  5. pre_operations { ... } 內加入 SQL 陳述式。

  6. 選用:如要新增多個陳述式,請以 --- 分隔。

  7. 選用:按一下「格式」

下列程式碼範例顯示 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 區塊。您可以在 post_operations 區塊中新增多個 SQL 陳述式。

如要建立自訂 SQL 陳述式,在 Dataform 建立特定資料表後執行,請按照下列步驟操作:

  1. 前往開發工作區。

  2. 在「檔案」窗格中,展開 definitions/

  3. 開啟 SQLX 資料表定義檔。

  4. config 區塊外,輸入 post_operations { ... }

  5. post_operations { ... } 內加入 SQL 陳述式。

  6. 選用:按一下「格式」

下列程式碼範例顯示 post_operations 陳述式,可授予群組存取所建立資料表的權限:

    post_operations {
      GRANT `roles/bigquery.dataViewer`
      ON
      TABLE ${self()}
      TO "group:allusers@example.com", "user:otheruser@example.com"
    }

停用資料表建立功能

如要停止讓 Dataform 在 BigQuery 中建立所選資料表,可以在 SQLX 資料表定義檔案中停用該資料表。Dataform 會將已停用的資料表保留在依附元件圖表中,但不會編譯及建立該資料表。舉例來說,如果資料表發生錯誤,但您不想在修正問題時導致整個工作流程失敗,這項功能就非常實用。

如要停用資料表,請按照下列步驟操作:

  1. 前往開發工作區。

  2. 在「檔案」窗格中,展開 definitions/

  3. 選取 SQLX 資料表定義檔。

  4. 在檔案的 config 區塊中,輸入 disabled: true

  5. 選用:按一下「格式」

下列程式碼範例顯示已停用的表格:

  config {
    type: "table",
    disabled: true
  }

  select * from ${ref("source_data")}

後續步驟