Fehlerbehebung bei häufigen Problemen mit Filtervorschlägen

Filtervorschläge sind ein leistungsstarkes Tool in Looker. Es ist wichtig zu verstehen, woher sie stammen und wie sie funktionieren, damit Sie Probleme effektiv beheben können, wenn Filtervorschläge nicht wie erwartet funktionieren. Auf dieser Seite wird erläutert, 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 Nutzer ein Filterfeld auswählen, wird unter dem Feld eine Liste mit Vorschlägen angezeigt. Wenn Sie in diesem Beispiel das Kästchen für einen Filter für das Feld Status im Explore Bestellungen auswählen, wird eine Drop-down-Liste mit den Optionen „Abgebrochen“, „Abgeschlossen“ und „Ausstehend“ angezeigt.

Woher stammt diese Liste mit Vorschlägen?

Looker führt eine SELECT distinct <field>-Abfrage für die 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, werden in Looker die entsprechenden Bedingungen in der WHERE-Klausel ersetzt, um die Ergebnisse zu filtern. Looker zeigt dann die ersten 1.000 dieser Ergebnisse in Filtervorschlägen an.

Kann ich ändern, welche Vorschläge angezeigt werden?

Entwickler können verschiedene LookML-Parameter verwenden, um die angezeigten Vorschläge zu ändern und anzupassen. Weitere Informationen finden Sie auf der Dokumentationsseite 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 Seite vom Typ „Entdecken“ gelöscht werden kann. Wenn Sie den Cache für Vorschläge leeren müssen, haben Sie folgende Möglichkeiten:

  • Wenn das Explore mit einer Datengruppe mit einem sql_trigger zwischengespeichert wird, können Sie den Cache für die gesamte Datengruppe auf der Seite Datengruppen im Bereich Admin von Looker manuell zurücksetzen. Dadurch wird jedoch der Cache 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 leeren.
    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 andere Nutzer sehen.

Warum sind die Filtervorschläge falsch?

Nachdem Sie nun wissen, wie Filtervorschläge erstellt werden, können Sie nachvollziehen, warum sie möglicherweise falsch sind. Die häufigste Erklärung ist, dass sich die Daten zwischen dem Zeitpunkt, zu dem die Filtervorschläge im Cache gespeichert wurden, und dem Zeitpunkt, zu dem die falschen Ergebnisse bemerkt 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 wird etwa eine halbe Stunde später abgeschlossen. Nutzer B ruft dann 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 Abfrage für Vorschläge nicht mit dem neu abgeschlossenen ETL-Prozess der Datenbank aktualisiert wurde und daher unerwartete Ergebnisse angezeigt wurden.

In diesem Fall können Sie den Vorschlagscache mit den Methoden aktualisieren, die weiter oben auf dieser Seite im Abschnitt Werden Vorschläge im Cache gespeichert? beschrieben werden.

Warum werden keine Filtervorschläge angezeigt?

Es kann verschiedene Gründe dafür geben, dass keine Filtervorschläge angezeigt werden. Die folgenden Schritte zur Fehlerbehebung weisen auf mögliche Ursachen hin:

  1. Filtertyp prüfen
  2. Prüfen, ob eine access_filter oder eine sql_always_where die Vorschläge einschränkt.
  3. Prüfen, ob ein suggest_dimension parameter vorhanden ist
  4. Prüfen, ob versucht wird, Vorschläge zu laden, wenn ein Nutzer Text im Filter auswählt oder eingibt.
  5. Chrome-Netzwerkkonsole prüfen
  6. Belege für die Vorschlagsabfrage finden, die Looker auszuführen versucht

Filtertyp prüfen

Wenn es sich um einen Filter für ein LookML-Dashboard handelt, muss der Filtertyp Feld sein. Bei anderen Filtertypen werden keine Vorschläge angezeigt.

  • Das Filterfeld muss in seiner LookML-Definition vom Typ type: string sein. Bei Filtern für Felder vom Typ number werden keine Vorschläge angezeigt.
  • Handelt es sich um einen Filter für Übereinstimmungen (erweitert)? Für Filter vom Typ „Übereinstimmungen (erweitert)“ sind Looker-Ausdrücke erforderlich. Daher werden keine Vorschläge angezeigt.

Prüfen, ob Vorschläge durch ein access_filter oder ein sql_always_where eingeschränkt werden

Wenn sql_always_where oder access_filter verwendet wird, sind die Filtervorschläge für das entsprechende Explore in der Regel eingeschränkt. So wird verhindert, dass Nutzer eine Filterempfehlung sehen, auf die sie nicht zugreifen können. Wenn Sie sicher sind, dass in einem bestimmten Feld für Dimension oder Filter keine möglichen Werte vorhanden sind, die vertrauliche Informationen preisgeben würden, können Sie Filtervorschläge mit bypass_suggest_restrictions wieder aktivieren.

Prüfen, ob ein suggest_dimension parameter vorhanden ist

