Risolvere i problemi comuni relativi ai suggerimenti di filtro

I suggerimenti per i filtri sono uno strumento potente in Looker. È fondamentale capire da dove provengono e come funzionano, in modo da poter risolvere i problemi in modo efficace quando i suggerimenti per i filtri non si comportano come previsto. Questa pagina spiega come funzionano i suggerimenti per i filtri, perché potrebbero essere errati e perché potrebbero non essere compilati.

Come funzionano i suggerimenti per i filtri?

I suggerimenti per i filtri consentono agli utenti di risparmiare tempo quando inseriscono valori nei filtri e assicurano che scelgano opzioni esistenti nei dati. Quando gli utenti selezionano una casella di filtro, sotto il campo viene visualizzato un elenco di suggerimenti. In questo esempio, la selezione della casella per un filtro nel campo Stato in Ordini Esplora mostra un elenco a discesa con i valori "annullato", "completato" e "in attesa" 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 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 caratteri nella casella del filtro, Looker sostituisce le condizioni appropriate nella clausola WHERE per filtrare i risultati. Looker mostra quindi i primi 1000 risultati nei suggerimenti per i filtri.

Posso modificare i suggerimenti visualizzati?

Gli sviluppatori possono utilizzare vari parametri LookML per modificare e personalizzare i suggerimenti visualizzati. Per ulteriori dettagli, consulta la pagina della documentazione Modificare i 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 per i filtri. 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 gruppo di dati con un sql_trigger, puoi reimpostare manualmente la cache per l'intero gruppo di dati nella pagina Gruppi di dati del pannello 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 per il filtro per quel campo.
    La cache è globale per tutti gli utenti. L'aggiornamento della cache per i suggerimenti da parte di un utente influirà sui risultati visualizzati dagli altri utenti.

Perché i suggerimenti per i filtri sono errati?

Ora che hai capito come vengono compilati i suggerimenti per i filtri, puoi determinare perché potrebbero essere errati. La spiegazione più comune è che i dati sono cambiati o sono stati aggiornati tra il momento in cui i suggerimenti per i filtri sono stati memorizzati nella cache e il momento in cui sono stati notati i risultati errati.

Ad esempio, supponiamo che l'utente A esegua un'esplorazione la mattina presto. L'utente A seleziona alcuni valori del filtro dall'elenco a discesa dei suggerimenti. Il processo ETL del database termina circa mezz'ora dopo. Poi, 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 siano corretti. Il motivo della discrepanza è che la query di suggerimento memorizzata nella cache non è stata aggiornata con il processo ETL appena completato del database e pertanto ha mostrato risultati imprevisti.

In questo caso, puoi aggiornare la cache dei suggerimenti utilizzando i metodi descritti nella sezione I suggerimenti vengono memorizzati nella cache? in precedenza in questa pagina.

Perché i suggerimenti per i filtri non vengono compilati?

Esistono diversi motivi per cui i suggerimenti per i filtri non vengono compilati. I seguenti passaggi per la risoluzione dei problemi evidenziano le potenziali cause:

  1. Controlla il tipo di filtro.
  2. Controlla se è presente un access_filter o un sql_always_where che limita i suggerimenti.
  3. Controlla se è presente un suggest_dimension parameter.
  4. Verifica se viene effettuato un tentativo di caricare i suggerimenti quando un utente seleziona o inserisce del testo nel filtro.
  5. Controlla la console di rete di Chrome.
  6. Trova prove della query di suggerimenti che Looker sta tentando di eseguire.

Controlla il tipo di filtro

Se si tratta di un filtro della dashboard LookML, assicurati che il tipo di filtro sia Campo. Gli altri tipi di filtri non genereranno suggerimenti.

Verifica 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 per i filtri vengono limitati per l'esplorazione. In questo modo, gli utenti non vedono un suggerimento di filtro a cui non possono accedere. Se hai la certezza che non esistono valori possibili in un determinato campo dimensione o filtro 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 venga fatto riferimento alla dimensione suggerita in un'esplorazione con la vista di quella dimensione definita come vista 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 del testo nel filtro

Controlla se Looker tenta di caricare i suggerimenti quando selezioni o inserisci del testo nella casella del filtro. Looker dovrebbe visualizzare un cerchio di caricamento rotante sul lato destro della casella del filtro.

In caso contrario, Looker non sta tentando di popolare 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 Esplora (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 eseguito un tentativo di caricamento dei suggerimenti, procedi con 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 presenti risultati restituiti dalla cache.

  1. Apri la scheda Rete del browser con la scorciatoia Ctrl + Shift + J (su Windows) o Comando + Opzione + J (su Mac) oppure selezionando Visualizza > Sviluppatore > Strumenti per sviluppatori dalla barra delle opzioni di Chrome nella parte superiore del browser.
  2. Seleziona nella casella del filtro del look, dell'esplorazione o della dashboard.
  3. Nel riquadro Strumenti per sviluppatori dovrebbe essere visualizzata una richiesta per i suggerimenti di filtri, che puoi selezionare per ulteriori informazioni.
  4. Le intestazioni mostreranno la richiesta API interna che Looker sta effettuando per recuperare i valori dei suggerimenti. In questo esempio, supponiamo che Looker stia effettuando la seguente richiesta API, dove <yourinstance> rappresenta l'URL della tua istanza:

    <yourinstance>/api/internal/models/the_look/views/order_items/fields/users.state/suggestions?term=
  5. Nella richiesta API, verifica che il modello elencato dopo /models/ esista. In questo esempio, il modello si chiama the_look.
  6. Anche se l'URL indica /views/, si riferisce all'esplorazione da cui proviene il campo. Verifica che l'esplorazione elencata dopo /views/ esista. In questo esempio, l'esplorazione si chiama order_items.
  7. 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 Not Found:

Seleziona la risposta a 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 sono presenti errori, ma neanche suggerimenti quando previsto, controlla se la query di suggerimento viene recuperata dalla cache (cache: true nella console di rete). Ciò potrebbe indicare che la cache deve essere svuotata utilizzando un parametro suggest_persist_for nella dimensione che fornisce i suggerimenti.

Trovare prove della query di suggerimenti che Looker sta tentando di eseguire

Puoi controllare la pagina Query nel pannello Amministrazione di Looker per assicurarti che la query che genera il filtro (il campo Origine nella pagina Query indica Suggerimento filtro) non generi un errore. Seleziona il pulsante Dettagli della query e seleziona l'opzione Apri in SQL Runner. Verifica che l'SQL sia sintatticamente corretto. Se noti anomalie come nomi di campi mancanti o caratteri speciali errati, verifica 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 di suggerimento del filtro. In questo scenario, la query di suggerimento del filtro non verrà aggiornata dinamicamente in base all'input utente'utente. A seconda del valore predefinito, ciò può causare l'assenza di suggerimenti per i filtri o suggerimenti errati. In alternativa, valuta l'utilizzo di filtri collegati in una dashboard.