derived_table

用途

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

定義

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

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

  • create_process
  • sql_create
  • sqlcreate_processsql_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