publish_as_db_view

Penggunaan

view: my_view {
  derived_table: {
    publish_as_db_view: yes
    ...
  }
}
Hierarki
publish_as_db_view

- atau -

publish_as_db_view
Nilai Default
no

Menerima
Boolean (yes atau no)

Aturan Khusus
  • Tampilan database yang stabil dipublikasikan (dibuat) pada siklus regenerator Looker berikutnya setelah LookML tabel yang dipertahankan di-deploy ke produksi dengan publish_as_db_view: yes
  • Tampilan database yang stabil hanya didukung untuk tabel persisten yang menggunakan strategi persistensi datagroup atau sql_trigger_value. Tabel persisten yang menggunakan persist_for tidak didukung.
  • Tampilan database stabil hanya didukung untuk koneksi database dengan izin CREATE VIEW untuk skema sementara.

Definisi

Parameter publish_as_db_view memungkinkan Anda menandai tabel persisten (yang mencakup tabel turunan persisten dan tabel gabungan untuk membuat kueri di luar Looker. Untuk tabel persisten dengan publish_as_db_view yang ditetapkan ke yes, Looker membuat tampilan database yang stabil di database untuk tabel persisten. Tampilan database stabil dibuat di database itu sendiri sehingga dapat dikueri di luar Looker. Konsep tampilan database yang stabil berbeda dengan tampilan LookML, karena tampilan LookML ada di instance Looker Anda, bukan di database itu sendiri.

Tampilan database yang stabil akan dipublikasikan (dibuat) pada siklus regenerator Looker berikutnya setelah LookML tabel persisten di-deploy ke produksi dengan publish_as_db_view: yes.

Contoh

Membuat tampilan database yang stabil untuk PDT

Buat PDT e_flights_pdt yang tampilan databasenya yang stabil dibuat di database:


view: e_flights_pdt {
  derived_table: {
    publish_as_db_view: yes
    datagroup_trigger: e_flights_default_datagroup
    explore_source: ontime {
      timezone: "America/Los_Angeles"
      column: flight_num {}
      column: carrier {}
      column: arr_date {}
    }
  }
  dimension: flight_num {}
  dimension: carrier {}
  dimension: arr_date {
    type: date
  }
}

Tampilan database stabil untuk e_flights_pdt akan dipublikasikan pada siklus regenerator Looker berikutnya setelah LookML PDT di-deploy ke produksi. Setelah Looker membuat PDT, Anda dapat membuat kueri tampilan database yang stabil di database.

Membuat tampilan database yang stabil untuk tabel gabungan

Buat tabel gabungan weekly_orders yang tampilan database stabilnya dibuat di database:

explore: orders {
  aggregate_table: weekly_orders {
    materialization: {
      sql_trigger_value: SELECT CURDATE() ;;
      publish_as_db_view:  yes
    }
    query: {
      dimensions: [orders.status, orders.created_week]
      measures: [orders.count]
    }
  }
}

Tampilan database yang stabil untuk tabel gabungan weekly_orders akan dipublikasikan pada siklus regenerator Looker berikutnya setelah LookML tabel gabungan di-deploy ke produksi. Setelah Looker membuat tabel gabungan, Anda dapat membuat kueri tampilan database yang stabil di database.

Mengakses tampilan database yang stabil

Saat tampilan database stabil dipublikasikan untuk tabel persisten, Anda dapat membuat kueri secara langsung setelah mendapatkan nama stabil. Ada dua cara untuk mendapatkan nama tampilan stabil untuk tabel yang dipertahankan:

Modal detail PDT

Jika Anda adalah admin atau pengguna dengan izin see_pdts, Anda dapat menggunakan halaman Persistent Derived Tables di bagian Admin Looker untuk mendapatkan nama tampilan database yang stabil untuk tabel yang dipertahankan:

  1. Klik ikon Menu utama Looker dan pilih Admin, jika menu Admin belum ditampilkan. (Jika Anda berada di bagian Jelajahi atau Kembangkan di Menu utama Looker, Anda mungkin harus mengklik panah kembali untuk melihat menu Admin.)
  2. Dari menu Admin, pilih Persistent Derived Tables.
  3. Di halaman Persistent Derived Tables, telusuri nama tabel persisten Anda.
  4. Klik menu tiga titik untuk tabel persisten Anda, lalu pilih Detail PDT.
  5. Di modal PDT Details, cari kolom Stable Name.

Untuk membuat kueri tabel tampilan stabil secara langsung, tambahkan nama skema sementara sebelum nama tabel. Misalnya, jika nama skema sementara adalah tmp, Anda dapat membuat kueri tampilan database stabil dengan perintah seperti ini:


SELECT * from tmp.CL_e_redlook_e_redlook_inc_pdt

Tab SQL pada Eksplorasi

Jika Anda tidak memiliki akses ke halaman admin Tabel Turunan Persisten, Anda dapat menggunakan informasi yang disertakan di tab SQL pada Eksplorasi untuk menentukan nama tampilan stabil untuk tabel persisten. Nama tampilan stabil menggunakan format ini:

[scratch schema name].[connection registration key]_[model_name]_[view_name]

Misalnya, jika Anda memiliki tabel persisten yang ada dalam model bernama faa dan tampilan dengan nama e_flights_pdt, Anda hanya memerlukan nama skema sementara dan kunci pendaftaran koneksi. Anda dapat menemukan keduanya dari tab SQL di bagian Data dari kueri pada tabel yang dipertahankan. Dalam pernyataan CREATE TABLE atau FROM di tab SQL, Anda dapat menemukan informasi sebagai berikut:

  • Kunci pendaftaran koneksi terdiri dari dua karakter; bergantung pada dialek database Anda, kunci ini akan mengikuti tanda dolar atau garis bawah pertama dalam nama tabel yang dipertahankan.
  • Nama skema sementara adalah awal string setelah CREATE TABLE atau FROM, sebelum "."

Dalam semua contoh kueri berikut, kunci pendaftaran koneksi adalah LB, dan nama skema sementara adalah tmp.

Berikut adalah contoh kueri SQL yang dihasilkan Looker dengan pernyataan CREATE TABLE untuk dialek yang menggunakan tanda dolar sebelum kunci pendaftaran koneksi. Nama tampilan adalah e_flights_pdt, dan nama tabel turunan yang dibuat adalah tmp.LR$LBC5Q1576702903774_e_flights_pdt.

generate derived table e_flights_pdt
Building e_flight::e_flights_pdt in dev mode on instance b6ff28049851f1954156526c66ca9912
CREATE TABLE tmp.LR$LBC5Q1576702903774_e_flights_pdt (INDEX(flight_num)) SELECT
  ontime.flight_num AS `flight_num`
  ontime.carrier AS `carrier,
    (TIMESTAMP(DATE (CONVERT_TZ(ontime.arr_time, 'UTC', 'America/Los_Angeles')))) AS
      `arr_date``
FROM `flightstats`.`ontime` AS `ontime`
GROUP BY
  1,
  2,
  3
-- finished e_flights_pdt => tmp.LR$LBC5Q1576702903774_e_flights_pdt

SELECT
  e_flights_pdt.flight_num AS `e_flights_pdt.flight_num`,
  e_flights_pdt.carrier AS `e_flights_pdt.carrier`
FROM tmp.LR$LBC5Q1576702903774_e_flights_pdt AS e_flights_pdt
GROUP BY
  1,
  2
ORDER BY
  e_flights_pdt.flight_num
LIMIT 5

Berikut adalah contoh kueri SQL yang dihasilkan Looker dengan pernyataan FROM untuk dialek yang menggunakan tanda garis bawah sebelum kunci pendaftaran koneksi. Nama tampilan adalah e_flights_pdt, dan nama tabel turunan yang dibuat adalah tmp.LR_LBFIM1580333699953_e_flights_pdt.


--use existing e flights pdt in tmp.LR_LBFIM1580333699953_e_flights_pdt

SELECT
  e_flights_pdt.id AS `e_flights_pdt.id`,
  DATE(e_flights_pdt.faa_event_date) AS `e_flights_pdt. faa_event_date`
FROM tmp.LR_LBFIM1580333699953_e_flights_pdt AS e_flights_pdt

GROUP BY 1,2
ORDER BY DATE(e_flights_pdt.faa_event_date) DESC
LIMIT 5

Sekali lagi, tampilan database stabil memiliki format berikut:

[scratch schema name].[connection registration key]_[model_name]_[view_name]

Berikut semua nilainya:

  • [scratch schema name] tmp
  • [connection registration key] LB
  • [model_name] faa
  • [view_name] e_flights_pdt

Kemudian, ini adalah nama tampilan database stabil tabel yang dipertahankan:

tmp.LB_faa_e_flights_pdt

Setelah memiliki nama tampilan database yang stabil, Anda dapat membuat kueri secara langsung. Contoh:


SELECT * from tmp.LB_faa_e_flights_pdt

Hal-hal yang perlu dipertimbangkan

Beberapa dialek memerlukan sintaksis tambahan

Jika kunci pendaftaran koneksi dimulai dengan angka, beberapa dialek memerlukan tanda petik ganda, tanda petik terbalik, tanda kurung, atau sintaksis serupa di sekitar bagian kedua nama tampilan database yang stabil. Misalnya, Amazon Redshift memerlukan tanda petik ganda; jadi, jika kunci pendaftaran koneksi Anda diawali dengan angka, formatnya adalah:

[scratch schema name]."[connection registration key]_[model_name]_[view_name]"

Misalnya, jika kunci pendaftaran koneksi adalah 84, Anda akan memasukkan tanda petik di sekitar bagian kedua dari nama tabel stabil, setelah titik. Jadi, kueri Anda ke database akan terlihat seperti ini:


SELECT * from tmp."84_faa_e_flights_pdt"

Lihat dokumentasi untuk dialek Anda guna mengetahui informasi tentang sintaksis spesifik yang diperlukan.

Koneksi database harus memiliki izin CREATE VIEW

Untuk membuat tampilan di database Anda, akun yang digunakan Looker untuk terhubung ke database Anda harus memiliki izin CREATE VIEW untuk skema sementara database.

Nama pengguna, sandi, dan skema sementara database dikonfigurasi saat Anda menghubungkan Looker ke database.

Anda dapat menguji koneksi untuk melihat apakah nama tampilan yang stabil didukung untuk koneksi Anda. Jika dialek Anda mendukung nama tampilan stabil dan jika PDT diaktifkan pada koneksi, Looker akan menguji koneksi untuk melihat apakah koneksi tersebut akan mengizinkan tampilan stabil:

  • Jika koneksi memungkinkan tampilan yang stabil, uji koneksi akan menampilkan hasil seperti Can use stable views in temp schema "docsexamples_scratch" in database "flightstats".
  • Jika koneksi tidak memungkinkan tampilan yang stabil, uji koneksi akan menampilkan hasil seperti Cannot use stable views in temp schema "docsexamples" in database "flightstats", beserta detail lebih lanjut seperti CREATE VIEW command denied to user 'docsexamples'.

Dukungan dialek untuk tampilan database yang stabil

Kemampuan untuk membuat tampilan database stabil tabel persisten bergantung pada dialek database yang digunakan koneksi Looker Anda. Dalam rilis Looker terbaru, dialek berikut mendukung tampilan database stabil tabel persisten:

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