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 di dialek tertentu
|
Definisi
Fungsi tampilan terwujud adalah fitur lanjutan. Bergantung pada dialek Anda, tampilan terwujud dapat menggunakan resource yang besar, jadi penting bagi Anda untuk memahami penerapan tampilan terwujud dalam dialek Anda. Lihat dokumentasi dialek Anda untuk mengetahui informasi tentang perilaku dialek dan frekuensi dialek memperbarui data untuk tampilan terwujud.
Tampilan terwujud memungkinkan Anda memanfaatkan fungsi database untuk mempertahankan tabel turunan dalam project Looker. Jika dialek database Anda mendukung tampilan yang di-materialisasi dan koneksi Looker Anda dikonfigurasi dengan opsi Persistent Derived Tables yang diaktifkan, Anda dapat membuat tampilan yang di-materialisasi 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 sementara 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 lanjutan tentang dialek Anda dan fitur-fiturnya. Dalam sebagian besar kasus, database Anda akan memuat ulang tampilan terwujud setiap kali database mendeteksi data baru dalam tabel yang dikueri oleh tampilan terwujud. Tampilan terwujud sangat optimal untuk skenario yang memerlukan data real-time.
Jika tabel turunan dengan pernyataan materialized_view: yes juga memiliki parameter datagroup, sql_trigger_value, atau persist_for, 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 membuat kueri di 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 regenerator Looker berikutnya, setelah LookML tabel turunan terkait di-deploy ke produksi dengan materialized_view: yes.
Tampilan database stabil untuk tampilan terwujud
Looker otomatis membuat tampilan database yang stabil untuk setiap tampilan terwujud. Tampilan database yang 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 regenerator Looker berikutnya, 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 yang stabil dari modal Detail PDT di halaman Persistent Derived Tables pada bagian Admin di Looker.
Untuk membuat kueri tampilan terwujud secara langsung, cukup tambahkan nama skema sementara sebelum nama tabel. Misalnya, jika nama tampilan database stabil adalah NN_e_redflight_e_redflight_publish_as_db dan nama skema sementara adalah tmp, Anda dapat membuat kueri 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 sementara 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 Tabel Turunan Persisten diaktifkan. Biasanya, hal ini 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. Izin ini sama dengan izin yang diperlukan untuk membuat PDT. Selain itu, untuk membuat tampilan database yang 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 memungkinkan tampilan yang 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 lanjutan tentang dialek Anda dan fitur-fiturnya. Berikut adalah beberapa hal yang perlu dipertimbangkan saat Anda membuat tampilan terwujud:
- Beberapa dialek memiliki batasan untuk tampilan terwujud, seperti interval muat ulang 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 membuat kueri tampilan terwujud. Lihat dokumentasi dialek Anda tentang batasan untuk tampilan terwujud.
- Beberapa dialek memeriksa keaktualan kueri saat tampilan terwujud dikueri, yang dapat menyebabkan sedikit penundaan dalam mendapatkan hasil kueri. Lihat dokumentasi dialek Anda untuk melihat apakah hal ini berlaku untuk dialek Anda.
- Beberapa dialek akan mencoba memuat ulang tampilan terwujud secara inkremental, bukan membangun ulang sepenuhnya. Lihat dokumentasi dialek Anda untuk mendapatkan informasi.
- Jika tampilan terwujud Anda menggunakan tabel dasar yang dihapus dari database, Anda mungkin tidak dapat membuat kueri tampilan terwujud, dan versi baru akan gagal dibuat.
- Jika tabel turunan dengan pernyataan
materialized_view: yesjuga memiliki parameter datagroup,sql_trigger_value, ataupersist_for, pernyataanmaterialized_view: yesakan diprioritaskan. - Tampilan terwujud mendukung parameter khusus dialek yang sama yang didukung oleh tabel turunan secara umum, seperti partisi, kunci pengurutan, 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_forakan dihapus dari database Anda setelah jangka waktu yang ditentukan dalam parameterpersist_for, sehingga keberadaannya di database tidak dijamin. - PDT dibangun kembali dengan nama unik, jadi jika tampilan yang di-materialisasi menggunakan PDT dalam definisinya, tampilan yang di-materialisasi akan diperbarui untuk mengarah ke versi baru PDT setiap kali PDT dibangun kembali. Artinya, tampilan terwujud pada dasarnya akan dibangun ulang dari awal jika dependensi dibangun ulang sepenuhnya, yang dapat memengaruhi performa. Dalam hal ini, opsi yang lebih baik adalah mereferensikan tabel dasar yang hanya menambahkan data, 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 yang diwujudkan 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+ | |
| 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 |