Risoluzione dei problemi più comuni relativi ai suggerimenti di filtri

I suggerimenti per i filtri sono un potente strumento in Looker. È fondamentale capire da dove provengono e come funzionano, in modo da poter risolvere i problemi in modo efficace quando i suggerimenti dei filtri non si comportano come previsto. In questa pagina viene spiegato come funzionano i suggerimenti di filtro, perché potrebbero non essere corretti e perché potrebbero non essere compilati.

Come funzionano i suggerimenti di filtro?

I suggerimenti per i filtri fanno risparmiare tempo quando gli utenti inseriscono valori nei filtri e garantiscono che gli utenti 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 le opzioni "cancelled", "complete" e "in attesa".

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 100 di questi risultati nei suggerimenti di filtro.

Posso modificare i suggerimenti compilati?

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 lunghezza della cache per i suggerimenti relativi ai 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 hai bisogno di svuotare la cache per ricevere 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 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 interrompere la cache dei suggerimenti per i filtri per il campo in questione.
    La cache è globale per tutti gli utenti. Un utente che aggiorna la cache per i suggerimenti influirà sui risultati visualizzati dagli altri utenti.

Perché i suggerimenti di filtro sono errati?

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 come prima cosa al 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. Quindi, l'utente B visualizza la stessa esplorazione eseguita in precedenza dall'utente A. L'utente B si chiede perché i suggerimenti di filtro non siano corretti. Il motivo della disparità è che la query di suggerimento memorizzata nella cache non si aggiornava con il processo ETL appena completato del database e mostrava quindi 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 di filtro non vengono compilati?

I motivi per cui i suggerimenti per i filtri non vengono compilati possono essere diversi. I seguenti passaggi di 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 suggerimenti che limitano.
  3. Controlla se è presente un suggest_dimension parameter.
  4. Verifica se viene eseguito un tentativo di caricamento dei suggerimenti quando un utente seleziona o inserisce testo nel filtro.
  5. Controlla la console di rete di Chrome.
  6. Trova le prove della query sui 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 tipo number non completeranno i suggerimenti.
  • Si tratta di un filtro corrisponde a (avanzato)? I filtri di corrispondenza (avanzati) richiedono espressioni di Looker, pertanto i suggerimenti non verranno compilati.

Controlla se è presente un suggerimento sulle limitazioni access_filter o sql_always_where

In genere, quando viene utilizzato sql_always_where o access_filter, i suggerimenti per i filtri sono limitati per quell'esplorazione. 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 vista di base, aggiungi il parametro suggest_explore, facendo riferimento all'esplorazione in cui la visualizzazione è la vista 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 visualizzare un cerchio di caricamento rotante sul lato destro della casella del filtro.

In caso contrario, Looker non sta cercando di inserire 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 di Hadoop aggiungeranno suggestions: no su tutti i file delle visualizzazioni per impostazione predefinita.

In caso di tentativo di caricare i suggerimenti, consulta 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 della query stessa o mostrare se sono presenti risultati restituiti dalla cache.

  1. Apri la scheda Rete nel browser con la scorciatoia Ctrl + Shift + J (su Windows) o Comando + opzione + J (su Mac) oppure selezionando Visualizza > Sviluppo > Strumenti per sviluppatori dalla barra delle opzioni di Chrome nella parte superiore del browser.
  2. Seleziona la casella di filtro nel Look, nell'esplorazione o nella dashboard.
  3. Il riquadro Strumenti per sviluppatori dovrebbe mostrare una richiesta di suggerimenti per i filtri, che puoi selezionare per ottenere ulteriori informazioni.
  4. Le intestazioni mostreranno la richiesta API interna che Looker sta effettuando per recuperare i valori del suggerimento. 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=
  5. Nella richiesta API, verifica che esista il modello elencato dopo /models/. In questo esempio, il modello è chiamato the_look.
  6. 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 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 dei suggerimenti è 404 - Non trovato:

Per ulteriori dettagli, seleziona la risposta a questa richiesta.

In questo caso, puoi notare che i suggerimenti non funzionano perché non è possibile trovare il campo in base alla risposta alla richiesta:

{"class":"FieldNotFound","text":"Field not found."}

Se non ci sono errori, ma non ci sono suggerimenti quando previsto, verifica se la query di suggerimento viene estratto dalla cache (cache: true nella console di rete). Questo potrebbe suggerire che la cache debba essere arrestata, utilizzando un parametro suggest_persist_for per la dimensione che fornisce suggerimenti.

Trovare le prove della query sui suggerimenti che Looker sta cercando 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 l'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 l'esecuzione di un input filtro basato su modelli, non verrà visualizzato alcun suggerimento per il filtro.
  • 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 del filtro non verrà aggiornata dinamicamente in base all'input utente'utente. A seconda del valore predefinito, ciò potrebbe causare l'assenza di suggerimenti per i filtri o l'errata visualizzazione dei suggerimenti relativi ai filtri. In alternativa, puoi utilizzare i filtri collegati in una dashboard.