Mit dem SQL-Validator für Continuous Integration (CI) wird geprüft, ob die Dimensionen in Ihren Explores korrekt für Ihre Datenbank ausgeführt werden. Dazu führt der SQL-Validator eine Reihe von Abfragen für die Explores in Ihrem LookML-Projekt aus.
Standardmäßig führt der SQL-Validator die folgenden Aufgaben aus:
- Für jeden Explore in Ihrem Projekt führt der SQL-Validator eine Explore-Abfrage aus, die alle Dimensionen im Explore enthält.
- Wenn Looker einen Fehler für die Explore-Abfrage zurückgibt, führt der SQL-Validator eine separate Explore-Abfrage für jede Dimension im Explore aus.
Wenn Sie nicht möchten, dass der SQL-Validator jede Dimension in jedem Explore testet, können Sie optional einen oder mehrere der folgenden Schritte ausführen:
- Konfigurieren Sie den SQL-Validator so, dass er nur bestimmte Explores abfragt.
- Konfigurieren Sie den SQL-Validator so, dass bestimmte Explores ausgeschlossen werden.
- Konfigurieren Sie den SQL-Validator so, dass er LookML-Dimensionen ignoriert, die mit
hidden: yesdefiniert sind. - Fügen Sie der LookML einer Dimension einen
ci: ignore-Kommentar oder ein Tag hinzu, um zu verhindern, dass der SQL-Validator die Dimension in seine Explore-Abfragen einbezieht.
Weitere Informationen zu den Optionen, die Sie beim Erstellen oder Bearbeiten einer CI-Suite konfigurieren können, finden Sie auf dieser Seite im Abschnitt SQL-Validator-Optionen. Informationen zum Ausführen des SQL-Validators finden Sie auf der Dokumentationsseite Continuous-Integration-Suites ausführen.
Auf der Seite mit den Ausführungsergebnissen werden alle SQL-Fehler nach Dimension und Explore kategorisiert angezeigt. Außerdem finden Sie dort einen Link zum problematischen LookML-Code und einen Link Von hier aus explorieren für das Debugging:

