Der Explore-Abfrage-Tracker und der Bereich Explore-Leistung enthalten detaillierte Leistungsdaten für eine Explore-Abfrage. Anhand dieser Daten können Sie wichtige Einstiegspunkte für die Fehlerbehebung und Lösung von Leistungsproblemen mit Abfragen ermitteln und Verbesserungsvorschläge erhalten.
Tracker für explorative Datenanalysen
Der Explore-Abfrage-Tracker zeigt den Fortschritt einer Explore-Abfrage durch die drei Phasen der Abfrage an, während die Abfrage ausgeführt wird.
Wenn die Ausführung einer Abfrage sehr lange dauert, kann der Abfrage-Tracker angeben, welche Phase der Abfrage das Leistungsproblem verursacht. So können Sie feststellen, wo Leistungsprobleme auftreten können und wo Optimierungsmaßnahmen am effektivsten sind.
Der Abfrage-Tracker wird angezeigt, wenn ein Explore ausgeführt wird, sofern entweder der Bereich Explore-Visualisierung oder der Bereich Explore-Daten geöffnet ist.
Bereich Leistung
Wenn Sie den Bereich Leistung für explorative Datenanalysen aufrufen möchten, klicken Sie auf den Link Leistungsdetails ansehen. Dieser ist bei jeder ausgeführten explorativen Datenanalyse verfügbar.
Im Bereich Leistung sehen Sie, wie lange die Abfrage in den drei Abfragephasen gedauert hat. Außerdem finden Sie dort Links zu Leistungsdokumenten und zum Dashboard Abfrageverlauf, in dem aktuelle und bisherige Leistungsdaten für die Abfrage und das Explore angezeigt werden, mit dem die Abfrage erstellt wurde.
Abfragephasen
Wenn in einem Looker-Explore eine Datenbankabfrage ausgeführt wird, geschieht dies in drei Phasen:
Phase der Abfrageinitialisierung
Während der Phase Abfrageinitialisierung führt Looker alle Aufgaben aus, die erforderlich sind, bevor die Abfrage an Ihre Datenbank gesendet wird. Die Phase Abfrageinitialisierung umfasst die folgenden Aufgaben:
- LookML-Modell kompilieren
- Prüfen, ob persistente abgeleitete Tabellen (PDTs) erstellt werden müssen
- SQL-Abfrage generieren
- Datenbankverbindung abrufen
Auf der Seite Messwerte zur Abfrageleistung wird beschrieben, wie Sie unter Systemaktivität die explorative Datenanalyse Messwerte zur Abfrageleistung verwenden, um detaillierte Aufschlüsselungen einer Abfrage aufzurufen. Die Phase Abfrageinitialisierung des Abfrage-Trackers umfasst die Ereignisse, die in den explorativen Datenanalysen Messwerte zur Abfrageleistung in den Phasen Asynchroner Worker, Initialisierungsphase und Verbindungsverwaltungsphase beschrieben sind.
Phase der Abfrageausführung
In der Phase Abfrage wird ausgeführt kontaktiert Looker Ihre Datenbank, fragt sie ab und gibt die Ergebnisse der Abfrage zurück. Leistungsprobleme in dieser Phase können auf Probleme mit der externen Datenbank hinweisen, z. B. auf PDTs, deren Neuaufbau lange dauert und die möglicherweise optimiert werden müssen, oder auf externe Datenbanktabellen, die möglicherweise optimiert werden müssen. Die Phase Abfrage wird ausgeführt umfasst die folgenden Aufgaben:
- Erstellen von PDTs in der Datenbank, die für die Explore-Abfrage erforderlich sind
- Ausführen der angeforderten Abfrage in der Datenbank
Auf der Seite Messwerte zur Abfrageleistung wird beschrieben, wie Sie unter Systemaktivität die explorative Datenanalyse Messwerte zur Abfrageleistung verwenden, um detaillierte Aufschlüsselungen einer Abfrage aufzurufen. Die Phase Laufende Abfrage des Abfrage-Trackers enthält die Ereignisse, die in der explorativen Datenanalyse Leistungsmesswerte für Abfragen in der Phase Hauptabfragen beschrieben sind.
Wenn in dieser Phase Leistungsprobleme auftreten, können Sie Folgendes tun:
- Erstellen Sie Explores nach Möglichkeit mit
many_to_one
-Joins. Die beste Abfrageleistung wird in der Regel durch das Zusammenführen von Datenansichten von der untersten bis zur höchsten Detailebene (many_to_one
) erzielt. - Maximieren Sie den Cache, um ihn nach Möglichkeit mit Ihren ETL-Richtlinien zu synchronisieren und den Traffic bei Datenbankabfragen zu reduzieren. Standardmäßig speichert Looker Abfragen eine Stunde lang im Cache. Sie können die Caching-Richtlinie steuern und die Aktualisierung von Looker-Daten mit Ihrem ETL-Prozess synchronisieren, indem Sie Datengruppen mit dem Parameter
persist_with
in Explores anwenden. Durch die Maximierung des Cachings kann Looker enger in die Backend-Datenpipeline eingebunden werden. So kann die Cachenutzung maximiert werden, ohne dass das Risiko besteht, veraltete Daten zu analysieren. Benannte Caching-Richtlinien können auf ein gesamtes Modell oder auf einzelne Explores und persistente abgeleitete Tabellen (PDTs) angewendet werden. - Mit der Funktion „Aggregationserkennung“ von Looker können Sie Zusammenfassungen oder Übersichtstabellen erstellen, die Looker nach Möglichkeit für Abfragen verwenden kann, insbesondere für häufige Abfragen großer Datenbanken. Mit der Aggregatfunktion lässt sich auch die Leistung ganzer Dashboards drastisch verbessern. Weitere Informationen finden Sie in der Anleitung zum Aggregieren von Bekanntheit.
- Verwenden Sie PDTs für schnellere Abfragen. Wandeln Sie Explores mit vielen komplexen oder ineffizienten Joins oder Dimensionen mit Unterabfragen oder Unterauswahlen in PDTs um, damit die Datenansichten vor der Laufzeit zusammengeführt und bereit sind.
- Wenn Ihr Datenbankdialekt inkrementelle PDTs unterstützt, konfigurieren Sie inkrementelle PDTs, um die Zeit zu verkürzen, die Looker für das Erstellen neuer PDT-Tabellen benötigt.
- Vermeiden Sie es, Ansichten in Explores über zusammengesetzte Primärschlüssel zu verbinden, die in Looker definiert sind. Führen Sie stattdessen einen Join mit den Basisfeldern aus, die den zusammengesetzten Primärschlüssel aus der Ansicht bilden. Alternativ können Sie die Ansicht als PDT mit dem zusammengesetzten Primärschlüssel neu erstellen, der in der SQL-Definition der Tabelle und nicht in der LookML der Ansicht vordefiniert ist.
- Verwenden Sie das Tool „In SQL Runner erklären“ für das Benchmarking.
EXPLAIN
erstellt eine Übersicht über den Abfrageausführungsplan Ihrer Datenbank für eine bestimmte SQL-Abfrage, mit der Sie Abfragekomponenten erkennen können, die optimiert werden können. Weitere Informationen finden Sie im Communitybeitrag SQL mitEXPLAIN
optimieren. - Indexe deklarieren. Sie können sich die Indexe der einzelnen Tabellen direkt in Looker im SQL Runner ansehen. Klicken Sie dazu in einer Tabelle auf das Zahnradsymbol und wählen Sie Indexe anzeigen aus.
Die häufigsten Spalten, die von Indexen profitieren können, sind wichtige Datumsangaben und Fremdschlüssel. Wenn Sie diesen Spalten Indexe hinzufügen, wird die Leistung bei fast allen Abfragen gesteigert. Dies gilt auch für PDTs. LookML-Parameter wie
indexes
,sort keys
unddistribution
können entsprechend angewendet werden.
Phase „Ergebnisse werden verarbeitet“
In der Phase Ergebnisse werden verarbeitet werden die Ergebnisse der Abfrage in Looker verarbeitet und gerendert. Die Phase Ergebnisse verarbeiten umfasst die folgenden Aufgaben:
- Abfrageergebnisse in den Cache streamen
- Tabellenkalkulationen beheben
- Ergebnisse der Liquid-Template-Sprache formatieren
- Abfragen zusammenführen
- Summen und Zwischensummen berechnen
Auf der Seite Messwerte zur Abfrageleistung wird beschrieben, wie Sie unter Systemaktivität die explorative Datenanalyse Messwerte zur Abfrageleistung verwenden, um detaillierte Aufschlüsselungen einer Abfrage aufzurufen. Die Phase Ergebnisse werden verarbeitet des Abfrage-Trackers enthält die Ereignisse, die im explorativen Analysetool Messwerte zur Abfrageleistung in der Phase nach der Abfrage beschrieben sind.
Wenn in dieser Phase Leistungsprobleme auftreten, können Sie Folgendes tun:
- Verwenden Sie Funktionen wie zusammengeführte Ergebnisse, benutzerdefinierte Felder und Tabellenkalkulationen sparsam. Diese Funktionen sollen als Proof of Concept dienen, um Ihr Modell zu entwerfen. Es empfiehlt sich, häufig verwendete Berechnungen und Funktionen in LookML zu hartcodieren. Dadurch wird SQL generiert, das in Ihrer Datenbank verarbeitet wird. Zu viele Berechnungen können um den Java-Speicher der Looker-Instanz konkurrieren, was zu einer langsameren Reaktion der Looker-Instanz führt.
- Begrenzen Sie die Anzahl der Ansichten, die Sie in ein Modell aufnehmen, wenn eine große Anzahl von Ansichtsdateien vorhanden ist. Wenn Sie alle Datenansichten in einem einzigen Modell einbeziehen, kann die Leistung beeinträchtigt werden. Wenn ein Projekt eine große Anzahl von Ansichten enthält, sollten Sie nur die Ansichtsdateien in jedes Modell aufnehmen, die für dieses erforderlich sind. Verwenden Sie strategische Namenskonventionen für Dateinamen von Ansichten, um Ansichtsgruppen in ein Modell aufzunehmen. Ein Beispiel finden Sie in der Parameterdokumentation für
includes
. - Vermeiden Sie, in Dashboard-Kacheln und Looks standardmäßig eine große Anzahl von Datenpunkten zurückzugeben. Abfragen, die Tausende von Datenpunkten zurückgeben, verbrauchen mehr Arbeitsspeicher. Begrenzen Sie die Daten nach Möglichkeit, indem Sie
Filter auf der Frontendebene auf Dashboards, Looks und Explores anwenden und auf LookML-Ebene die Parameter
required filters
,conditionally_filter
undsql_always_where
verwenden. - Verwenden Sie die Option Alle Ergebnisse sparsam, da einige Abfragen sehr groß sein können und den Looker-Server bei der Verarbeitung überlasten.