Penggunaan
view: my_view {
derived_table: {
materialized_view: yes
...
}
}
|
Hierarki
materialized_view |
Nilai Default
no
Menerima
Boolean (yes atau no)
Aturan Khusus
materialized_view hanya didukung pada dialek tertentu
|
Definisi
Fungsi tampilan terwujud adalah fitur lanjutan. Bergantung pada dialek Anda, tampilan terwujud dapat menggunakan resource yang besar, jadi penting untuk memahami penerapan tampilan terwujud pada dialek Anda. Lihat dokumentasi dialek Anda untuk mengetahui informasi tentang perilaku dialek Anda dan frekuensi dialek memperbarui data untuk tampilan terwujud.
Tampilan terwujud memungkinkan Anda memanfaatkan fungsi database untuk mempertahankan tabel turunan di project Looker. Jika dialek database Anda mendukung tampilan terwujud dan koneksi Looker Anda dikonfigurasi dengan opsi Persistent Derived Tables diaktifkan, Anda dapat membuat tampilan terwujud dengan menentukan materialized_view: yes untuk tabel turunan. Tampilan terwujud didukung untuk tabel turunan native dan tabel turunan berbasis SQL.
Mirip dengan tabel turunan persisten (PDT), tampilan terwujud adalah hasil kueri yang disimpan sebagai tabel di skema dasar database Anda. Perbedaan utama antara PDT dan tampilan terwujud adalah cara tabel diperbarui:
- Untuk PDT, strategi persistensi ditentukan di Looker, dan persistensi dikelola oleh Looker.
- Untuk tampilan terwujud, database bertanggung jawab untuk mempertahankan dan memperbarui data dalam tabel.
Oleh karena itu, fungsi tampilan terwujud memerlukan pengetahuan mendalam tentang dialek Anda dan fiturnya. Dalam sebagian besar kasus, database Anda akan memperbarui tampilan terwujud setiap kali database mendeteksi data baru dalam tabel yang dikueri oleh tampilan terwujud. Tampilan terwujud optimal untuk skenario yang memerlukan data real-time.
Jika tabel turunan dengan pernyataan materialized_view: yes juga memiliki grup data, sql_trigger_value, atau persist_for parameter, pernyataan materialized_view: yes akan diprioritaskan.
Contoh
Tabel turunan e_flights_pdt ini memiliki pernyataan materialized_view: yes, sehingga tampilan terwujud dibuat dalam skema dasar database:
view: e_flights_pdt {
derived_table: {
materialized_view: yes
explore_source: ontime {
column: flight_num {}
column: carrier {}
column: arr_date {}
}
}
dimension: flight_num {}
dimension: carrier {}
dimension: arr_date {
type: date
}
}
Saat Looker membuat tampilan terwujud
Looker membuat tampilan terwujud dengan cara yang sama seperti PDT lainnya. Jika Anda membuat tampilan terwujud dan mengkuerinya dalam Mode Pengembangan, Looker akan membuat versi pengembangan tampilan terwujud, yang juga dapat digunakan untuk produksi. Lihat bagian Tabel persisten dalam Mode Pengembangan di halaman dokumentasi Tabel turunan di Looker untuk mengetahui detailnya.
Jika tidak, tampilan terwujud akan dibuat selama siklus berikutnya dari regenerator Looker, setelah LookML tabel turunan terkait di-deploy ke produksi dengan materialized_view: yes.
Tampilan database stabil untuk tampilan terwujud
Looker otomatis membuat tampilan database stabil untuk setiap tampilan terwujud. Tampilan database stabil dibuat di database itu sendiri, sehingga dapat dikueri di luar Looker. Ini adalah fungsi tampilan stabil yang sama yang digunakan dengan parameter publish_as_db_view.
Looker membuat tampilan stabil selama siklus berikutnya dari regenerator Looker, setelah LookML tampilan terwujud di-deploy ke produksi. Setelah tampilan database stabil dipublikasikan, Anda dapat mengkuerinya secara langsung.
Admin atau pengguna dengan izin see_pdts dapat memperoleh nama tampilan database stabil dari modal PDT Details di halaman Persistent Derived Tables di bagian Admin Looker.
Untuk mengkueri tampilan terwujud secara langsung, cukup tambahkan nama skema dasar sebelum nama tabel. Misalnya, jika nama tampilan database stabil adalah NN_e_redflight_e_redflight_publish_as_db dan nama skema dasar adalah tmp, Anda dapat mengkueri tampilan database stabil dengan perintah seperti ini:
SELECT * from tmp.NN_e_redflight_e_redflight_publish_as_db
Persyaratan untuk tampilan terwujud
Untuk menggunakan tampilan terwujud di project Looker, Anda memerlukan hal berikut:
- Dialek database yang mendukung tampilan terwujud. Lihat bagian Dukungan dialek untuk tampilan terwujud di halaman ini untuk mengetahui daftar dialek yang mendukung tampilan terwujud.
- Skema dasar di database Anda. Ini dapat berupa skema apa pun di database Anda, tetapi sebaiknya buat skema baru yang hanya akan digunakan untuk tujuan ini. Administrator database Anda harus mengonfigurasi skema dengan izin tulis untuk pengguna database Looker.
- Koneksi Looker yang dikonfigurasi dengan opsi Persistent Derived Tables diaktifkan. Opsi ini biasanya disiapkan saat Anda mengonfigurasi koneksi Looker untuk pertama kalinya (lihat halaman dokumentasi dialek Looker untuk mengetahui petunjuk dialek database Anda), tetapi Anda juga dapat mengaktifkan PDT untuk koneksi setelah penyiapan awal.
- Koneksi Looker dengan izin
CREATE TABLEuntuk skema sementara di database Anda. Ini adalah izin yang sama yang diperlukan untuk membuat PDT. Selain itu, untuk membuat tampilan database stabil untuk tampilan terwujud, koneksi harus memiliki izinCREATE VIEWuntuk skema sementara di database Anda. Anda dapat menguji koneksi untuk memverifikasi bahwa koneksi memiliki izin ini:- Jika PDT diaktifkan pada koneksi, dan koneksi memiliki izin
CREATE TABLE, uji koneksi akan menampilkan hasil sepertiCan use persistent derived tables in temp schema "docsexamples_scratch" in database "demo_db". - Jika koneksi mengizinkan tampilan stabil dan koneksi memiliki izin
CREATE VIEW, uji koneksi akan menampilkan hasil sepertiCan use stable views in temp schema "docsexamples_scratch" in database "flightstats".
- Jika PDT diaktifkan pada koneksi, dan koneksi memiliki izin
Pertimbangan penting untuk tampilan terwujud
Dengan tampilan terwujud, Looker tidak mempertahankan dan memperbarui data dalam tabel. Oleh karena itu, fungsi tampilan terwujud memerlukan pengetahuan mendalam tentang dialek Anda dan fiturnya. Berikut beberapa hal yang perlu dipertimbangkan saat Anda membuat tampilan terwujud:
- Beberapa dialek memiliki batasan untuk tampilan terwujud, seperti interval pembaruan maksimum default dan dukungan untuk gabungan. Looker tidak menghasilkan error LookML tentang fungsi khusus dialek dari tampilan terwujud. Sebagai gantinya, Looker akan menghasilkan error jika tampilan terwujud gagal dibuat, baik sebagai peristiwa di Log Peristiwa PDT atau sebagai error runtime jika Anda mencoba mengkueri tampilan terwujud. Lihat dokumentasi dialek Anda tentang batasan untuk tampilan terwujud.
- Beberapa dialek memeriksa kesegaran kueri saat tampilan terwujud dikueri, yang dapat menambahkan sedikit penundaan untuk mendapatkan hasil kueri. Lihat dokumentasi dialek Anda untuk melihat apakah hal ini berlaku untuk dialek Anda.
- Beberapa dialek akan mencoba memperbarui tampilan terwujud secara bertahap, bukan membangunnya kembali sepenuhnya. Lihat dokumentasi dialek Anda untuk mengetahui informasi selengkapnya.
- Jika tampilan terwujud Anda menggunakan tabel dasar yang dihapus dari database, Anda mungkin tidak dapat mengkueri tampilan terwujud, dan versi baru akan gagal dibuat.
- Jika tabel turunan dengan pernyataan
materialized_view: yesjuga memiliki grup data,sql_trigger_value, ataupersist_forparameter, pernyataanmaterialized_view: yesakan diprioritaskan. - Tampilan terwujud mendukung parameter khusus dialek yang sama yang didukung oleh tabel turunan secara umum, seperti partisi, sortkey, dan indeks.
- Dalam kasus tabel turunan bertingkat, tampilan terwujud dapat bergantung pada PDT Looker, dengan peringatan berikut:
- Anda tidak dapat menggunakan tabel turunan dengan strategi persistensi
persist_fordalam definisi tabel turunan denganmaterialized_view: yes. Untuk tampilan terwujud, tabel sumber untuk tampilan terwujud harus selalu ada di database. Tabel turunanpersist_fordihapus dari database Anda setelah jumlah waktu yang ditentukan dalam parameterpersist_for, sehingga tidak dijamin akan ada di database. - PDT dibangun kembali dengan nama unik, jadi jika tampilan terwujud menggunakan PDT dalam definisinya, tampilan terwujud akan diperbarui untuk mengarah ke versi baru PDT setiap kali PDT dibangun kembali. Artinya, tampilan terwujud pada dasarnya akan dibangun kembali dari awal jika dependensi dibangun kembali sepenuhnya, yang dapat memengaruhi performa. Dalam hal ini, opsi yang lebih baik adalah mereferensikan tabel dasar yang hanya ditambahkan, atau mereferensikan PDT inkremental yang ditentukan menggunakan Looker.
- Anda tidak dapat menggunakan tabel turunan dengan strategi persistensi
Dukungan dialek untuk tampilan terwujud
Kemampuan untuk membuat tabel turunan menjadi tampilan terwujud bergantung pada dialek database yang digunakan koneksi Looker Anda. Dalam rilis Looker saat ini, dialek berikut mendukung tampilan terwujud:
| 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.x - 0.17.x | |
| 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 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 | |
| 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 |