Ressourcenverbrauch
Der SQL-Validator ist so konzipiert, dass er in Looker und in Ihrem Data Warehouse möglichst wenig Ressourcen verbraucht. Alle SQL-Validator-Abfragen enthalten eine LIMIT 0- und eine WHERE 1=2-Klausel. Diese Klauseln weisen den Abfrageplaner in Ihrem Data Warehouse an, keine Daten zu verarbeiten, sondern die Gültigkeit des SQL-Codes zu prüfen.
In BigQuery entspricht diese Art von Abfrage beispielsweise einem Probelauf. In BigQuery werden bei LIMIT 0-Abfragen keine Daten gescannt. Daher sollten Ihnen für die vom SQL-Validator ausgeführten Abfragen keine Kosten in Rechnung gestellt werden.
Dimensionen von der SQL-Validierung ausschließen
Möglicherweise möchten Sie bestimmte Dimensionen von der SQL-Validierung ausschließen, z. B. Dimensionen, die von einem Parameter abhängen, da der Wert des Parameters während der Validierung null ist und immer einen SQL-Fehler verursacht.
Sie können auch Dimensionen ausschließen, die keinen sql-Parameter haben, z. B. Dimensionen von type: distance, type: location oder type: duration.
Wenn Sie eine Dimension von der SQL-Validierung ausschließen möchten, können Sie die LookML der Dimension auf zwei Arten ändern:
Sie können eine
ci: ignore-Anweisung im Parametertagsder LookML-Definition der Dimension hinzufügen, wie im folgenden Beispiel gezeigt:dimension: addresses { sql: ${TABLE}.addresses ;; tags: ["ci: ignore"] }Sie können den Kommentar
-- ci: ignoredem Feldsqlder LookML Ihrer Dimension hinzufügen, wie im folgenden Beispiel gezeigt:dimension: addresses { sql: -- ci: ignore ${TABLE}.addresses ;; }
Continuous Integration und OAuth-Datenbankverbindungen
Wenn Ihr LookML-Projekt eine Datenbankverbindung verwendet, die für OAuth konfiguriert ist, können Nutzer automatisierter CI-Dienstkonten den interaktiven OAuth-Ablauf, der für die Authentifizierung bei der Datenbank erforderlich ist, nicht abschließen. Dies führt dazu, dass der SQL-Validator mit dem Fehler OAuth log in required fehlschlägt.
Wenn Sie den SQL-Validator für die Continuous Integration verwenden möchten, implementieren Sie eine der folgenden Behelfslösungen:
- Datenbankverbindung für die Verwendung eines Dienstkontos konfigurieren: Ändern Sie die Einstellung Authentifizierung der Datenbankverbindung, um ein Dienstkonto (z. B. Standardanmeldedaten für Anwendungen) anstelle von OAuth zu verwenden.
- Nicht-OAuth-Modell für CI verwenden: Erstellen Sie ein neues LookML-Modell, das eine Nicht-OAuth-Datenbankverbindung verwendet, und importieren Sie Ihre anderen Modelle in dieses Modell. Achten Sie darauf, dass der Looker CI-Nutzer Zugriff auf dieses neue Modell hat.
SQL-Validator-Optionen
Sie können mehrere Optionen angeben, wenn Sie eine Continuous Integration-Suite erstellen oder bearbeiten, um die Ausführung von SQL Validator zu konfigurieren. Die Optionen werden in den folgenden Abschnitten dieser Seite beschrieben:
- Explores, die abgefragt werden sollen
- Auszuschließende Explores
- Fehler früh erkennen
- Ausgeblendete ignorieren
- Nebenläufigkeit von Abfragen
- Inkrementelle Validierung
Explores, die abgefragt werden sollen
Standardmäßig führt der SQL-Validator die SQL-Validierung für alle Modelle und Explores in Ihrem LookML-Projekt aus.
Im Feld Explores für Abfragen können Sie die Explores und Modelle angeben, die in die SQL-Validierung einbezogen werden sollen.
Sie können Explores im folgenden Format angeben: model_name/explore_name
Wichtige Hinweise:
- Verwenden Sie für
model_nameden Namen der Modelldatei ohne die Erweiterung.model.lkml. Wenn Sie beispielsweise das inthelook.model.lkmldefinierte Modell angeben möchten, geben Siethelookein. - Verwenden Sie für
explore_namedenexplore_nameaus dem LookML-Parameterexplore. Wenn Sie beispielsweise das in Ihrem LookML-Projekt alsexplore: usersdefinierte Explore angeben möchten, geben Sieusersein. - Sie können eine durch Kommas getrennte Liste erstellen, um mehrere Explores anzugeben.
- Sie können den Platzhalter
*inmodel_nameoderexplore_nameverwenden.
Hier sind einige Beispiele:
Wenn Sie nur das Explore Users angeben möchten, das mit
explore: usersin der Dateithelook.model.lkmldefiniert ist, geben Sie Folgendes ein:thelook/usersWenn Sie die Explores mit den Namen
usersundordersin der Dateithelook.model.lkmlangeben möchten, geben Sie Folgendes ein:thelook/users, thelook/ordersWenn Sie alle Explores in
thelook.model.lkmlangeben möchten, geben Sie Folgendes ein:thelook/*Wenn Sie alle Explores mit dem Namen
usersin allen Modellen Ihres Projekts angeben möchten, geben Sie Folgendes ein:*/users
Auszuschließende Explores
Standardmäßig führt der SQL-Validator die SQL-Validierung für alle Modelle und Explores in Ihrem LookML-Projekt aus.
Im Feld Auszuschließende Explores können Sie die Explores und Modelle angeben, die von der SQL-Validierung ausgeschlossen werden sollen.
Sie können Explores im folgenden Format angeben: model_name/explore_name
Weitere Informationen zum Angeben von Explores für den SQL-Validator finden Sie im Abschnitt Explores für Abfragen.
Fehler früh erkennen
Standardmäßig führt der SQL-Validator eine Abfrage pro Explore mit allen Dimensionen in der Abfrage aus. Wenn diese Explore-Abfrage fehlschlägt, führt der SQL-Validator eine Explore-Abfrage für jede Dimension im Explore einzeln aus.
Für eine schnellere Validierung können Sie die Option Fail-Fast aktivieren. Dann führt der SQL-Validator nur die erste Abfrage für ein Explore aus, also die Abfrage, die alle Dimensionen auf einmal enthält. Wenn diese Abfrage einen Fehler zurückgibt, wird dieser Fehler vom SQL Validator in den Ergebnissen des CI-Laufs angezeigt und es wird mit dem nächsten zu validierenden Explore fortgefahren.
Wenn Fail-Fast aktiviert ist, wird die Validierung in der Regel schneller abgeschlossen. In den Ergebnissen des SQL-Validators wird jedoch nur der erste Fehler für jedes Explore angezeigt, auch wenn mehrere Dimensionen Fehler aufweisen. Das bedeutet, dass nach dem Beheben des ersten Fehlers bei der nächsten Ausführung des SQL-Validators möglicherweise ein weiterer Fehler angezeigt wird.
Ausgeblendete ignorieren
Aktivieren Sie das Feld Ausgeblendete ignorieren, wenn der SQL-Validator die LookML-Dimensionen ignorieren soll, die Ihre Looker-Entwickler mit hidden: yes definiert haben. Der SQL-Validator lässt diese Dimensionen bei der Validierung aus seinen Explore-Abfragen heraus.
Nebenläufigkeit von Abfragen
Standardmäßig führt der SQL-Validator nicht mehr als 10 Abfragen gleichzeitig aus, um Ihre Looker-Instanz nicht zu überlasten. Im Feld Nebenläufigkeit von Abfragen können Sie eine andere maximale Anzahl von Abfragen angeben, die der SQL-Validator gleichzeitig ausführen kann.
Der Höchstwert für das Feld Abfrage-Nebenläufigkeit ist auf die Einstellung Maximale Anzahl gleichzeitiger Abfragen für diese Verbindung für Ihre Datenbankverbindung beschränkt.
Wenn Sie während der SQL-Validierung eine Verlangsamung Ihrer Looker-Instanz feststellen, können Sie diesen Wert verringern.
Inkrementelle Validierung
Bei der inkrementellen Validierung werden Fehler entdeckt, die nur in einem bestimmten Entwicklungszweig vorhanden sind und noch nicht in die Produktionsumgebung übernommen wurden. Mit der inkrementellen Validierung können Entwickler die Fehler finden und beheben, für die sie verantwortlich sind, ohne von vorhandenen Fehlern im Projekt abgelenkt zu werden. Außerdem kann die Validierung dadurch schneller erfolgen, insbesondere bei LookML-Projekten, die viele Explores enthalten.
Bei der inkrementellen Validierung führt der SQL-Validator nur die Explore-Abfragen aus, die sich zwischen einer Entwicklungsversion (der Basisreferenz) und der Produktionsversion (der Zielreferenz) geändert haben. Der SQL-Validator gibt nur die Fehler zurück, die nur in der Entwicklungsversion vorhanden sind, auch wenn die Produktionsversion selbst Fehler enthält.
In den Validator-Ergebnissen werden alle Explores aufgeführt, die übersprungen wurden, weil sich ihr kompilierter SQL-Code im zu validierenden Zweig oder Commit nicht geändert hat. Ein Beispiel für Ergebnisse der inkrementellen Validierung finden Sie unter Ergebnisse für die inkrementelle Validierung ansehen.
Sie können die inkrementelle Validierung für den SQL-Validator aktivieren, indem Sie beim Erstellen oder Bearbeiten einer Continuous Integration-Suite im Abschnitt SQL-Validator das Kästchen Nur inkrementelle Fehler anklicken.
Beachten Sie bei der inkrementellen Validierung Folgendes:
- Die Einstellung für die inkrementelle Validierung gilt nicht für die Validierung des Produktionszweigs selbst, etwa bei manuellen Ausführungen im Produktionszweig. Beim Validieren des Produktionszweigs führt der SQL-Validator eine vollständige Validierung aus.
- Der Fail-Fast-Modus wird für inkrementelle Validierungsläufe nicht unterstützt, da einzelne Dimensionsabfragen erforderlich sind, um die inkrementellen Fehler aufzudecken, die für einen Entwicklungszweig des Projekts spezifisch sind.