Filtervorschläge sind ein leistungsstarkes Tool in Looker. Es ist wichtig zu wissen, woher sie stammen und wie sie funktionieren, damit Sie effektive Fehlerbehebungen vornehmen können, wenn sich Filtervorschläge nicht wie erwartet verhalten. Auf dieser Seite erfahren Sie, wie Filtervorschläge funktionieren, warum sie möglicherweise falsch sind und warum sie möglicherweise nicht angezeigt werden.
Wie funktionieren Filtervorschläge?
Filtervorschläge sparen Zeit, wenn Nutzer Werte in Filter eingeben, und sorgen dafür, dass Nutzer Optionen auswählen, die in den Daten vorhanden sind. Wenn der Nutzer ein Filterfeld auswählt, wird unter dem Feld eine Liste mit Vorschlägen angezeigt. In diesem Beispiel wird durch Auswahl des Kästchens für einen Filter im Feld Status im explorativen Analysetool Bestellungen ein Drop-down-Menü mit den Optionen „Storniert“, „Abgeschlossen“ und „Ausstehend“ angezeigt.
Woher stammen diese Vorschläge?
Looker führt eine SELECT distinct <field>
-Abfrage in der Datenbank aus, um alle möglichen Optionen für dieses Feld abzurufen. Die Abfrage sieht in etwa so aus:
SELECT DISTINCT <field_name> FROM <table> WHERE (<field_name> LIKE '%' OR <field_name> LIKE '% %') GROUP BY 1 ORDER BY 1 LIMIT 1000
Wenn Nutzer Zeichen in das Filterfeld eingeben, ersetzt Looker die entsprechenden Bedingungen in der WHERE
-Klausel, um die Ergebnisse zu filtern. Looker zeigt dann die ersten 100 dieser Ergebnisse in den Filtervorschlägen an.
Kann ich ändern, welche Vorschläge übernommen werden?
Entwickler können verschiedene LookML-Parameter verwenden, um die angezeigten Vorschläge zu ändern und anzupassen. Weitere Informationen finden Sie auf der Seite Filtervorschläge ändern.
Werden Vorschläge im Cache gespeichert?
Standardmäßig speichert Looker Abfrageergebnisse eine Stunde lang im Cache. Mit dem LookML-Parameter suggest_persist_for
können Sie die Cache-Länge für Filtervorschläge anpassen. Der Parameter suggest_persist_for
hat den Standardwert „6 Stunden“. Vorschläge haben einen eigenen Cache, der nicht manuell über eine Explore-Seite geleert werden kann. Wenn Sie den Cache für Vorschläge leeren möchten, haben Sie folgende Möglichkeiten:
- Wenn das Explore mit einer datagroup mit einer
sql_trigger
im Cache gespeichert wird, können Sie im Looker-Admin-Bereich auf der Seite Datengruppen den Cache für die gesamte Datengruppe manuell zurücksetzen. Dadurch wird der Cache jedoch für alle Abfragen aktualisiert, die mit dieser Datengruppe beibehalten werden. - Sie können den Parameter
suggest_persist_for
auf Feldebene verwenden und auf „0 Sekunden“ festlegen um den Cache für Filtervorschläge für dieses Feld zu bereinigen.Der Cache ist global für alle Nutzer. Wenn ein Nutzer den Cache für Vorschläge aktualisiert, wirkt sich das auf die Ergebnisse aus, die anderen Nutzern angezeigt werden.
Warum sind die Filtervorschläge falsch?
Nachdem Sie nun wissen, wie Filtervorschläge dargestellt werden, können Sie ermitteln, warum Filtervorschläge falsch sind. Die häufigste Erklärung ist, dass sich die Daten zwischen dem Caching der Filtervorschläge und dem Zeitpunkt, zu dem die falschen Ergebnisse festgestellt wurden, geändert oder aktualisiert haben.
Angenommen, Nutzer A führt morgens als Erstes ein Explore aus. Nutzer A wählt einige Filterwerte aus der Drop-down-Liste mit Vorschlägen aus. Der ETL-Prozess der Datenbank endet etwa eine halbe Stunde später. Anschließend ruft Nutzer B dasselbe Explore auf, das Nutzer A zuvor ausgeführt hat. Nutzer B fragt sich, warum die Filtervorschläge falsch sind. Der Grund für die Abweichung ist, dass die im Cache gespeicherte Vorschlagsanfrage nicht mit dem neu abgeschlossenen ETL-Prozess der Datenbank aktualisiert wurde und daher unerwartete Ergebnisse angezeigt wurden.
In diesem Fall können Sie den Vorschlags-Cache mithilfe der Methoden aktualisieren, die weiter oben auf dieser Seite im Abschnitt Werden Vorschläge im Cache gespeichert? beschrieben.
Warum werden keine Filtervorschläge angezeigt?
Es gibt mehrere Gründe, warum Filtervorschläge nicht angezeigt werden. Die folgenden Schritte zur Fehlerbehebung zeigen mögliche Ursachen auf:
- Prüfen Sie den Filtertyp.
- Prüfen Sie, ob Vorschläge durch
access_filter
odersql_always_where
eingeschränkt werden. - Prüfen Sie, ob ein
suggest_dimension parameter
vorhanden ist. - Prüfen Sie, ob versucht wird, Vorschläge zu laden, wenn ein Nutzer Text im Filter auswählt oder eingibt.
- Sehen Sie in der Chrome-Netzwerkkonsole nach.
- Nachweis für die Suchanfrage finden, die Looker ausführen möchte
Filtertyp prüfen
Bei einem LookML-Dashboard-Filter muss der Filtertyp Field sein. Für andere Filtertypen werden keine Vorschläge übernommen.
-
Das Filterfeld muss in der LookML-Definition den Typ
type: string
haben. Mit Filtern für Felder des Typsnumber
werden keine Vorschläge übernommen. - Handelt es sich um den Filter Übereinstimmungen (erweitert)? Für Filter (erweitert) sind Looker-Ausdrücke erforderlich. Daher werden keine Vorschläge dargestellt.
Prüfen, ob Vorschläge durch access_filter
oder sql_always_where
eingeschränkt werden
Wenn sql_always_where
oder access_filter
verwendet wird, sind Filtervorschläge für diese explorative Datenanalyse in der Regel eingeschränkt. Dadurch wird verhindert, dass Nutzer einen Filtervorschlag sehen, auf den sie nicht zugreifen können. Wenn Sie sicher sind, dass in einem bestimmten Dimensions- oder Filter-Feld keine Werte möglich sind, die vertrauliche Daten offenlegen würden, können Sie Filtervorschläge mit bypass_suggest_restrictions
wieder aktivieren.
Prüfen, ob ein suggest_dimension parameter
Wenn der Parameter suggest_dimension
verwendet wird, werden die Filtervorschläge nur dann angezeigt, wenn in einem Explore auf die vorgeschlagene Dimension verwiesen wird und die Ansicht dieser Dimension als Basis des Explores definiert ist.
Fügen Sie für Explores, in denen die Ansicht der vorgeschlagenen Dimension nicht die Basisansicht ist, den Parameter suggest_explore
hinzu und verweisen Sie auf das Explore, in dem diese Ansicht die Basisansicht ist.
Prüfen, ob versucht wird, Vorschläge zu laden, wenn Sie Text auswählen oder im Filter eingeben
Prüfen Sie, ob Looker scheinbar versucht, Vorschläge zu laden, wenn Sie Text auswählen oder in das Filterfeld eingeben. Looker sollte rechts neben dem Filterfeld einen sich drehenden Ladekreis anzeigen.
Ist das nicht der Fall, versucht Looker nicht, Vorschläge zu erstellen. Prüfen Sie, ob die im ersten Schritt beschriebenen Bedingungen erfüllt sind und Vorschläge auf der Ebene field
, view
oder Explore (mit sql_always_where
oder access_filter
) in LookML nicht deaktiviert sind. Beachten Sie, dass Hadoop-Dialekte standardmäßig suggestions: no
zu allen Ansichtsdateien hinzufügen.
Wenn versucht wird, Vorschläge zu laden, fahren Sie mit der Anleitung zur Prüfung der Chrome-Netzwerkkonsole fort.
Chrome-Netzwerkkonsole prüfen
Die Chrome-Netzwerkkonsole hebt möglicherweise einen Fehler in der Abfrage selbst hervor oder zeigt an, ob Ergebnisse zurückgegeben wurden aus dem Cache.
- Öffnen Sie den Tab „Netzwerk“ in Ihrem Browser mit der Tastenkombination Strg + Umschalt + J (Windows) oder Befehlstaste + Wahltaste + J (Mac) oder wählen Sie oben im Browser in der Chrome-Optionsleiste Ansicht > Entwickeln > Entwicklertools aus.
- Wählen Sie dazu im Filterfeld im Look, Explore oder Dashboard die gewünschte Option aus.
- Im Bereich der Entwicklertools sollte eine Anfrage für die Filtervorschläge angezeigt werden, über die Sie weitere Informationen aufrufen können.
- In den Headern wird die interne API-Anfrage angezeigt, die Looker zum Abrufen der Vorschlagswerte sendet. Angenommen, Looker sendet die folgende API-Anfrage, wobei
<yourinstance>
die URL Ihrer Instanz ist:<yourinstance>/api/internal/models/the_look/views/order_items/fields/users.state/suggestions?term=
- Prüfen Sie in der API-Anfrage, ob das nach
/models/
aufgeführte Modell existiert. In diesem Beispiel heißt das Modellthe_look
. - In der URL steht zwar
/views/
, dies bezieht sich jedoch auf das Explore, aus dem das Feld stammt. Prüfen Sie, ob das explorative Datenanalysetool, das nach/views/
aufgeführt ist, vorhanden ist. In diesem Beispiel heißt das Exploreorder_items
. - Prüfen Sie, ob das nach
/fields/
aufgeführte Feld vorhanden ist. In diesem Beispiel ist das Feldusers.state
.
In der Antwort auf diese API-Anfrage wird die genaue Fehlermeldung angezeigt. Angenommen, der Statuscode für die Vorschläge lautet 404 Not Found:
Wählen Sie die Antwort für diese Anfrage aus, um weitere Informationen zu erhalten.
In diesem Fall sehen Sie, dass die Vorschläge fehlschlagen, weil das Feld anhand der Antwort auf die Anfrage nicht gefunden werden kann:
{"class":"FieldNotFound","text":"Field not found."}
Wenn keine Fehler, aber erwartungsgemäß auch keine Vorschläge vorliegen, prüfen Sie, ob die Vorschlagsabfrage aus dem Cache abgerufen wird (cache: true
in der Netzwerkkonsole). Dies kann darauf hindeuten, dass der Cache mithilfe eines suggest_persist_for
-Parameters für die Dimension, die Vorschläge bereitstellt, bereinigt werden muss.
Beweise für die Vorschlagsabfrage finden, die Looker auszuführen versucht
Auf der Seite Abfragen im Looker-Bereich Verwaltung können Sie prüfen, ob die Abfrage, mit der der Filter generiert wird, einen Fehler generiert. Im Feld Quelle auf der Seite Abfragen steht Filtervorschlag. Klicken Sie auf die Schaltfläche Details der Abfrage und wählen Sie die Option Open in SQL Runner (In SQL-Runner öffnen) aus. Prüfen Sie, ob die SQL-Syntax korrekt ist. Wenn Sie Anomalien wie fehlende Feldnamen oder Sonderzeichen feststellen, stellen Sie sicher, dass Sie keine Liquid-Parameter oder Filtervorlagen verwenden.
- Wenn für die Abfrage eine Eingabe mit Filtervorlage erforderlich ist, werden keine Filtervorschläge dargestellt.
- Wenn in der Abfrage ein Parameter mit einem
default_value
verwendet wird, wird dieser Wert in die Abfrage mit Filtervorschlägen eingefügt. In diesem Szenario wird die Abfrage für Filtervorschläge nicht dynamisch anhand der Nutzereingabe aktualisiert. Je nach Standardwert kann dies entweder zu keinen oder zu falschen Filtervorschlägen führen. Verwenden Sie stattdessen verknüpfte Filter in einem Dashboard.