使用状況
derived_table: { ... }
}
階層
derived_table |
デフォルト値
なし |
定義
派生テーブルは、データベース内の通常のテーブルのように扱うことができます。次のいずれかのタイプの派生テーブルを作成できます。
explore_source
パラメータを使用して定義されるネイティブ派生テーブル- 未加工の SQL クエリを使用する SQL ベースの派生テーブル(
sql
パラメータで定義)
一部のエッジケースでは、
sql
パラメータを使用できません。Looker では、このような場合、PDT の SQL クエリを定義する次のパラメータをサポートしています。create_process
sql_create
sql
、create_process
、sql_create
のパラメータを使用する場合、いずれの場合も SQL クエリを使用して派生テーブルを定義します。そのため、これらはすべて SQL ベースの派生テーブルとみなされます。
derived_table
パラメータは LookML のセクションを開始します。このセクションでは、派生テーブルの計算方法、使用するインデックスまたはキー、再生成のタイミングを定義します。
派生テーブルは、ユーザーがデータをリクエストしたときにアドホックで計算される一時的な派生テーブルでも、永続化戦略を使用してデータベースで永続化される永続的な派生テーブル(PDT)でもかまいません。
管理者が増分 PDT Labs 機能を有効にしていて、言語がサポートされている場合は、プロジェクトで増分 PDT を使用できます。増分 PDT は、テーブル全体を再ビルドするのではなく、最新のデータをテーブルに追加して段階的にビルドされる PDT です。増分 PDT の詳細については、増分 PDT のドキュメントをご覧ください。
派生テーブルの詳細については、Looker の派生テーブルをご覧ください。
例
explore_source
パラメータで customer_order_facts
ネイティブ派生テーブルを作成します。
view: customer_order_facts {
derived_table: {
explore_source: order {
column: customer_id { field: order.customer_id }
column: lifetime_orders { field: order.count }
column: lifetime_spend { field: order.total_spend }
}
}
}
sql
パラメータを使用して customer_order_facts
派生テーブルを作成します。
view: customer_order_facts {
derived_table: {
sql:
SELECT
customer_id,
COUNT(*) AS lifetime_orders,
SUM(total) AS lifetime_spend
FROM
order
GROUP BY
customer_id ;;
}
}
注意点
派生テーブルを過剰に使用せずに、純粋な SQL ソリューションを作成しない
特に SQL に精通したユーザーは、多くの場合、派生テーブルを使用して複雑な SQL クエリの問題を解決します。その結果はユーザーに公開されます。必要な場合もありますが、モジュール式で再利用可能な LookML の性質を見逃し、ユーザーをデータを探索する厳格な方法に縛られる可能性があります。
一般的には、SQL クエリの基本的な目的を検討し、既存のクエリをコピーして派生テーブルに貼り付けるのではなく、そのロジックを LookML に変換することをおすすめします。派生テーブルに依存しない分析の作成についてサポートが必要な場合は、Looker サポート アナリストがベスト プラクティスをサポートします。
派生テーブルでサポートされるデータベース言語
一時的な派生テーブルに対応するデータベースダイアレクト
Looker の派生テーブルを Looker でサポートするには、データベース言語もそれらをサポートしている必要があります。次の表に、Looker の最新リリースで派生テーブルをサポートする言語を示します。
永続的な派生テーブルでサポートされているデータベース言語
LookerプロジェクトでPDTに対応するためには、データベースダイアレクトでもPDTに対応している必要があります。
任意のタイプの永続的な派生テーブル(LookML ベースまたは SQL ベース)をサポートするには、データベースがその他の要件の中でデータベースへの書き込みをサポートしている必要があります。一部の読み取り専用のデータベース構成では、永続性が動作しません(一般的には Postgres のホットスワップ レプリカ データベース)。このような場合は、代わりに一時派生テーブルを使用できます。
次の表に、Looker の最新リリースで永続的な SQL ベースの派生テーブルをサポートする言語を示します。
永続的なネイティブ派生テーブル(LookML ベースのクエリを含む)をサポートするには、言語が CREATE TABLE
DDL 関数もサポートしている必要があります。Looker の最新リリースでネイティブ(LookML ベース)派生テーブルをサポートする言語の一覧を示します。
PDT は、OAuth を使用する Snowflake 接続ではサポートされていません。
増分PDT対応のデータベースダイアレクト
Looker プロジェクトで増分 PDT をサポートするには、データベース言語がデータ定義言語(DDL)コマンドに対応している必要があります。これらのコマンドを使用すると、行の削除と挿入が可能になります。
次の表は、Looker の最新リリースで増分 PDT をサポートしている言語を示しています。