Saran filter adalah alat yang canggih di Looker. Anda harus memahami asalnya dan cara kerjanya sehingga Anda dapat memecahkan masalah secara efektif saat saran filter tidak berperilaku seperti yang diharapkan. Halaman ini membahas cara kerja saran filter, alasan kemungkinan salah, dan alasan saran tersebut 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 Eksplorasi Orders akan menampilkan menu drop-down dengan nilai "cancelled", "complete", dan "pending" sebagai opsi.
Dari mana daftar saran ini berasal?
Looker menjalankan kueri SELECT distinct <field>
terhadap database guna mengambil semua opsi yang memungkinkan 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 dari hasil tersebut dalam saran filter.
Dapatkah saya mengubah saran yang ditampilkan?
Developer dapat menggunakan berbagai parameter LookML untuk mengubah dan menyesuaikan saran yang muncul. Lihat halaman dokumentasi Mengubah saran filter untuk detail selengkapnya.
Apakah saran di-cache?
Secara default, Looker meng-cache hasil kueri selama satu jam. Anda dapat menggunakan parameter LookML suggest_persist_for
untuk menyesuaikan panjang cache untuk saran filter. Parameter suggest_persist_for
memiliki nilai default "6 jam". Saran memiliki cachenya sendiri, yang tidak dapat dihapus secara manual dari halaman Jelajahi. Jika Anda perlu menghapus cache untuk mendapatkan saran, berikut beberapa opsi yang tersedia:
- Jika Jelajah di-cache menggunakan grup data dengan
sql_trigger
, Anda dapat mereset cache secara manual untuk seluruh grup data di halaman Grup data pada panel Admin Looker, tetapi tindakan ini akan memperbarui cache untuk semua kueri yang dipertahankan menggunakan grup data tersebut. - Anda dapat menggunakan parameter
suggest_persist_for
pada tingkat kolom dan menetapkannya ke "0 detik" untuk merusak cache saran filter untuk kolom tersebut.Cache bersifat global untuk semua pengguna. Satu pengguna memuat ulang cache untuk mendapatkan saran akan memengaruhi hasil yang dilihat oleh pengguna lain.
Mengapa saran filter salah?
Setelah memahami cara saran filter diisi, Anda dapat menentukan mengapa saran filter mungkin salah. Penjelasan yang paling umum adalah bahwa data telah berubah atau diperbarui antara waktu saran filter di-cache dan waktu hasil yang salah diketahui.
Sebagai contoh, misalkan Pengguna A menjalankan hal pertama Jelajahi di pagi hari. Pengguna A memilih beberapa nilai filter dari menu drop-down saran. Proses ETL database selesai satu setengah jam kemudian. Kemudian, Pengguna B melihat Jelajah yang sama dengan yang sebelumnya dijalankan Pengguna A. Pengguna B bertanya-tanya mengapa saran filter salah. Alasan terjadinya perbedaan ini adalah karena kueri saran yang di-cache tidak diperbarui dengan proses ETL database yang baru selesai, sehingga menampilkan hasil yang tidak diharapkan.
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 mengapa saran filter tidak muncul. Langkah-langkah pemecahan masalah berikut akan memperjelas kemungkinan penyebabnya:
- Periksa jenis filter.
- Periksa apakah ada saran yang membatasi
access_filter
atausql_always_where
. - Periksa apakah terdapat
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 filter ini cocok (lanjutan)? Filter kecocokan (lanjutan) memerlukan ekspresi Looker, sehingga saran tidak akan terisi.
Periksa apakah ada saran yang membatasi access_filter
atau sql_always_where
Biasanya, saat sql_always_where
atau access_filter
digunakan, saran filter dibatasi untuk Jelajah tersebut. Tindakan ini mencegah pengguna melihat saran filter yang tidak dapat mereka akses. Jika yakin bahwa tidak ada kemungkinan nilai dalam kolom dimensi atau filter tertentu yang akan menampilkan 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 terisi kecuali dimensi yang disarankan direferensikan di Jelajah dengan tampilan dimensi tersebut yang ditetapkan sebagai tampilan dasar Jelajah.
Untuk Jelajahi yang tampilan dimensi yang disarankan bukan tampilan dasar, tambahkan parameter suggest_explore
, dengan mereferensikan Jelajah tempat tampilan tersebut merupakan tampilan dasar.
Memeriksa apakah ada upaya untuk memuat saran saat Anda memilih atau memasukkan teks di filter
Periksa apakah Looker akan 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 pada langkah pertama terpenuhi dan saran tidak dinonaktifkan di tingkat field
, view
, atau Jelajahi (dengan sql_always_where
atau access_filter
) di LookML. Perhatikan bahwa dialek Hadoop akan menambahkan suggestions: no
pada semua file tampilan secara default.
Jika ada upaya untuk memuat saran, lanjutkan ke petunjuk untuk memeriksa konsol jaringan Chrome.
Periksa konsol jaringan Chrome
Konsol jaringan Chrome dapat menandai error pada kueri itu sendiri atau menampilkan apakah ada hasil yang ditampilkan dari cache.
- Buka tab Network di browser dengan pintasan Ctrl + Shift +J (di Windows) atau command + opsi + J (di Mac), atau dengan memilih View > Develop > Developer tools dari panel opsi Chrome di bagian atas browser.
- Pilih di kotak filter di Tampilan, Eksplorasi, atau dasbor.
- Panel Alat developer akan menampilkan permintaan saran filter, yang dapat Anda pilih untuk 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, periksa apakah model yang tercantum setelah
/models/
ada. Dalam contoh ini, model ini disebutthe_look
. - Meskipun URL-nya menunjukkan
/views/
, ini mengacu pada Jelajah yang menjadi asal kolom tersebut. Periksa apakah Explore yang tercantum setelah/views/
ada. Dalam contoh ini, Jelajah disebutorder_items
. - Periksa apakah 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 saat diharapkan, periksa apakah kueri saran diambil dari cache (cache: true
di Konsol Jaringan) — ini mungkin menunjukkan bahwa cache perlu diperbaiki, menggunakan parameter suggest_persist_for
pada dimensi yang menyajikan 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 mencantumkan Saran Filter) tidak menghasilkan error. Pilih tombol Details pada kueri, lalu pilih opsi Open in SQL Runner. Verifikasi bahwa SQL secara sintaksis benar. 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 terisi.
- 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 adanya saran filter atau saran filter salah. Sebagai gantinya, pertimbangkan untuk menggunakan filter tertaut di dasbor.