用途
view: my_view {
derived_table: { ... }
}
|
階層
derived_table |
デフォルト値
なし
|
定義
派生テーブルは、データベース内の通常のテーブルと同じように扱うことができます。次のいずれかのタイプの派生テーブルを作成できます。
explore_sourceパラメータを使用して定義されたネイティブ派生テーブルsqlパラメータを使用して定義する未加工の SQL クエリを使用する SQL ベースの派生テーブル
特定のエッジケースでは、
sqlパラメータの使用が許可されない場合があります。このような場合、Looker では PDT の SQL クエリを定義するために次のパラメータをサポートしています。create_processsql_create
sql、create_process、sql_createのどのパラメータを使用している場合であっても、派生テーブルの定義には SQL クエリが使用されるため、これらはすべて SQL ベースの派生テーブルとみなされます。
derived_table パラメータは、派生テーブルの計算方法、使用するインデックスまたはキー、再生成のタイミングを定義する LookML のセクションを開始します。
派生テーブルは、ユーザーがデータをリクエストしたときにアドホックに計算される一時的な派生テーブルにすることも、永続化戦略を使用してデータベースに永続化される永続的な派生テーブル(PDT)にすることもできます。
管理者が [増分 PDT] Labs 機能を有効にしていて、言語がサポートしている場合は、プロジェクトで増分 PDT を使用できます。増分 PDT は、テーブル全体を再構築するのではなく、テーブルに新しいデータを追加して増分でビルドされる PDT です。増分 PDT の詳細については、増分 PDT のドキュメント ページをご覧ください。
派生テーブルの詳細については、Looker の派生テーブルのドキュメント ページをご覧ください。
派生テーブルのサブパラメータ
このセクションでは、派生テーブルのサブパラメータの一覧を示します。
| パラメータ | 説明 |
|---|---|
cluster_keys: ["column_name", "column_name", ...] |
BigQuery と Snowflake の 1 つ以上のフィールドで PDT をクラスタ化することを指定します。 |
create_process: { sql_step:SQL query ;; } |
カスタムDDLコマンドを必要とするデータベースダイアレクトにPDTを作成するためのステップを順序だてて指定します。 |
datagroup_trigger: datagroup_name |
PDT 再構築ポリシーに使用するデータグループを指定します。 |
distribution: "column_name" |
Redshift または Aster でビルドされる PDT のディストリビューション キーを設定します。 |
distribution_style: all | even |
Redshift でビルドされる PDT のディストリビューション スタイルを設定します。 |
explore_source: explore_name { # Desired subparameters (described on explore_source page) } |
Explore をベースとするネイティブ派生テーブルを指定します。 |
increment_key: "column_name" |
新しいデータをクエリし、増分 PDT に追加する時間増分を指定します。 |
increment_offset: N |
インクリメンタル PDT で遅れて受信したデータを考慮するため、過去の期間(increment key の粒度で指定される)何回分を再構築するかを指定します。 |
indexes: ["column_name", "column_name", ...] |
従来のデータベース(MySQL、Postgres など)でビルドされる PDT、または Redshift のインターリーブ ソートキーのインデックスを設定します。 |
interval_trigger: "N (seconds | minutes | hours)" |
PDT の再構築スケジュールを指定します。 |
materialized_view: yes | no |
データベース上に派生テーブルのマテリアル化ビューを作成します。 |
partition_keys: ["column_name", "column_name", ...] |
Presto の 1 つ以上のフィールド、または BigQuery の 1 つの日時フィールドで、PDT をパーティション化することを指定します。 |
persist_for: "N (seconds | minutes | hours)" |
PDTが再生成されるまでの最大期間を設定します。 |
publish_as_db_view: yes | no |
Looker 外部のテーブルのクエリを可能にする PDT 用の安定したデータベース ビューを作成します。 |
sortkeys: ["column_name", "column_name", ...] |
Redshift でビルドされた PDT のソートキーを設定します。 |
sql: SQL query ;; |
派生テーブルのSQLクエリを宣言します。 |
sql_create: { SQL query ;; } |
カスタム DDL コマンドを必要とするデータベースダイアレクトに PDT を作成するための SQL CREATE ステートメントを定義します。 |
sql_trigger_value: SQL query ;; |
PDTが再生成される条件を指定します。 |
table_compression: GZIP | SNAPPY |
Amazon Athena の PDT に使用するテーブル圧縮を指定します。 |
table_format: PARQUET | ORC | AVRO | JSON | TEXTFILE |
Amazon Athena の PDT に使用するテーブル形式を指定します。 |
例
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 の最新リリースで派生テーブルをサポートする言語を示します。
| 方言 | サポート対象 |
|---|---|
| Actian Avalanche | |
| Amazon Athena | |
| Amazon Aurora MySQL | |
| Amazon Redshift | |
| Amazon Redshift 2.1+ | |
| Amazon Redshift Serverless 2.1+ | |
| Apache Druid | |
| Apache Druid 0.13+ | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| Cloudera Impala 3.1+ | |
| Cloudera Impala 3.1+ with Native Driver | |
| Cloudera Impala with Native Driver | |
| DataVirtuality | |
| Databricks | |
| Denodo 7 | |
| Denodo 8 & 9 | |
| Dremio | |
| Dremio 11+ | |
| Exasol | |
| Google BigQuery Legacy SQL | |
| Google BigQuery Standard SQL | |
| Google Cloud PostgreSQL | |
| Google Cloud SQL | |
| Google Spanner | |
| Greenplum | |
| HyperSQL | |
| IBM Netezza | |
| MariaDB | |
| Microsoft Azure PostgreSQL | |
| Microsoft Azure SQL Database | |
| Microsoft Azure Synapse Analytics | |
| Microsoft SQL Server 2008+ | |
| Microsoft SQL Server 2012+ | |
| Microsoft SQL Server 2016 | |
| Microsoft SQL Server 2017+ | |
| MongoBI | |
| MySQL | |
| MySQL 8.0.12+ | |
| Oracle | |
| Oracle ADWC | |
| PostgreSQL 9.5+ | |
| PostgreSQL pre-9.5 | |
| PrestoDB | |
| PrestoSQL | |
| SAP HANA | |
| SAP HANA 2+ | |
| SingleStore | |
| SingleStore 7+ | |
| Snowflake | |
| Teradata | |
| Trino | |
| Vector | |
| Vertica |
PDTに対応するデータベースダイアレクト
LookerプロジェクトでPDTに対応するためには、データベースダイアレクトでもPDTに対応している必要があります。
任意の種類の PDT(LookML ベースまたは SQL ベース)をサポートするには、言語がその他の要件に沿って、データベースへの書き込みに対応している必要があります。読み取り専用データベース構成の中には、永続性の動作を許可しないものもあります(Postgres ホットスワップ レプリカ データベースに頻繁に見られます)。こうした場合には、代わりに一時派生テーブルを使用できます。
次の表に、Looker の最新リリースで永続的な SQL ベースの派生テーブルに対応する言語を示します。
| 方言 | サポート対象 |
|---|---|
| Actian Avalanche | |
| Amazon Athena | |
| Amazon Aurora MySQL | |
| Amazon Redshift | |
| Amazon Redshift 2.1+ | |
| Amazon Redshift Serverless 2.1+ | |
| Apache Druid | |
| Apache Druid 0.13+ | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| Cloudera Impala 3.1+ | |
| Cloudera Impala 3.1+ with Native Driver | |
| Cloudera Impala with Native Driver | |
| DataVirtuality | |
| Databricks | |
| Denodo 7 | |
| Denodo 8 & 9 | |
| Dremio | |
| Dremio 11+ | |
| Exasol | |
| Google BigQuery Legacy SQL | |
| Google BigQuery Standard SQL | |
| Google Cloud PostgreSQL | |
| Google Cloud SQL | |
| Google Spanner | |
| Greenplum | |
| HyperSQL | |
| IBM Netezza | |
| MariaDB | |
| Microsoft Azure PostgreSQL | |
| Microsoft Azure SQL Database | |
| Microsoft Azure Synapse Analytics | |
| Microsoft SQL Server 2008+ | |
| Microsoft SQL Server 2012+ | |
| Microsoft SQL Server 2016 | |
| Microsoft SQL Server 2017+ | |
| MongoBI | |
| MySQL | |
| MySQL 8.0.12+ | |
| Oracle | |
| Oracle ADWC | |
| PostgreSQL 9.5+ | |
| PostgreSQL pre-9.5 | |
| PrestoDB | |
| PrestoSQL | |
| SAP HANA | |
| SAP HANA 2+ | |
| SingleStore | |
| SingleStore 7+ | |
| Snowflake | |
| Teradata | |
| Trino | |
| Vector | |
| Vertica |
永続的なネイティブ派生テーブル(LookML ベースのクエリを含む)をサポートするには、言語が CREATE TABLE DDL 関数にも対応している必要があります。Looker の最新リリースで永続的なネイティブ(LookML ベース)派生テーブルに対応する言語のリストを以下に示します。
| 方言 | サポート対象 |
|---|---|
| Actian Avalanche | |
| Amazon Athena | |
| Amazon Aurora MySQL | |
| Amazon Redshift | |
| Amazon Redshift 2.1+ | |
| Amazon Redshift Serverless 2.1+ | |
| Apache Druid | |
| Apache Druid 0.13+ | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| Cloudera Impala 3.1+ | |
| Cloudera Impala 3.1+ with Native Driver | |
| Cloudera Impala with Native Driver | |
| DataVirtuality | |
| Databricks | |
| Denodo 7 | |
| Denodo 8 & 9 | |
| Dremio | |
| Dremio 11+ | |
| Exasol | |
| Google BigQuery Legacy SQL | |
| Google BigQuery Standard SQL | |
| Google Cloud PostgreSQL | |
| Google Cloud SQL | |
| Google Spanner | |
| Greenplum | |
| HyperSQL | |
| IBM Netezza | |
| MariaDB | |
| Microsoft Azure PostgreSQL | |
| Microsoft Azure SQL Database | |
| Microsoft Azure Synapse Analytics | |
| Microsoft SQL Server 2008+ | |
| Microsoft SQL Server 2012+ | |
| Microsoft SQL Server 2016 | |
| Microsoft SQL Server 2017+ | |
| MongoBI | |
| MySQL | |
| MySQL 8.0.12+ | |
| Oracle | |
| Oracle ADWC | |
| PostgreSQL 9.5+ | |
| PostgreSQL pre-9.5 | |
| PrestoDB | |
| PrestoSQL | |
| SAP HANA | |
| SAP HANA 2+ | |
| SingleStore | |
| SingleStore 7+ | |
| Snowflake | |
| Teradata | |
| Trino | |
| Vector | |
| Vertica |
PDT は、OAuth を使用する Snowflake 接続ではサポートされていません。
増分PDT対応のデータベースダイアレクト
Looker プロジェクトで増分 PDT に対応するためには、データベース言語が、行の削除と挿入を有効にするデータ定義言語(DDL)のコマンドに対応している必要があります。
Looker の最新リリースで増分 PDT に対応する言語を次の表に示します。
| 方言 | サポート対象 |
|---|---|
| Actian Avalanche | |
| Amazon Athena | |
| Amazon Aurora MySQL | |
| Amazon Redshift | |
| Amazon Redshift 2.1+ | |
| Amazon Redshift Serverless 2.1+ | |
| Apache Druid | |
| Apache Druid 0.13+ | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| Cloudera Impala 3.1+ | |
| Cloudera Impala 3.1+ with Native Driver | |
| Cloudera Impala with Native Driver | |
| DataVirtuality | |
| Databricks | |
| Denodo 7 | |
| Denodo 8 & 9 | |
| Dremio | |
| Dremio 11+ | |
| Exasol | |
| Google BigQuery Legacy SQL | |
| Google BigQuery Standard SQL | |
| Google Cloud PostgreSQL | |
| Google Cloud SQL | |
| Google Spanner | |
| Greenplum | |
| HyperSQL | |
| IBM Netezza | |
| MariaDB | |
| Microsoft Azure PostgreSQL | |
| Microsoft Azure SQL Database | |
| Microsoft Azure Synapse Analytics | |
| Microsoft SQL Server 2008+ | |
| Microsoft SQL Server 2012+ | |
| Microsoft SQL Server 2016 | |
| Microsoft SQL Server 2017+ | |
| MongoBI | |
| MySQL | |
| MySQL 8.0.12+ | |
| Oracle | |
| Oracle ADWC | |
| PostgreSQL 9.5+ | |
| PostgreSQL pre-9.5 | |
| PrestoDB | |
| PrestoSQL | |
| SAP HANA | |
| SAP HANA 2+ | |
| SingleStore | |
| SingleStore 7+ | |
| Snowflake | |
| Teradata | |
| Trino | |
| Vector | |
| Vertica |