I suggerimenti per i filtri sono un potente strumento in Looker. È fondamentale capire da dove provengono e come funzionano per poter risolvere efficacemente i problemi quando i suggerimenti di filtro non si comportano come previsto. Questa pagina spiega come funzionano i suggerimenti di filtro, perché potrebbero essere errati e perché potrebbero non essere compilati.
Come funzionano i suggerimenti per i filtri?
I suggerimenti di filtro consentono di risparmiare tempo quando gli utenti inseriscono valori nei filtri e assicurano che scelgano le opzioni esistenti nei dati. Quando gli utenti selezionano una casella di filtro, sotto il campo viene visualizzato un elenco di suggerimenti. In questo esempio, se selezioni la casella per un filtro sul campo Stato dall'esplorazione Ordini, viene visualizzato un elenco a discesa con i valori "cancelled", "complete" e "pending" come opzioni.
Da dove proviene questo elenco di suggerimenti?
Looker esegue una query SELECT distinct <field>
sul database per recuperare tutte le opzioni possibili per quel campo. La query è simile al seguente codice SQL:
SELECT DISTINCT <field_name> FROM <table> WHERE (<field_name> LIKE '%' OR <field_name> LIKE '% %') GROUP BY 1 ORDER BY 1 LIMIT 1000
Quando gli utenti inseriscono dei caratteri nella casella del filtro, Looker sostituisce le condizioni appropriate nella clausola WHERE
per filtrare i risultati. Looker mostra quindi i primi 100 di questi risultati nei suggerimenti di filtro.
Posso modificare i suggerimenti da compilare?
Gli sviluppatori possono utilizzare diversi parametri LookML per modificare e personalizzare i suggerimenti visualizzati. Per ulteriori dettagli, consulta la pagina della documentazione Modifica dei suggerimenti per i filtri.
I suggerimenti vengono memorizzati nella cache?
Per impostazione predefinita, Looker memorizza nella cache i risultati delle query per un'ora. Puoi utilizzare il parametro LookML suggest_persist_for
per personalizzare la durata della cache per i suggerimenti di filtro. Il parametro suggest_persist_for
ha un valore predefinito di "6 ore". I suggerimenti hanno una propria cache che non può essere cancellata manualmente da una pagina Esplora. Se devi svuotare la cache per i suggerimenti, ecco alcune opzioni:
- Se l'esplorazione viene memorizzata nella cache utilizzando un datagroup con un
sql_trigger
, puoi reimpostare manualmente la cache per l'intero gruppo di dati nella pagina Gruppi di dati nel riquadro Amministrazione di Looker, ma in questo modo la cache verrà aggiornata per tutte le query persistenti che utilizzano quel gruppo di dati. - Puoi utilizzare il parametro
suggest_persist_for
a livello di campo e impostarlo su "0 secondi" per svuotare la cache dei suggerimenti di filtro per quel campo.La cache è globale per tutti gli utenti. L'aggiornamento della cache per i suggerimenti da parte di un utente influisce sui risultati visualizzati dagli altri utenti.
Perché i suggerimenti per i filtri sono sbagliati?
Ora che hai compreso come vengono compilati i suggerimenti relativi ai filtri, puoi determinare il motivo per cui i suggerimenti relativi ai filtri potrebbero essere errati. La spiegazione più comune è che i dati sono stati modificati o aggiornati tra il momento in cui i suggerimenti per i filtri sono stati memorizzati nella cache e il momento in cui sono stati rilevati risultati errati.
Ad esempio, supponiamo che l'utente A esegua un'esplorazione di primo mattino. L'utente A seleziona alcuni valori di filtro dall'elenco a discesa dei suggerimenti. Il processo ETL del database termina circa mezz'ora dopo. L'utente B visualizza la stessa esplorazione eseguita in precedenza dall'utente A. L'utente B si chiede perché i suggerimenti per i filtri non sono corretti. Il motivo della disparità è che la query di suggerimento memorizzata nella cache non si è aggiornata con il processo ETL appena completato del database e ha quindi mostrato risultati imprevisti.
In questo caso, puoi aggiornare la cache dei suggerimenti utilizzando i metodi descritti nella sezione I suggerimenti sono stati memorizzati nella cache? in precedenza in questa pagina.
Perché i suggerimenti per i filtri non vengono visualizzati?
I motivi per cui i suggerimenti per i filtri non vengono compilati possono essere diversi. I seguenti passaggi per la risoluzione dei problemi evidenziano le potenziali cause:
- Controlla il tipo di filtro.
- Controlla se sono presenti suggerimenti con
access_filter
osql_always_where
. - Controlla se è presente un
suggest_dimension parameter
. - Verifica se viene tentato di caricare i suggerimenti quando un utente seleziona o inserisce del testo nel filtro.
- Controlla la console di rete di Chrome.
- Trova le prove della query dei suggerimenti che Looker sta cercando di eseguire.
Controllare il tipo di filtro
Se si tratta di un filtro della dashboard LookML, assicurati che il tipo di filtro sia Field. Altri tipi di filtro non completeranno i suggerimenti.
-
Assicurati che il campo del filtro sia impostato su
type: string
nella definizione LookML. I filtri nei campi di tiponumber
non completeranno i suggerimenti. - Si tratta di un filtro corrisponde a (avanzato)? I filtri Corrispondenze (avanzati) richiedono espressioni Looker, pertanto i suggerimenti non verranno compilati.
Controlla se è presente un access_filter
o un sql_always_where
che limita i suggerimenti
In genere, quando viene utilizzato sql_always_where
o access_filter
, i suggerimenti di filtro sono limitati per l'esplorazione in questione. In questo modo gli utenti non visualizzano un suggerimento per il filtro a cui non possono accedere. Se hai la certezza che in una determinata dimensione o in un campo di filtro non ci siano valori possibili che rivelerebbero informazioni sensibili, puoi utilizzare bypass_suggest_restrictions
per riattivare i suggerimenti per i filtri.
Controlla se è presente un suggest_dimension parameter
Quando viene utilizzato il parametro suggest_dimension
, i suggerimenti per i filtri non vengono compilati, a meno che non si faccia riferimento alla dimensione suggerita in un'esplorazione con la vista di quella dimensione definita come vista di base dell'esplorazione.
Per le esplorazioni in cui la visualizzazione della dimensione suggerita non è la visualizzazione di base, aggiungi il parametro suggest_explore
facendo riferimento all'esplorazione in cui questa visualizzazione è la visualizzazione di base.
Controlla se viene eseguito un tentativo di caricamento dei suggerimenti quando selezioni o inserisci testo nel filtro
Controlla se Looker tenta di caricare i suggerimenti quando selezioni o inserisci testo nella casella del filtro. Looker dovrebbe mostrare un cerchio di caricamento in rotazione sul lato destro della casella del filtro.
In caso contrario, significa che Looker non sta tentando di compilare i suggerimenti. Verifica che le condizioni descritte nel primo passaggio siano soddisfatte e che i suggerimenti non siano disattivati a livello di field
, view
o di esplorazione (con sql_always_where
o access_filter
) in LookML. Tieni presente che i dialetti Hadoop aggiungeranno suggestions: no
a tutti i file di visualizzazione per impostazione predefinita.
Se viene tentato di caricare i suggerimenti, segui le istruzioni per controllare la console di rete di Chrome.
Controllare la console di rete di Chrome
La console di rete di Chrome potrebbe evidenziare un errore nella query stessa o mostrare se sono stati restituiti risultati dalla cache.
- Apri la scheda Rete nel browser con la scorciatoia Ctrl + Maiusc + J (su Windows) o Comando + Opzione + J (su Mac) oppure selezionando Visualizza > Sviluppa > Strumenti per sviluppatori dalla barra delle opzioni di Chrome nella parte superiore del browser.
- Seleziona la casella di filtro nel Look, nell'esplorazione o nella dashboard.
- Nel riquadro Strumenti per sviluppatori dovrebbe essere visualizzata una richiesta di suggerimenti per i filtri, che puoi selezionare per visualizzare ulteriori informazioni.
- Le intestazioni mostreranno la richiesta API interna che Looker sta inviando per recuperare i valori dei suggerimenti. In questo esempio, supponiamo che Looker stia effettuando la seguente richiesta API, dove
<yourinstance>
rappresenta l'URL per la tua istanza:<yourinstance>/api/internal/models/the_look/views/order_items/fields/users.state/suggestions?term=
- Nella richiesta API, verifica che il modello elencato dopo
/models/
esista. In questo esempio, il modello si chiamathe_look
. - Anche se l'URL è
/views/
, si riferisce all'esplorazione da cui proviene il campo. Verifica che l'esplorazione elencata dopo/views/
esista. In questo esempio, l'esplorazione si chiamaorder_items
. - Verifica che il campo elencato dopo
/fields/
esista. In questo esempio, il campo èusers.state
.
La risposta a questa richiesta API mostrerà il messaggio di errore esatto. Ad esempio, il codice di stato per i suggerimenti è 404 Non trovato:
Seleziona la risposta per questa richiesta per maggiori dettagli.
In questo caso, puoi vedere che i suggerimenti non vanno a buon fine perché il campo non può essere trovato in base alla risposta alla richiesta:
{"class":"FieldNotFound","text":"Field not found."}
Se non vengono visualizzati errori, ma non vengono visualizzati suggerimenti come previsto, controlla se la query di suggerimento viene recuperata dalla cache (cache: true
nella Console della rete). Ciò potrebbe indicare che la cache deve essere eliminata utilizzando un parametro suggest_persist_for
nella dimensione che mostra i suggerimenti.
Trovare prove della query sui suggerimenti che Looker sta tentando di eseguire
Puoi controllare la pagina Query nel riquadro Amministrazione di Looker per assicurarti che la query che genera il filtro (il campo Origine nella pagina Query indicherà Suggerimento filtro) non stia generando un errore. Seleziona il pulsante Dettagli della query e l'opzione Apri in SQL Runner. Verifica che il codice SQL sia sintatticamente corretto. Se noti delle anomalie, come nomi di campi mancanti o caratteri speciali erranti, accertati di non utilizzare parametri Liquid o filtri basati su modelli.
- Se la query richiede un input di filtro basato su modello per essere eseguita, non verranno visualizzati suggerimenti per i filtri.
- Se la query utilizza un parametro con un
default_value
, questo valore verrà inserito nella query del suggerimento del filtro. In questo scenario, la query di suggerimento dei filtri non verrà aggiornata dinamicamente in base all'input dell'utente. A seconda del valore predefinito, ciò può causare l'assenza di suggerimenti per i filtri o l'errata visualizzazione dei suggerimenti relativi ai filtri. Valuta invece la possibilità di utilizzare i filtri collegati in una dashboard.