用法
derived_table: customer_order_facts {
sql_create: {
SQL statement ;;
}
}
|
层次结构
sql_create |
默认值
无
接受
SQL 语句
|
定义
sql_create 可为构建永久性派生表 (PDT) 启用自定义数据定义语言 (DDL) 命令。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 和数据组维护时间表设置中指定的每个触发检查间隔(默认值为 5 分钟)从头开始重建该表。这可能会导致数据库或数据仓库出现意外的查询流量。
使用 create_process 分多步创建 PDT
如果您的数据库方言需要自定义 DDL 命令,并且您想发出多个命令来创建 PDT,则可以使用 create_process 按特定顺序发出多个自定义 DDL 命令。
使用 sql_create 定义的表无法用于增量 PDT
如需用作增量 PDT,基于 SQL 的 PDT 必须使用 sql 参数定义查询。使用 sql_create 参数或 create_process 参数定义的基于 SQL 的 PDT 无法以增量方式构建。
这是因为 Looker 使用 INSERT 或 MERGE 命令来创建增量 PDT 的增量。派生表无法使用自定义数据定义语言 (DDL) 语句进行定义,因为 Looker 无法确定创建准确增量所需的 DDL 语句。