用途
create_process: {
sql_step:
CREATE TABLE ${SQL_TABLE_NAME}
(customer_id int(11),
(
)(id)
(
階層
create_process |
デフォルト値
なし許可
1 つ以上の sql_step サブパラメータ。 |
定義
データベース言語がカスタムのデータ定義言語(DDL)コマンドを使用している場合は、create_process
を使用して永続的な派生テーブル(PDT)を作成できます。create_process
は、記載されている順序で実行される SQL ステートメントのリストを定義します。個々の SQL ステートメントは、sql_step
サブパラメータを使用して指定します。各 sql_step
サブパラメータには、任意の有効な SQL クエリを含めることができます。複数の sql_step
サブパラメータを定義できます。これらは、指定された順序で 1 つずつ実行されます。Looker は、sql_step
サブパラメータ内のステートメントをそのまま発行します。Looker の通常のエラー修正はありません。
たとえば、一部のデータベース言語は、単一の SQL ステートメントとして発行される CREATE TABLE as SELECT
をサポートしていません。その場合は、個別の SQL ステートメントが必要になります。そのため、これらの言語では SQL ベースの永続的な派生テーブルを作成できません。create_process
パラメータは、順番に発行される個別の SQL ステートメントのリストを作成して PDT を作成する別の方法を提供します。
また、create_process
を使用して、Google 予測 BigQuery ML 機械学習モデルなどの言語をサポートすることもできます。
create_process
パラメータは、派生テーブルの完全な CREATE
ステートメント(インデックスを含む)を作成していることを示します。create_process
を使用して派生テーブルのインデックスを追加するには、sql_step
パラメータを使用してインデックスの SQL を指定します。
create_process
を使用して定義された PDT の場合、次のパラメータは使用できません。indexes
cluster_keys
distribution
distribution_style
partition_keys
sortkeys
例
2 つの手順で、MySQL データベースに ctasless_customer_order_facts
永続的な派生テーブルを作成します。まず、最初の sql_step
サブパラメータで定義された CREATE TABLE
SQL ステートメントを発行します。次に、2 番目の sql_step
サブパラメータによって定義される SELECT
ステートメントで INSERT INTO
SQL ステートメントを発行します。
view: ctasless_customer_order_facts {
derived_table: {
datagroup_trigger: some_datagroup
create_process: {
sql_step: CREATE TABLE ${SQL_TABLE_NAME} (
customer_id int(11),
lifetime_orders int(11)
) ;;
sql_step: INSERT INTO ${SQL_TABLE_NAME}(customer_id, lifetime_orders)
SELECT customer_id, COUNT(*) AS lifetime_orders
FROM order
GROUP BY customer_id ;;
}
}
}
注意点
${SQL_TABLE_NAME}
置換演算子
${SQL_TABLE_NAME}
置換演算子を使用して、作成する PDT の計算名に置換できます。これにより、LookML view
パラメータで指定された PDT 名が SQL ステートメントに正しく含まれます。
create_process
は、${SQL_TABLE_NAME}
置換演算子が示す名前のテーブルを作成する必要があります。作成しない場合、接続の PDT およびデータグループのメンテナンス スケジュール設定で指定されたトリガー チェック間隔ごとにゼロから再構築されます(デフォルトは 5 分)。これにより、データベースやデータ ウェアハウスで予期しないクエリ トラフィックが発生する可能性があります。
sql_create
を使用して、1 つのステップで PDT を作成する
データベース言語にカスタム DDL コマンドが必要で、単一のステップで PDT を作成する場合は、sql_create
を使用して完全な SQL CREATE
ステートメントを定義し、単一のステップで PDT を実行できます。
create_process
で定義されたテーブルは、増分 PDT に使用できません
増分 PDT として使用するには、SQL ベースの PDT に sql
パラメータを使用してクエリを定義する必要があります。sql_create
パラメータまたは create_process
パラメータで定義された SQL ベースの PDT は、増分ビルドできません。
これは、Looker が PD コマンドまたは MERGE コマンドで増分 PDT の増分を作成するためです。派生テーブルを、カスタムデータ定義言語(DDL)ステートメントを使用して定義することはできません。というのは、Looker は、正確な増分作成のためにどの DDL ステートメントが必要になるかを判別できないからです。