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 and Datagroup Maintenance Schedule] 設定で指定されたトリガー チェック間隔(デフォルトは 5 分)ごとに、テーブルがゼロから再構築されます。これにより、データベースまたはデータ ウェアハウスで予期しないクエリ トラフィックが発生する可能性があります。

    create_process を使用して複数のステップで PDT を作成する

    データベース ダイアレクトでカスタム DDL コマンドが必要で、複数のコマンドを発行して PDT を作成する場合は、create_process を使用して、特定の順序で複数のカスタム DDL コマンドを発行できます。

    sql_create で定義されたテーブルは増分 PDT に使用できません

    増分 PDT として使用するには、SQL ベースの PDT に sql パラメータを使用して定義されたクエリが必要です。sql_create パラメータまたは create_process パラメータで定義された SQL ベースの PDT は、段階的に構築することはできません。

    これは、Looker が増分 PDT の増分を作成するために INSERT コマンドまたは MERGE コマンドを使用するためです。派生テーブルを、カスタムデータ定義言語(DDL)ステートメントを使用して定義することはできません。というのは、Looker は、正確な増分作成のためにどの DDL ステートメントが必要になるかを判別できないからです。