Memecahkan masalah umum terkait saran filter

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 berfungsi 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 Eksplorasi 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 opsi yang mungkin untuk kolom tersebut. Kueri tersebut 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 hasilnya. Looker kemudian menampilkan 1.000 hasil pertama dari hasil 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 untuk saran filter. Parameter suggest_persist_for memiliki nilai default "6 jam". Saran memiliki cache sendiri, yang tidak dapat dihapus secara manual dari halaman Eksplorasi. Jika Anda perlu menghapus cache untuk saran, berikut beberapa opsinya:

  • Jika Eksplorasi di-cache menggunakan grup data dengan sql_trigger, Anda dapat secara manual mereset cache untuk seluruh grup data di halaman Grup Data di panel Admin Looker, tetapi ini akan memperbarui 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. Satu pengguna yang memperbarui cache untuk saran akan memengaruhi hasil yang dilihat pengguna lain.

Mengapa saran filter salah?

Setelah memahami cara saran filter diisi, 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 diperhatikan.

Sebagai contoh, misalkan Pengguna A menjalankan Eksplorasi pada pagi hari. Pengguna A memilih beberapa nilai filter dari daftar drop-down saran. Proses ETL database selesai setengah jam kemudian. Kemudian, Pengguna B melihat Eksplorasi yang sama yang sebelumnya dijalankan Pengguna A. Pengguna B bertanya-tanya mengapa saran filter salah. Alasan perbedaan tersebut adalah kueri saran yang di-cache tidak diperbarui dengan proses ETL database yang baru selesai dan oleh karena itu menampilkan hasil yang tidak terduga.

Jika demikian, Anda dapat memperbarui cache saran menggunakan metode yang dijelaskan di bagian Apakah saran di-cache? sebelumnya di halaman ini.

Mengapa saran filter tidak diisi?

Ada beberapa alasan saran filter tidak diisi. Langkah-langkah pemecahan masalah berikut menyoroti kemungkinan penyebabnya:

  1. Periksa jenis filter.
  2. Periksa apakah ada access_filter atau sql_always_where yang membatasi saran.
  3. Periksa apakah ada suggest_dimension parameter.
  4. Periksa apakah ada upaya untuk memuat saran saat pengguna memilih atau memasukkan teks di filter.
  5. Periksa konsol jaringan Chrome.
  6. Temukan bukti kueri saran yang coba dijalankan Looker.

Periksa jenis filter

Jika ini untuk filter dasbor LookML, pastikan jenis filternya adalah Kolom. Jenis filter lainnya tidak akan mengisi saran.

  • Pastikan kolom filter berjenis type: string dalam definisi LookML-nya. Filter pada kolom jenis number tidak akan mengisi saran.
  • Apakah ini filter cocok (lanjutan)? Filter cocok (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 Eksplorasi tersebut. Hal ini mencegah pengguna melihat saran filter yang tidak dapat mereka akses. Jika Anda yakin bahwa tidak ada kemungkinan nilai dalam 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 yang ditentukan sebagai tampilan dasar Eksplorasi.

Untuk Eksplorasi yang tampilan dimensi yang disarankan bukan tampilan dasar, tambahkan parameter suggest_explore, yang mereferensikan Eksplorasi tempat tampilan tersebut menjadi 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 mencoba mengisi saran. Pastikan kondisi yang dijelaskan pada langkah pertama terpenuhi dan saran tidak dinonaktifkan di tingkat field, view, atau Eksplorasi (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.

Periksa konsol jaringan Chrome

Konsol jaringan Chrome dapat menandai error pada kueri itu sendiri atau menunjukkan apakah ada hasil yang ditampilkan dari cache.

  1. Buka tab Jaringan di browser Anda dengan pintasan Ctrl + Shift + J (di Windows) atau command + option + J (di Mac), atau dengan memilih Lihat > Develop > Developer tools dari panel opsi Chrome di bagian atas browser.
  2. Pilih di kotak filter di Look, Eksplorasi, atau dasbor Anda.
  3. Panel Developer tools akan menampilkan permintaan untuk saran filter, yang dapat Anda pilih untuk mengetahui informasi selengkapnya.
  4. 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=
  5. Dalam permintaan API, periksa apakah model yang tercantum setelah /models/ ada. Dalam contoh ini, modelnya disebut the_look.
  6. Meskipun URL-nya bertuliskan /views/, URL ini merujuk ke Eksplorasi tempat kolom berasal. Periksa apakah Eksplorasi yang tercantum setelah /views/ ada. Dalam contoh ini, Eksplorasinya disebut order_items.
  7. Periksa apakah kolom yang tercantum setelah /fields/ ada. Dalam contoh ini, kolomnya adalah users.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 untuk 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 mengambil dari cache (cache: true di Konsol Jaringan). Hal ini mungkin menunjukkan bahwa cache perlu dihapus, menggunakan suggest_persist_for parameter pada dimensi yang menyajikan saran.

Temukan bukti kueri saran yang coba dijalankan Looker

Anda dapat memeriksa halaman Kueri di panel Admin Looker untuk memastikan kueri yang membuat filter (kolom Sumber di halaman Kueri akan bertuliskan Saran Filter) tidak menghasilkan error. Pilih tombol Detail kueri, lalu pilih opsi Buka di SQL Runner. Pastikan SQL secara sintaksis sudah 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 bertemplate.

  • Jika kueri memerlukan input filter bertemplate untuk dijalankan, tidak ada saran filter yang akan diisi.
  • Jika kueri menggunakan parameter dengan default_value, nilai tersebut akan dimasukkan 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.