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 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 TABLE untuk 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 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 memungkinkan tampilan yang 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 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: yes juga memiliki parameter datagroup, sql_trigger_value, atau persist_for, pernyataan materialized_view: yes akan 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_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 akan dihapus dari database Anda setelah jangka waktu yang ditentukan dalam parameter persist_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.

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