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:
- Tabel turunan native yang ditentukan menggunakan parameter
explore_source - Tabel turunan berbasis SQL menggunakan kueri SQL mentah yang Anda tentukan menggunakan parameter
sql
Kasus ekstrem tertentu tidak akan mengizinkan penggunaan parameter
sql. Dalam kasus tersebut, Looker mendukung parameter berikut untuk menentukan kueri SQL untuk PDT:create_processsql_createDengan parameter
sql,create_process, atausql_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 |