sql_create

用法

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,您无法使用以下任何参数:

示例

为预测未来购买可能性的 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 语句。