materialized_view

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 TABLE untuk 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 izin CREATE VIEW untuk 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 seperti Can 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 seperti Can use stable views in temp schema "docsexamples_scratch" in database "flightstats".

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: yes juga memiliki grup data, sql_trigger_value, atau persist_for parameter, pernyataan materialized_view: yes akan 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_for dalam definisi tabel turunan dengan materialized_view: yes. Untuk tampilan terwujud, tabel sumber untuk tampilan terwujud harus selalu ada di database. Tabel turunan persist_for dihapus dari database Anda setelah jumlah waktu yang ditentukan dalam parameter persist_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.

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