derived_table

Penggunaan

view: my_view {
  derived_table: { ... }
}
Hierarki
derived_table
Nilai Default
Tidak ada

Definisi

Tabel turunan dapat diperlakukan seolah-olah merupakan tabel normal dalam database Anda. Anda dapat membuat salah satu jenis tabel turunan berikut:

Kasus ekstrem tertentu tidak akan mengizinkan penggunaan parameter sql. Dalam kasus tersebut, Looker mendukung parameter berikut untuk menentukan kueri SQL untuk PDT:

  • create_process
  • sql_create
  • Dengan parameter sql, create_process, atau sql_create, dalam semua kasus ini Anda menentukan tabel turunan dengan kueri SQL, sehingga semuanya dianggap sebagai tabel turunan berbasis SQL.

    Parameter derived_table memulai bagian LookML tempat Anda menentukan cara penghitungan tabel turunan, indeks atau kunci yang harus digunakan, dan kapan tabel tersebut harus dibuat ulang.

    Tabel turunan dapat berupa tabel turunan sementara yang dihitung secara ad hoc saat pengguna meminta data dari tabel tersebut, atau dapat berupa tabel turunan persisten (PDT) yang dipertahankan di database Anda menggunakan strategi persistensi.

    Jika admin Anda telah mengaktifkan PDT Inkremental fitur Labs, dan jika dialek Anda mendukungnya, Anda dapat menggunakan PDT inkremental dalam project Anda. PDT inkremental adalah PDT yang dibuat secara bertahap dengan menambahkan data baru ke tabel, bukan membangun ulang seluruh tabel. Lihat halaman dokumentasi PDT Inkremental untuk mengetahui informasi selengkapnya tentang PDT inkremental.

    Lihat halaman dokumentasi Tabel turunan di Looker untuk mengetahui informasi selengkapnya tentang tabel turunan.

    Subparameter tabel turunan

    Bagian ini mencantumkan subparameter tabel turunan.

    Parameter Deskripsi
    cluster_keys: ["column_name", "column_name", ...] Menentukan bahwa PDT dikelompokkan menurut satu atau beberapa kolom di BigQuery dan Snowflake.
    create_process: { sql_step:SQL query ;; } Menentukan urutan langkah-langkah yang diurutkan untuk membuat PDT pada dialek database yang memerlukan perintah DDL kustom.
    datagroup_trigger: datagroup_name Menentukan grup data yang akan digunakan untuk kebijakan pembangunan ulang PDT.
    distribution: "column_name" Menetapkan kunci distribusi PDT yang dibuat di Redshift atau Aster.
    distribution_style: all | even Menetapkan gaya distribusi PDT yang dibuat di Redshift.
    explore_source: explore_name { # Desired subparameters (described on explore_source page) } Menentukan tabel turunan native berdasarkan Explore.
    increment_key: "column_name" Menentukan inkrement waktu yang datanya harus dikueri dan ditambahkan ke PDT inkremental.
    increment_offset: N Menentukan jumlah periode waktu sebelumnya (pada perincian kunci inkremental) yang dibangun kembali untuk memperhitungkan data yang terlambat tiba untuk PDT inkremental.
    indexes: ["column_name", "column_name", ...] Menetapkan indeks PDT yang dibuat dalam database tradisional (misalnya, MySQL, Postgres) atau kunci pengurutan yang disisipkan di Redshift.
    interval_trigger: "N (seconds | minutes | hours)" Menentukan jadwal pembangunan ulang untuk PDT.
    materialized_view: yes | no Membuat tampilan terwujud di database Anda untuk tabel turunan.
    partition_keys: ["column_name", "column_name", ...] Menentukan bahwa PDT dipartisi menurut satu atau beberapa kolom di Presto, atau menurut satu kolom tanggal/waktu di BigQuery.
    persist_for: "N (seconds | minutes | hours)" Menetapkan usia maksimum PDT sebelum dibuat ulang.
    publish_as_db_view: yes | no Membuat tampilan database yang stabil untuk PDT agar dapat membuat kueri tabel di luar Looker.
    sortkeys: ["column_name", "column_name", ...] Menetapkan kunci pengurutan PDT yang dibuat di Redshift.
    sql: SQL query ;; Mendeklarasikan kueri SQL untuk tabel turunan.
    sql_create: { SQL query ;; } Menentukan pernyataan CREATE SQL untuk membuat PDT pada dialek database yang memerlukan perintah DDL kustom.
    sql_trigger_value: SQL query ;; Menentukan kondisi yang menyebabkan PDT dibuat ulang.
    table_compression: GZIP | SNAPPY Menentukan kompresi tabel yang akan digunakan untuk PDT di Amazon Athena.
    table_format: PARQUET | ORC | AVRO | JSON | TEXTFILE Menentukan format tabel yang akan digunakan untuk PDT di Amazon Athena.

    Contoh

    Buat tabel turunan native customer_order_facts dengan parameter explore_source:

    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 }
        }
      }
    }
    

    Buat tabel turunan customer_order_facts dengan parameter sql:

    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 ;;
      }
    }
    

    Hal-hal yang perlu dipertimbangkan

    Hindari penggunaan tabel turunan secara berlebihan untuk membuat solusi SQL murni

    Pengguna yang sangat memahami SQL sering kali menggunakan tabel turunan untuk memecahkan masalah dengan kueri SQL yang kompleks, yang hasilnya kemudian dapat ditampilkan kepada pengguna. Meskipun terkadang perlu dilakukan, hal ini juga dapat melewatkan sifat modular dan dapat digunakan kembali dari LookML serta dapat mengunci pengguna ke cara yang kaku dalam menjelajahi data mereka.

    Saran umum kami adalah memikirkan tujuan dasar kueri SQL Anda, lalu mengonversi logika tersebut ke LookML, daripada menyalin dan menempel kueri yang ada ke dalam tabel turunan. Jika Anda memerlukan bantuan untuk membuat analisis yang tidak bergantung pada tabel turunan, analis dukungan Looker siap membantu memberikan praktik terbaik.

    Dialek database yang didukung untuk tabel turunan

    Dialek database yang didukung untuk tabel turunan sementara

    Agar Looker mendukung tabel turunan di project Looker Anda, dialek database Anda juga harus mendukungnya. Tabel berikut menunjukkan dialek yang mendukung tabel turunan dalam rilis Looker terbaru:

    Dialek Didukung?
    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

    Dialek database yang didukung untuk PDT

    Agar Looker mendukung PDT di project Looker Anda, dialek database Anda juga harus mendukungnya.

    Untuk mendukung semua jenis PDT (berbasis LookML atau berbasis SQL), dialek harus mendukung penulisan ke database, di antara persyaratan lainnya. Ada beberapa konfigurasi database hanya baca yang tidak mengizinkan persistensi berfungsi (paling umum adalah database replika hot-swap Postgres). Dalam kasus ini, Anda dapat menggunakan tabel turunan sementara sebagai gantinya.

    Tabel berikut menunjukkan dialek yang mendukung tabel turunan berbasis SQL persisten dalam rilis terbaru Looker:

    Dialek Didukung?
    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

    Untuk mendukung tabel turunan native persisten (yang memiliki kueri berbasis LookML), dialek juga harus mendukung fungsi DDL CREATE TABLE. Berikut adalah daftar dialek yang mendukung tabel turunan berbasis persisten asli (berbasis LookML) dalam rilis Looker terbaru:

    Dialek Didukung?
    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 tidak didukung untuk koneksi Snowflake yang menggunakan OAuth.

    Dialek database yang didukung untuk PDT inkremental

    Agar Looker mendukung PDT inkremental di project Looker Anda, dialek database Anda harus mendukung perintah Bahasa Definisi Data (DDL) yang memungkinkan penghapusan dan penyisipan baris.

    Tabel berikut menunjukkan dialek mana yang mendukung PDT inkremental dalam rilis Looker terbaru:

    Dialek Didukung?
    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