Wenn der Parameter suggest_dimension verwendet wird, werden die Filtervorschläge nur dann ausgefüllt, wenn auf die vorgeschlagene Dimension in einem Explore verwiesen wird, dessen Ansicht als base-Ansicht des Explore definiert ist.

Fügen Sie für Explores, bei 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 Sie, ob Vorschläge geladen werden, wenn Sie Text im Filter auswählen oder eingeben.

Prüfen Sie, ob Looker versucht, Vorschläge zu laden, wenn Sie Text im Filterfeld auswählen oder eingeben. Rechts neben dem Filterfeld sollte ein sich drehender Ladekreis angezeigt werden.

Wenn nicht, versucht Looker nicht, Vorschläge zu generieren. Prüfen Sie, ob die im ersten Schritt beschriebenen Bedingungen erfüllt sind und ob Vorschläge in LookML nicht auf field-, view- oder Explore-Ebene (mit sql_always_where oder access_filter) deaktiviert sind. Bei Hadoop-Dialekten wird standardmäßig suggestions: no in allen Ansichtsdateien hinzugefügt.

Wenn versucht wird, Vorschläge zu laden, folgen Sie der Anleitung zum Überprüfen der Chrome-Netzwerkkonsole.

Chrome-Netzwerkkonsole prüfen

In der Chrome-Netzwerkkonsole wird möglicherweise ein Fehler bei der Abfrage selbst hervorgehoben oder angezeigt, ob Ergebnisse aus dem Cache zurückgegeben werden.

  1. Öffnen Sie den Tab „Netzwerk“ in Ihrem Browser mit der Tastenkombination Strg + Umschalt + J (Windows) oder Befehlstaste + Wahltaste + J (Mac) oder indem Sie in der Chrome-Optionsleiste oben im Browser Ansicht > Entwickeln > Entwicklertools auswählen.
  2. Wählen Sie im Filterfeld in Ihrem Look, Explore oder Dashboard aus.
  3. Im Bereich „Entwicklertools“ sollte eine Anfrage für die Filtervorschläge angezeigt werden. Wenn Sie sie auswählen, erhalten Sie weitere Informationen.
  4. In den Headern wird die interne API-Anfrage angezeigt, die Looker zum Abrufen der Vorschlagswerte sendet. Angenommen, Looker stellt in diesem Beispiel die folgende API-Anfrage, wobei <yourinstance> die URL für Ihre Instanz darstellt:

    <yourinstance>/api/internal/models/the_look/views/order_items/fields/users.state/suggestions?term=
  5. Prüfen Sie in der API-Anfrage, ob das nach /models/ aufgeführte Modell vorhanden ist. In diesem Beispiel heißt das Modell the_look.
  6. Obwohl in der URL /views/ steht, bezieht sich das auf den Explore, aus dem das Feld stammt. Prüfen Sie, ob der Explore nach /views/ vorhanden ist. In diesem Beispiel heißt das Explore order_items.
  7. Prüfen Sie, ob das Feld, das nach /fields/ aufgeführt ist, vorhanden ist. In diesem Beispiel ist das Feld users.state.

Die Antwort auf diese API-Anfrage enthält die genaue Fehlermeldung. Der Statuscode für die Vorschläge ist beispielsweise 404 Not Found:

Wählen Sie die Antwort auf 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 auch keine Vorschläge angezeigt werden, obwohl dies erwartet wird, prüfen Sie, ob die Vorschlagsanfrage aus dem Cache abgerufen wird (cache: true in der Network Console). Dies kann darauf hindeuten, dass der Cache geleert werden muss. Verwenden Sie dazu den Parameter suggest_persist_for für die Dimension, über die Vorschläge bereitgestellt werden.

Nachweisen, dass Looker versucht, die Abfrage für Vorschläge auszuführen

Auf der Seite Abfragen im Looker-Admin-Bereich können Sie prüfen, ob bei der Abfrage, mit der der Filter generiert wird (im Feld Quelle auf der Seite Abfragen steht Filtervorschlag), ein Fehler auftritt. Wählen Sie die Schaltfläche Details der Abfrage und dann die Option In SQL-Runner öffnen aus. Prüfen Sie, ob die SQL-Anweisung syntaktisch korrekt ist. Wenn Sie Anomalien wie fehlende Feldnamen oder falsche Sonderzeichen feststellen, prüfen Sie, ob Sie Liquid-Parameter oder Filtervorlagen verwenden.

  • Wenn für die Ausführung der Abfrage eine Eingabe für einen Filter mit Platzhaltern erforderlich ist, werden keine Filtervorschläge angezeigt.
  • Wenn in der Abfrage ein Parameter mit einem default_value verwendet wird, wird dieser Wert in die Abfrage für Filtervorschläge eingefügt. In diesem Fall wird die Abfrage für Filtervorschläge nicht dynamisch auf Grundlage der Nutzereingabe aktualisiert. Je nach Standardwert kann dies dazu führen, dass keine oder falsche Filtervorschläge angezeigt werden. Verwenden Sie stattdessen verknüpfte Filter in einem Dashboard.