derived_table

用途

view: my_view {
  derived_table: { ... }
}
階層
derived_table
デフォルト値
なし

定義

派生テーブルは、データベース内の通常のテーブルであるかのように扱うことができます。次のいずれかのタイプの派生テーブルを作成できます。

特定のエッジケースでは、sql パラメータの使用が許可されない場合があります。このような場合、Looker では PDT の SQL クエリを定義するために次のパラメータをサポートしています。

  • create_process
  • sql_create
  • sql、create_process、sql_create のどのパラメータを使用している場合であっても、派生テーブルの定義には SQL クエリが使用されるため、これらはすべて SQL ベースの派生テーブルとみなされます。

    derived_table パラメータは、派生テーブルの計算方法、使用するインデックスまたはキー、再生成するタイミングを定義する LookML のセクションを開始します。

    派生テーブルは、ユーザーがデータをリクエストしたときにアドホックに計算される一時派生テーブルにすることも、永続化戦略を使用してデータベースに永続化される永続的な派生テーブル(PDT)にすることもできます。

    言語がサポートしている場合は、プロジェクトで増分 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.x - 0.17.x
    Apache Druid 0.18+
    Apache Hive 2.3+
    Apache Hive 3.1.2+
    Apache Spark 3+
    ClickHouse
    ClickHouse 26+
    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+
    Dremio 26+ with Arrow Flight SQL
    Exasol
    Google BigQuery Legacy SQL
    Google BigQuery Standard SQL
    Google Cloud AlloyDB for PostgreSQL
    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
    MongoSQL
    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.x - 0.17.x
    Apache Druid 0.18+
    Apache Hive 2.3+
    Apache Hive 3.1.2+
    Apache Spark 3+
    ClickHouse
    ClickHouse 26+
    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+
    Dremio 26+ with Arrow Flight SQL
    Exasol
    Google BigQuery Legacy SQL
    Google BigQuery Standard SQL
    Google Cloud AlloyDB for PostgreSQL
    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
    MongoSQL
    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.x - 0.17.x
    Apache Druid 0.18+
    Apache Hive 2.3+
    Apache Hive 3.1.2+
    Apache Spark 3+
    ClickHouse
    ClickHouse 26+
    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+
    Dremio 26+ with Arrow Flight SQL
    Exasol
    Google BigQuery Legacy SQL
    Google BigQuery Standard SQL
    Google Cloud AlloyDB for PostgreSQL
    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
    MongoSQL
    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.x - 0.17.x
    Apache Druid 0.18+
    Apache Hive 2.3+
    Apache Hive 3.1.2+
    Apache Spark 3+
    ClickHouse
    ClickHouse 26+
    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+
    Dremio 26+ with Arrow Flight SQL
    Exasol
    Google BigQuery Legacy SQL
    Google BigQuery Standard SQL
    Google Cloud AlloyDB for PostgreSQL
    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
    MongoSQL
    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