用量
derived_table: customer_order_facts {
sql_create: {
SQL statement ;;
}
}
|
階層
sql_create |
預設值
無
接受
SQL 陳述式
|
定義
sql_create 可啟用自訂資料定義語言 (DDL) 指令,用於建構永久衍生資料表 (PDT)。sql_create會照常發布報表,不會進行 Looker 的一般錯誤檢查。唯一條件是陳述式必須建立並執行 PDT。舉例來說,您可以建立支援 Google BigQuery ML 機器學習模型的 PDT。
如果使用
sql_create定義 PDT,則無法使用下列任一參數:indexescluster_keysdistributiondistribution_stylepartition_keyssortkeys
範例
為預測未來購買可能性的 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 陳述式。