用途
derived_table: {
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 ;;
}
}
|
階層
create_process |
デフォルト値
なし
許可
1 つ以上の sql_step サブパラメータ
|
定義
データベース言語でカスタム データ定義言語(DDL)コマンドを使用する場合は、create_process を使用して 永続的な派生テーブル(PDT)を作成できます。create_process は、リストされている順序で実行される SQL ステートメントのリストを定義します。各 SQL ステートメントは、sql_step サブパラメータを使用して指定されます。各 sql_step サブパラメータには、有効な SQL クエリを含めることができます。複数の sql_step サブパラメータを定義できます。これらは、指定された順序で 1 つずつ実行されます。Looker は、通常の Looker のエラー訂正なしで、sql_step サブパラメータのステートメントを発行します。
たとえば、一部のデータベース言語では、単一の 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 では、次のパラメータは使用できません。
例
MySQL データベースに ctasless_customer_order_facts 永続的な派生テーブルを 2 つのステップで作成します。まず、最初の 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 の計算された名前を置き換えることができます。これにより、SQL ステートメントに LookML view パラメータで指定された PDT 名が正しく含まれるようになります。
create_processは、${SQL_TABLE_NAME}置換演算子で示された名前のテーブルを作成する必要があります。そうしないと、接続の [**データグループと PDT のメンテナンス スケジュール**] 設定で指定されたトリガー チェック間隔(デフォルトは 5 分)ごとに最初から再構築されます。これにより、データベースまたはデータ ウェアハウスで予期しないクエリ トラフィックが発生する可能性があります。
sql_create を使用して 1 つのステップで PDT を作成する
データベース言語でカスタム DDL コマンドが必要で、1 つのステップで PDT を作成する場合は、sql_create を使用して完全な SQL CREATE ステートメントを定義し、実行して 1 つのステップで PDT を作成できます。
create_process で定義されたテーブルは増分 PDT に使用できない
増分 PDT として使用するには、SQL ベースの PDT に sql パラメータを使用して定義されたクエリが必要です。sql_create パラメータまたは create_process パラメータで定義された SQL ベースの PDT は、段階的に構築することはできません。
これは、Looker が INSERT コマンドまたは MERGE コマンドを使用して、増分 PDT の増分を作成するためです。派生テーブルを、カスタムデータ定義言語(DDL)ステートメントを使用して定義することはできません。というのは、Looker は、正確な増分作成のためにどの DDL ステートメントが必要になるかを判別できないからです。