sql_create

用量

derived_table: customer_order_facts {
  sql_create: {
      SQL statement ;;
  }
}
階層
sql_create
預設值

接受
SQL 陳述式

定義

sql_create 可啟用自訂資料定義語言 (DDL) 指令,用來建構永久衍生資料表 (PDT)sql_create 會照常發布陳述,不會進行 Looker 的一般錯誤檢查。唯一條件是陳述式必須建立並執行 PDT。舉例來說,您可以建立支援 Google BigQuery ML 機器學習模型的 PDT。

如果 PDT 是以 sql_create 定義,則無法使用下列任一參數:

範例

為預測未來購買可能性的 BigQuery ML 查詢建立 PDT:

view: future_purchase_model {
  derived_table: {
    datagroup_trigger: bqml_datagroup
    sql_create:
      CREATE OR REPLACE MODEL ${SQL_TABLE_NAME}
      OPTIONS(model_type='logistic_reg'
        , labels=['will_purchase_in_future']
        , min_rel_progress = 0.005
        , max_iterations = 40
        ) AS
      SELECT
         * EXCEPT(fullVisitorId, visitId)
      FROM ${training_input.SQL_TABLE_NAME};;
  }
}

注意事項

${SQL_TABLE_NAME} 替換運算子

您可以使用 ${SQL_TABLE_NAME} 替代運算子,替代要建立的 PDT 計算名稱。這樣一來,SQL 陳述式就會正確納入 LookML view 參數中提供的 PDT 名稱。

sql_create 必須建立以 ${SQL_TABLE_NAME} 替換運算子表示的名稱,否則系統會在連線的「永久衍生資料表:PDT 和資料群組維護時間表」設定中指定的每個觸發檢查間隔,從頭重建資料表 (預設為五分鐘)。這可能會導致資料庫或資料倉儲出現非預期的查詢流量。

使用 create_process 分多個步驟建立 PDT

如果資料庫方言需要自訂 DDL 指令,且您想發出多個指令來建立 PDT,可以使用 create_process 依特定順序發出多個自訂 DDL 指令。

sql_create 定義的資料表無法用於增量 PDT

如要將以 SQL 為基礎的 PDT 做為累加 PDT,必須使用 sql 參數定義查詢。以 sql_create 參數或 create_process 參數定義的 SQL 型 PDT 無法逐步建構。

這是因為 Looker 會使用 INSERT 或 MERGE 指令,為累加 PDT 建立增量。衍生資料表無法使用自訂資料定義語言 (DDL) 陳述式定義,因為 Looker 無法判斷建立準確增量所需的 DDL 陳述式。