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

  • indexes
  • cluster_keys
  • distribution
  • distribution_style
  • partition_keys
  • sortkeys
  • 示例

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