Risoluzione dei problemi comuni relativi ai suggerimenti di filtri

I suggerimenti per i filtri sono un ottimo strumento di Looker. È fondamentale capire da dove provengono e come funzionano in modo da poter risolvere in modo efficace i problemi quando i suggerimenti di filtri non funzionano come previsto. Questa pagina descrive il funzionamento dei suggerimenti per i filtri, il motivo per cui potrebbero essere errati e il motivo per cui potrebbero non essere compilati.

Come funzionano i suggerimenti per i filtri?

I suggerimenti per i filtri consentono di risparmiare tempo quando gli utenti inseriscono valori nei filtri e garantiscono che gli utenti scelgano le opzioni presenti 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 nel campo Stato dall'esplorazione Ordini, viene visualizzato un elenco a discesa con i valori "cancelled", "complete" 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 il 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 dei filtri, Looker sostituisce le condizioni appropriate nella clausola WHERE per filtrare i risultati. Looker mostra quindi i primi 100 risultati nei suggerimenti per i filtri.

Posso modificare i suggerimenti che vengono compilati?

Gli sviluppatori possono utilizzare vari parametri LookML per modificare e personalizzare i suggerimenti visualizzati. Per ulteriori dettagli, consulta la pagina della documentazione relativa alla modifica dei suggerimenti per i filtri.

I suggerimenti sono 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 sui 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 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 Amministratore di Looker, ma in questo modo la cache verrà aggiornata per tutte le query persistenti utilizzando quel gruppo di dati.
  • Puoi utilizzare il parametro suggest_persist_for a livello di campo e impostarlo su "0 secondi" per bloccare la cache dei suggerimenti di filtri per quel campo.
    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 potrebbero essere errati. La spiegazione più comune è che i dati siano stati modificati o aggiornati tra il momento in cui i suggerimenti di filtro sono stati memorizzati nella cache e il momento in cui sono stati rilevati i risultati sbagliati.

Ad esempio, supponiamo che l'utente A esegua un'esplorazione al mattino per la prima volta. L'utente A seleziona alcuni valori di filtro dall'elenco a discesa dei suggerimenti. Il processo ETL del database termina circa mezz'ora dopo. Successivamente, l'utente B visualizza la stessa esplorazione che ha eseguito in precedenza l'utente A. L'utente B si chiede perché i filtri suggeriti 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 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 su questa pagina.

Perché i suggerimenti per i filtri non vengono compilati?

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

  1. Controlla il tipo di filtro.
  2. Controlla se sono presenti suggerimenti che limitano access_filter o sql_always_where.
  3. Controlla se è presente un suggest_dimension parameter.
  4. Controlla se si verifica 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 di suggerimenti che Looker sta cercando di eseguire.

Controllare il tipo di filtro

Se per un filtro dashboard LookML, assicurati che il tipo di filtro sia Campo. Altri tipi di filtri non completeranno i suggerimenti.

  • Assicurati che il campo del filtro sia type: string nella definizione di LookML. I filtri nei campi di tipo number non completeranno i suggerimenti.
  • È un filtro corrisponde (avanzato)? I filtri per le corrispondenze (avanzati) richiedono espressioni Looker, quindi i suggerimenti non verranno completati.

Controlla se esistono suggerimenti che limitano access_filter o sql_always_where

In genere, quando utilizzi sql_always_where o access_filter, i suggerimenti per i filtri sono limitati per quell'esplorazione. Impedisce agli utenti di visualizzare un suggerimento di filtro a cui non possono accedere. Se hai la certezza che in un determinato campo di dimensione o filtro non sono disponibili valori possibili che potrebbero rivelare 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 completati, a meno che non si faccia riferimento alla dimensione suggerita in un'esplorazione con la relativa visualizzazione definita come base dell'esplorazione.

Per le esplorazioni in cui la visualizzazione della dimensione suggerita non è quella di base, aggiungi il parametro suggest_explore, facendo riferimento all'esplorazione in cui la visualizzazione è la visualizzazione di base.

Controlla se si verifica un tentativo di caricamento dei suggerimenti quando selezioni o inserisci testo nel filtro

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

In caso contrario, Looker non sta cercando di compilare i suggerimenti. Controlla che le condizioni descritte nel primo passaggio siano soddisfatte e che i suggerimenti non siano disattivati a livello di field, view o Esplorazione (con sql_always_where o access_filter) in LookML. Tieni presente che i dialetti di Hadoop aggiungono suggestions: no a tutti i file di visualizzazione per impostazione predefinita.

Se esiste un tentativo di caricamento dei suggerimenti, consulta le istruzioni per controllare la console di rete di Chrome.

Controlla la console di rete di Chrome

La console di rete di Chrome potrebbe evidenziare un errore nella query o indicare se vengono restituiti risultati 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 > Sviluppa > Strumenti per sviluppatori dalla barra di opzioni di Chrome nella parte superiore del browser.
  2. Seleziona la casella dei filtri 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 avere ulteriori informazioni.
  4. Le intestazioni mostreranno la richiesta API interna che Looker sta facendo per recuperare i valori del suggerimento. In questo esempio, supponi che Looker stia effettuando la seguente richiesta API, dove <yourinstance> rappresenta l'URL dell'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. Sebbene l'URL indichi /views/, si riferisce all'esplorazione da cui proviene il campo. Verifica che l'esplorazione venga elencata dopo il giorno /views/. In questo esempio, l'esplorazione è denominata 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à l'esatto messaggio di errore. Ad esempio, il codice di stato dei suggerimenti è 404 - Non trovato:

Per ulteriori dettagli, seleziona la risposta per questa richiesta.

In questo caso, puoi vedere che i suggerimenti non sono disponibili 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, controlla se la query di suggerimento viene estratto dalla cache (cache: true nella console di rete). Questo potrebbe indicare che è necessario eseguire il busting della cache utilizzando un parametro suggest_persist_for nella dimensione che mostra suggerimenti.

Trovare le prove della query di 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 (nel campo Origine della pagina Query riporterà Suggerimento filtro) non generi un errore. Seleziona il pulsante Dettagli della query e scegli l'opzione Apri in SQL Runner. Verifica che l'SQL sia sintatticamente corretto. Se noti anomalie quali nomi dei campi mancanti o caratteri speciali errati, accertati di non utilizzare parametri Liquid o filtri basati su modelli.

  • Se la query richiede l'input di un filtro basato su modelli per l'esecuzione, non verrà completato alcun suggerimento relativo ai filtri.
  • Se la query utilizza un parametro con un valore default_value, quel valore verrà inserito nella query del suggerimento filtro. In questo scenario, la query di suggerimento 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 per i filtri errati. In alternativa, ti consigliamo di utilizzare i filtri collegati in una dashboard.