Runtime LookML baru telah tersedia sejak Looker 22.6. "Runtime" adalah bagian Looker yang menafsirkan kode LookML. Runtime baru lebih cepat dan memeriksa lebih banyak error LookML daripada runtime lama.
Looker sangat menganjurkan semua pelanggan untuk melakukan migrasi ke runtime baru. Runtime LookML baru dapat mendeteksi error yang sebelumnya terlewatkan, sehingga mengaktifkan runtime baru dapat menyebabkan error LookML baru muncul. Error ini tidak disebabkan oleh runtime baru; melainkan error yang sudah ada sebelumnya dan kini ditemukan.
Selain itu, pelanggan yang ingin mengubah instance mereka ke Looker (Google Cloud core) harus bermigrasi ke runtime baru terlebih dahulu.
Cara beralih ke runtime baru
1. Nonaktifkan fitur lama "Gunakan Runtime LookML Lama" jika tersedia
Beberapa Look diaktifkan dengan fitur lama Gunakan Runtime LookML Lama. Nonaktifkan fitur lama Gunakan Runtime LookML Lama untuk mentransisikan instance Looker ke runtime baru.
Jika fitur lama Gunakan Runtime LookML Lama tidak tersedia di halaman admin Fitur Lama di instance Looker Anda, berarti instance Anda sudah menggunakan runtime baru.
2. Pastikan project LookML Anda tidak dikonfigurasi dengan new_lookml_runtime:no
Setelan Gunakan Runtime LookML Lama global instance Looker dapat diganti dengan menambahkan pernyataan new_lookml_runtime:no
dalam file manifes project LookML.
Pastikan file manifes project LookML Anda tidak memiliki parameter new_lookml_runtime
, atau new_lookml_runtime
disetel ke yes
di semua project LookML.
Masalah LookML yang mungkin ditemukan oleh runtime baru
Setelah beralih ke runtime baru, Anda mungkin melihat error baru di LookML. Error baru tidak disebabkan oleh runtime baru; melainkan masalah yang sudah ada sebelumnya yang kini ditemukan.
Bergantung pada setelan developer LookML, Anda mungkin diminta untuk memperbaiki error ini sebelum melanjutkan pengiriman perubahan LookML. Bagian berikut menjelaskan beberapa masalah yang mungkin ditemukan runtime LookML baru dalam project Anda dan cara memperbaikinya:
- Beberapa Tabel Turunan Persisten mungkin dibangun ulang
- Literal HTML di dalam ekspresi Liquid dapat dikonversi ke Unicode
- Referensi tidak valid di
sql_distinct_key
menghasilkan "tampilan tidak diketahui" - Ukuran jenis unik tanpa kunci utama menghasilkan SQL yang berbeda
- Mengakses
_filters[]
di Liquid dengan referensi kolom kosong akan menambahkan kolom yang direferensikan sebagai kolom yang dipilih
Beberapa Tabel Turunan Persisten mungkin dibangun ulang
Kunci Persistent Derived Table (PDT) didasarkan pada SQL yang dihasilkan oleh runtime LookML. Dalam beberapa kasus, runtime baru dapat menghasilkan SQL yang berbeda (tetapi setara) untuk PDT, sehingga menghasilkan kunci PDT yang berbeda. Perubahan kunci PDT akan menyebabkan PDT dibangun ulang.
Literal HTML di dalam ekspresi Liquid dapat dikonversi menjadi Unicode
Tag HTML dalam ekspresi Liquid dapat dikonversi ke padanan unicode-nya oleh runtime baru. Misalnya, tag <strong>
dapat dikonversi menjadi <strong>
. Di runtime lama, tag HTML dapat dibandingkan secara langsung, seperti dalam contoh ini:
html:
{{ value |replace(""), "[" |replace(""), "]" }} ;;
Dalam runtime baru, perbandingan harus dilakukan terhadap unicode:
html:
{{ value |replace("<strong>"), "[" |replace("</strong>"), "]" }} ;;
Referensi tidak valid dalam sql_distinct_key
menghasilkan "tampilan tidak diketahui"
Dengan runtime baru, sql_distinct_key
yang mereferensikan kolom atau tampilan yang tidak diketahui akan menampilkan pengecualian. Contoh:
measure: total_shipping {
type: sum_distinct
sql: ${order_shipping} ;;
sql_distinct_key: ${some_incorrect_field_name} ;;
}
Ukuran jenis "Berbeda" tanpa kunci utama menghasilkan SQL yang berbeda
Ukuran jenis unik (average_distinct
, count_distinct
, median_distinct
, percentile_distinct
, sum_distinct
) tanpa parameter primary-key
atau sql_distinct_key
dapat menghasilkan SQL yang berbeda di runtime baru.
Pastikan untuk menentukan primary-key
atau sql_distinct_key
saat membuat ukuran jenis yang berbeda.
Mengakses _filters[]
di Liquid dengan referensi kolom kosong akan menambahkan kolom yang direferensikan sebagai kolom yang dipilih
Di Looker, "referensi kolom kosong" adalah referensi yang tidak diapit tanda kurung kurawal, seperti users.created_date
, bukan ${users.created_date}
.
Runtime lama mengabaikan referensi kolom kosong saat digunakan dengan variabel Liquid _filters
. Runtime baru akan menambahkan kolom ke kueri SQL.
Misalnya, dalam dimensi ini, users.created_date
adalah referensi kosong:
dimension: name { html: {% if _filters[users.created_date] != NULL %} {{rendered_value}} (created: {{_filters[users.created_date]}}) {% else %} {{rendered_value}} {% endif %} ;; }
Di runtime lama, _filters[users.created_date]
akan selalu diabaikan dan hanya kondisi kedua jika {% if %}
akan terpenuhi. Di runtime baru, users.created_date
akan ditambahkan ke klausa SELECT
dari kueri SQL sehingga kondisi dapat dievaluasi.
Penambahan kolom yang tidak terduga secara otomatis ke kueri Looker dapat membingungkan pengguna, jadi praktik terbaiknya adalah tidak menggunakan referensi kolom kosong dan sebagai gantinya menggunakan sintaksis ${field_name}
.