Saran filter adalah alat yang canggih di Looker. Anda harus memahami asal dan cara kerjanya agar dapat memecahkan masalah secara efektif saat saran filter tidak berperilaku seperti yang diharapkan. Halaman ini membahas cara kerja saran filter, alasan saran filter mungkin salah, dan alasan saran filter mungkin gagal diisi.
Bagaimana cara kerja saran filter?
Saran filter menghemat waktu saat pengguna memasukkan nilai dalam filter dan memastikan pengguna memilih opsi yang ada dalam data. Saat pengguna memilih kotak filter, daftar saran akan muncul di bawah kolom. Dalam contoh ini, memilih kotak untuk filter di kolom Status dari Jelajah Pesanan akan menampilkan daftar drop-down dengan nilai "dibatalkan", "selesai", dan "tertunda" sebagai opsi.
Dari mana daftar saran ini berasal?
Looker menjalankan kueri SELECT distinct <field>
terhadap database untuk mengambil semua kemungkinan opsi untuk kolom tersebut. Kueri terlihat mirip dengan SQL berikut:
SELECT DISTINCT <field_name> FROM <table> WHERE (<field_name> LIKE '%' OR <field_name> LIKE '% %') GROUP BY 1 ORDER BY 1 LIMIT 1000
Saat pengguna memasukkan karakter di kotak filter, Looker akan mengganti kondisi yang sesuai dalam klausa WHERE
untuk memfilter hasil. Looker kemudian menampilkan 100 hasil pertama tersebut dalam saran filter.
Dapatkah saya mengubah saran yang diisi?
Developer dapat menggunakan berbagai parameter LookML untuk mengubah dan menyesuaikan saran yang muncul. Lihat halaman dokumentasi Mengubah saran filter untuk mengetahui detail selengkapnya.
Apakah saran di-cache?
Secara default, Looker menyimpan hasil kueri dalam cache selama satu jam. Anda dapat menggunakan parameter LookML suggest_persist_for
untuk menyesuaikan durasi cache saran filter. Parameter suggest_persist_for
memiliki nilai default "6 jam". Saran memiliki cache-nya sendiri, yang tidak dapat dihapus secara manual dari halaman Jelajahi. Jika Anda perlu menghapus cache untuk saran, berikut beberapa opsi:
- Jika Jelajahi di-cache menggunakan grup data dengan
sql_trigger
, Anda dapat mereset cache untuk seluruh grup data secara manual di halaman Grup data di panel Admin Looker, tetapi tindakan ini akan memuat ulang cache untuk semua kueri yang dipertahankan menggunakan grup data tersebut. - Anda dapat menggunakan parameter
suggest_persist_for
di tingkat kolom dan menetapkannya ke "0 detik" untuk menghapus cache saran filter untuk kolom tersebut.Cache bersifat global untuk semua pengguna. Jika satu pengguna memuat ulang cache untuk mendapatkan saran, hal ini akan memengaruhi hasil yang dilihat pengguna lain.
Mengapa saran filter salah?
Setelah memahami cara pengisian saran filter, Anda dapat menentukan alasan saran filter mungkin salah. Penjelasan yang paling umum adalah data telah berubah atau diperbarui antara waktu saran filter di-cache dan waktu hasil yang salah diketahui.
Misalnya, Pengguna A menjalankan Jelajahi di pagi hari. Pengguna A memilih beberapa nilai filter dari menu drop-down saran. Proses ETL database akan selesai setelah setengah jam atau lebih. Kemudian, Pengguna B melihat Jelajah yang sama dengan yang sebelumnya dijalankan oleh Pengguna A. Pengguna B bertanya-tanya mengapa saran filter salah. Penyebab perbedaan ini adalah kueri saran yang di-cache tidak diperbarui dengan proses ETL database yang baru selesai, sehingga menampilkan hasil yang tidak terduga.
Jika demikian, Anda dapat memuat ulang cache saran menggunakan metode yang dijelaskan di bagian Apakah saran di-cache? sebelumnya di halaman ini.
Mengapa saran filter tidak terisi?
Ada beberapa alasan saran filter tidak terisi. Langkah-langkah pemecahan masalah berikut menyoroti kemungkinan penyebabnya:
- Periksa jenis filter.
- Periksa apakah ada
access_filter
atausql_always_where
yang membatasi saran. - Periksa apakah ada
suggest_dimension parameter
. - Periksa apakah ada upaya untuk memuat saran saat pengguna memilih atau memasukkan teks di filter.
- Periksa konsol jaringan Chrome.
- Temukan bukti kueri saran yang coba dijalankan Looker.
Memeriksa jenis filter
Jika ini untuk filter dasbor LookML, pastikan jenis filternya adalah Kolom. Jenis filter lainnya tidak akan mengisi saran.
-
Pastikan kolom filter adalah
type: string
dalam definisi LookML-nya. Filter pada kolom jenisnumber
tidak akan mengisi saran. - Apakah ini filter kecocokan (lanjutan)? Filter kecocokan (lanjutan) memerlukan ekspresi Looker, sehingga saran tidak akan diisi.
Periksa apakah ada access_filter
atau sql_always_where
yang membatasi saran
Biasanya, saat sql_always_where
atau access_filter
digunakan, saran filter akan dibatasi untuk Jelajah tersebut. Hal ini mencegah pengguna melihat saran filter yang tidak dapat mereka akses. Jika Anda yakin bahwa tidak ada kemungkinan nilai di kolom dimensi atau filter tertentu yang akan mengungkapkan informasi sensitif, Anda dapat menggunakan bypass_suggest_restrictions
untuk mengaktifkan kembali saran filter.
Periksa apakah ada suggest_dimension parameter
Saat parameter suggest_dimension
digunakan, saran filter tidak akan diisi kecuali jika dimensi yang disarankan direferensikan dalam Eksplorasi dengan tampilan dimensi tersebut ditentukan sebagai tampilan dasar Eksplorasi.
Untuk Eksplorasi dengan tampilan dimensi yang disarankan bukan tampilan dasar, tambahkan parameter suggest_explore
, yang mereferensikan Eksplorasi dengan tampilan tersebut sebagai tampilan dasar.
Periksa apakah ada upaya untuk memuat saran saat Anda memilih atau memasukkan teks di filter
Periksa apakah Looker tampaknya mencoba memuat saran saat Anda memilih atau memasukkan teks di kotak filter. Looker akan menampilkan lingkaran pemuatan yang berputar di sisi kanan kotak filter.
Jika tidak, Looker tidak akan mencoba mengisi saran. Pastikan kondisi yang dijelaskan di langkah pertama terpenuhi dan saran tidak dinonaktifkan di tingkat field
, view
, atau Jelajah (dengan sql_always_where
atau access_filter
) di LookML. Perhatikan bahwa dialek Hadoop akan menambahkan suggestions: no
di semua file tampilan secara default.
Jika ada upaya untuk memuat saran, lanjutkan ke petunjuk untuk memeriksa konsol jaringan Chrome.
Memeriksa konsol jaringan Chrome
Konsol jaringan Chrome dapat menandai error pada kueri itu sendiri atau menunjukkan apakah ada hasil yang ditampilkan dari cache.
- Buka tab Jaringan di browser dengan pintasan Ctrl + Shift +J (di Windows) atau command + option + J (di Mac), atau dengan memilih View > Develop > Developer tools dari panel opsi Chrome di bagian atas browser.
- Pilih di kotak filter pada Tampilan, Jelajahi, atau dasbor.
- Panel Alat developer akan menampilkan permintaan untuk saran filter, yang dapat Anda pilih untuk mengetahui informasi selengkapnya.
- Header akan menampilkan permintaan API internal yang dibuat Looker untuk mengambil nilai saran. Dalam contoh ini, misalkan Looker membuat permintaan API berikut, dengan
<yourinstance>
mewakili URL untuk instance Anda:<yourinstance>/api/internal/models/the_look/views/order_items/fields/users.state/suggestions?term=
- Dalam permintaan API, pastikan model yang tercantum setelah
/models/
ada. Dalam contoh ini, model disebutthe_look
. - Meskipun URL-nya bertuliskan
/views/
, ini merujuk pada Jelajah yang menjadi asal kolom. Pastikan Jelajah yang tercantum setelah/views/
ada. Dalam contoh ini, Jelajah disebutorder_items
. - Pastikan kolom yang tercantum setelah
/fields/
ada. Dalam contoh ini, kolomnya adalahusers.state
.
Respons untuk permintaan API ini akan menampilkan pesan error yang tepat. Misalnya, kode status untuk saran adalah 404 Not Found:
Pilih respons untuk permintaan ini guna mengetahui detail selengkapnya.
Dalam hal ini, Anda dapat melihat bahwa saran gagal karena kolom tidak dapat ditemukan berdasarkan respons terhadap permintaan:
{"class":"FieldNotFound","text":"Field not found."}
Jika tidak ada error, tetapi juga tidak ada saran seperti yang diharapkan, periksa apakah kueri saran diambil dari cache (cache: true
di Konsol Jaringan) — hal ini dapat menunjukkan bahwa cache perlu dihapus, menggunakan parameter suggest_persist_for
pada dimensi yang menayangkan saran.
Menemukan bukti kueri saran yang coba dijalankan Looker
Anda dapat memeriksa halaman Kueri di panel Admin Looker untuk memastikan kueri yang menghasilkan filter (kolom Sumber di halaman Kueri akan bertuliskan Saran Filter) tidak menghasilkan error. Pilih tombol Details kueri, lalu pilih opsi Open in SQL Runner. Pastikan SQL sudah benar secara sintaksis. Jika Anda melihat anomali seperti nama kolom yang tidak ada atau karakter khusus yang salah, periksa untuk memastikan bahwa Anda tidak menggunakan parameter Liquid atau filter template.
- Jika kueri memerlukan input filter dengan template untuk dijalankan, tidak ada saran filter yang akan diisi.
- Jika kueri menggunakan parameter dengan
default_value
, nilai tersebut akan disisipkan dalam kueri saran filter. Dalam skenario ini, kueri saran filter tidak akan diperbarui secara dinamis berdasarkan input pengguna. Bergantung pada nilai default, hal ini dapat menyebabkan tidak ada saran filter atau saran filter yang salah. Sebagai gantinya, pertimbangkan untuk menggunakan filter tertaut di dasbor.