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 dalam 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 implementasi tampilan terwujud dalam dialek Anda. Lihat dokumentasi dialek Anda untuk mengetahui informasi tentang perilaku dialek dan frekuensi pemuatan ulang data untuk tampilan terwujud.
Tampilan terwujud memungkinkan Anda memanfaatkan fungsi database untuk mempertahankan tabel turunan dalam project Looker Anda. Jika dialek database Anda mendukung tampilan terwujud dan koneksi Looker Anda dikonfigurasi dengan opsi Tabel Turunan Persisten 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.
Serupa 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 mengelola dan memperbarui data dalam tabel.
Oleh karena itu, fungsi tampilan terwujud memerlukan pengetahuan lanjutan tentang dialek Anda dan fitur-fiturnya. Umumnya, 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 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 mengkuerinya dalam Mode Pengembangan, Looker akan membuat versi pengembangan tampilan terwujud, yang juga dapat digunakan untuk produksi. Lihat bagian Tabel yang dipertahankan dalam Mode Pengembangan di halaman dokumentasi Tabel turunan di Looker untuk mengetahui detailnya.
Jika tidak, tampilan terwujud akan dibuat selama siklus berikutnya regenerator Looker, setelah LookML tabel turunan terkait di-deploy ke produksi dengan materialized_view: yes.
Tampilan database yang 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. Fungsi ini sama dengan fungsi tampilan stabil 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 stabil dari modal PDT Details di halaman Tabel Turunan Persisten di bagian Admin Looker.
Untuk membuat kueri 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 awal 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 dalam 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 awal di database Anda. Skema 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. Hal ini biasanya disiapkan saat Anda pertama kali mengonfigurasi koneksi Looker (lihat halaman dokumentasi Dialek Looker untuk mendapatkan petunjuk terkait 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 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 berikut:- Jika PDT diaktifkan pada koneksi, dan koneksi memiliki izin
CREATE TABLE, pengujian 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, pengujian 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 mengelola dan memperbarui data dalam tabel. Oleh karena itu, fungsi tampilan terwujud memerlukan pengetahuan lanjutan 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 refresh maksimum default dan dukungan untuk join. Looker tidak menghasilkan error LookML terkait fungsi khusus dialek dari tampilan terwujud. Sebagai gantinya, Looker akan menghasilkan error jika tampilan terwujud gagal dibuat, baik sebagai peristiwa di Log Peristiwa PDT maupun 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 mengetahui apakah hal ini berlaku untuk dialek Anda.
- Beberapa dialek akan mencoba memperbarui tampilan terwujud secara inkremental, bukan membangunnya kembali sepenuhnya. Lihat dokumentasi dialek Anda untuk mengetahui informasinya.
- 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 parameter datagroup,sql_trigger_value, ataupersist_for, pernyataanmaterialized_view: yesakan diprioritaskan. - Tampilan terwujud mendukung parameter khusus dialek yang sama dengan 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 ada di database. - PDT dibuat ulang dengan nama yang unik, sehingga jika tampilan terwujud menggunakan PDT dalam definisinya, tampilan terwujud akan diperbarui untuk mengarah ke versi baru PDT setiap kali PDT dibuat ulang. Artinya, tampilan terwujud pada dasarnya akan dibuat ulang dari awal jika dependensi dibuat ulang sepenuhnya, yang dapat memengaruhi performa. Dalam hal ini, opsi yang lebih baik adalah mereferensikan tabel dasar yang hanya menambahkan, 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 | |
| ClickHouse 26+ | |
| 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+ | |
| Dremio 26+ with Arrow Flight SQL | |
| 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 | |
| MongoSQL | |
| 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 |