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에 관한 자세한 내용은 증분 PDT 문서 페이지를 참고하세요.

    파생 테이블에 대한 자세한 내용은 Looker의 파생 테이블 문서 페이지를 참고하세요.

    파생 테이블 하위 매개변수

    이 섹션에는 파생 테이블 하위 매개변수가 나열되어 있습니다.

    매개변수 설명
    cluster_keys: ["column_name", "column_name", ...] PDT가 BigQuery 및 Snowflake의 하나 이상의 필드로 클러스터링되도록 지정합니다.
    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의 늦게 도착하는 데이터를 고려하여 다시 빌드되는 이전 기간 수 (증분 키의 세분성 적용)를 지정합니다.
    indexes: ["column_name", "column_name", ...] 기존 데이터베이스 (예: MySQL, Postgres) 또는 Redshift의 인터리브 정렬 키에 빌드된 PDT의 색인을 설정합니다.
    interval_trigger: "N (seconds | minutes | hours)" PDT의 다시 빌드 일정을 지정합니다.
    materialized_view: yes | no 파생 테이블의 데이터베이스에 구체화된 뷰를 만듭니다.
    partition_keys: ["column_name", "column_name", ...] PDT가 Presto의 하나 이상의 필드 또는 BigQuery의 단일 날짜/시간 필드로 파티션을 나눌지 지정합니다.
    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 프로젝트에서 파생 테이블을 지원하려면 데이터베이스 언어에서도 이를 지원해야 합니다. 다음 표에서는 최신 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가 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

    OAuth를 사용하는 Snowflake 연결에는 PDT가 지원되지 않습니다.

    증분 PDT에 지원되는 데이터베이스 언어

    Looker가 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