Continuous Integration SQL Validator

Mit dem SQL-Validator für die kontinuierliche 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:

  1. Für jedes Explore in Ihrem Projekt führt der SQL-Validator eine Explore-Abfrage aus, die alle Dimensionen im Explore enthält.
  2. Wenn Looker einen Fehler für die Explore-Abfrage zurückgibt, führt die SQL-Validierung 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:

Details 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 vom SQL-Validator nach Dimension und Explore kategorisiert. Außerdem sind ein Link zum problematischen LookML-Code und ein Link zum Debuggen enthalten:

Ergebnisseite für Continuous Integration mit Ergebnissen des SQL-Validators

Ressourcenverbrauch

Der SQL-Validator ist so konzipiert, dass er möglichst wenige Ressourcen in Looker und in Ihrem Data Warehouse 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 ähnelt diese Art von Abfrage beispielsweise dem Ausführen einer Probelaufabfrage in BigQuery. Bei BigQuery werden bei LIMIT 0-Abfragen keine Daten gescannt. Daher sollten Ihnen die Abfragen, die vom SQL-Validator ausgeführt werden, nicht 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.

Möglicherweise möchten Sie auch Dimensionen ausschließen, für die kein sql-Parameter vorhanden ist, 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 Parameter tags der 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: ignore dem Feld sql der LookML-Datei Ihrer Dimension hinzufügen, wie im folgenden Beispiel gezeigt:

    dimension: addresses {
      sql:
        -- ci: ignore
        ${TABLE}.addresses ;;
    }
    

Optionen für den SQL-Validator

Sie können mehrere Optionen angeben, wenn Sie eine Suite für die kontinuierliche Integration erstellen oder bearbeiten, um zu konfigurieren, wie SQL Validator ausgeführt wird. Die Optionen werden in den folgenden Abschnitten dieser Seite beschrieben:

Abzufragende Explores

Standardmäßig führt der SQL-Validator die SQL-Validierung für alle Modelle und Explores in Ihrem LookML-Projekt aus.

Im Feld Zu analysierende Explores 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_name den Namen der Modelldatei ohne die Erweiterung .model.lkml. Wenn Sie beispielsweise das in thelook.model.lkml definierte Modell angeben möchten, geben Sie thelook ein.
  • Verwenden Sie für explore_name den explore_name aus dem LookML-Parameter explore. Wenn Sie beispielsweise das als explore: users definierte Explore in Ihrem LookML-Projekt angeben möchten, geben Sie users ein.
  • Sie können eine durch Kommas getrennte Liste erstellen, um mehrere Explores anzugeben.
  • Sie können den Platzhalter * in model_name oder explore_name verwenden.

Hier sind einige Beispiele:

  • Wenn Sie nur das Explore Users angeben möchten, das mit explore: users in der Datei thelook.model.lkml definiert ist, geben Sie Folgendes ein:

    thelook/users
    
  • Wenn Sie die Explores mit den Namen users und orders in der Datei thelook.model.lkml angeben möchten, geben Sie Folgendes ein:

    thelook/users, thelook/orders
    
  • Wenn Sie alle Explores in thelook.model.lkml angeben möchten, geben Sie Folgendes ein:

    thelook/*
    
  • Wenn Sie jedes Explore mit dem Namen users in 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.

Mit dem Feld Explores to exclude (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 Abzufragende Explores.

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 für jede Dimension im Explore eine separate Explore-Abfrage aus.

Für eine schnellere Validierung können Sie die Option Fail fast aktivieren. In diesem Fall wird vom SQL-Validator nur die erste Abfrage für ein Explore ausgeführt, die alle Dimensionen gleichzeitig enthält. Wenn für diese Abfrage ein Fehler zurückgegeben wird, wird dieser Fehler in den Ergebnissen des CI-Laufs angezeigt und die Validierung wird mit dem nächsten zu validierenden Explore fortgesetzt.

Wenn Fail fast aktiviert ist, wird die Validierung in der Regel schneller abgeschlossen. In den Ergebnissen der SQL-Validierung 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 beim nächsten Ausführen des SQL-Validators möglicherweise ein zusätzlicher 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 eine Überlastung Ihrer Looker-Instanz zu vermeiden. 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 Maximalwert für das Feld Nebenläufigkeit von Abfragen ist auf die Einstellung Maximale Anzahl gleichzeitiger Abfragen für diese Verbindung für Ihre Datenbankverbindung begrenzt.

Wenn Sie feststellen, dass Ihre Looker-Instanz während der SQL-Validierung langsamer wird, können Sie diesen Wert verringern.

Inkrementelle Validierung

Bei der inkrementellen Validierung werden Fehler identifiziert, die nur in einem bestimmten Entwicklungszweig vorhanden sind und noch nicht in die Produktionsumgebung übernommen wurden. Die inkrementelle Validierung hilft Entwicklern, die Fehler zu finden und zu beheben, für die sie verantwortlich sind, ohne durch vorhandene Fehler im Projekt abgelenkt zu werden. Außerdem kann die Validierung dadurch beschleunigt werden, insbesondere bei LookML-Projekten mit vielen Explores.

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 für die Entwicklungsversion spezifisch sind, auch wenn die Produktionsversion selbst Fehler enthält.

In den Validierungsergebnissen gibt der SQL-Validator jedes Explore an, das übersprungen wurde, weil sich das kompilierte SQL im zu validierenden Branch oder Commit nicht geändert hat. Ein Beispiel für Ergebnisse der inkrementellen Validierung finden Sie unter Ergebnisse der inkrementellen 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 Bereich SQL-Validator das Kästchen Nur inkrementelle Fehler aktivieren.

Beachten Sie bei der inkrementellen Validierung Folgendes:

  • Die Einstellung für die inkrementelle Validierung gilt nicht, wenn der SQL-Validator den Produktionszweig selbst validiert, z. B. 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.