LookML – Begriffe und Konzepte

Auf dieser Seite werden die folgenden Kernbegriffe und -konzepte definiert, auf die Sie bei der LookML-Entwicklung wahrscheinlich häufig stoßen:

Looks und benutzerdefinierte Dashboards werden auf dieser Seite nicht beschrieben, da Nutzer sie ohne LookML erstellen. Die Abfragen in diesen Dashboards basieren jedoch auf den LookML-Elementen, die auf dieser Seite beschrieben werden.

Im Looker-Glossar finden Sie eine umfassende Liste der Begriffe und Definitionen, die in Looker verwendet werden. Einen umfassenden Überblick über die LookML-Parameter, die Sie in einem LookML-Projekt verwenden können, finden Sie auf der Seite LookML-Kurzübersicht.

Informationen zu den Unterschieden zwischen ähnlichen Begriffen und Konzepten in Looker und Looker Studio finden Sie auf der Seite Nutzungsbedingungen und Konzepte für Looker und Looker Studio.

LookML-Projekt

In Looker ist ein Projekt eine Sammlung von Dateien, die die Objekte, Datenbankverbindungen und Benutzeroberflächenelemente beschreiben, die zum Ausführen von SQL-Abfragen verwendet werden. Auf der grundlegendsten Ebene beschreiben diese Dateien, in welcher Beziehung Ihre Datenbanktabellen zueinander stehen und wie Looker sie interpretieren sollte. Die Dateien können auch LookML-Parameter enthalten, mit denen die Optionen definiert oder geändert werden, die in der Looker-Benutzeroberfläche angezeigt werden. Jedes LookML-Projekt befindet sich in einem eigenen Git-Repository zur Versionsverwaltung.

Nachdem Sie Looker mit Ihrer Datenbank verbunden haben, können Sie die Datenbankverbindung angeben, die für Ihr Looker-Projekt verwendet werden soll.

Sie können über das Menü Entwickeln in Looker auf Ihre Projekte zugreifen. Weitere Informationen und Optionen finden Sie unter Auf Projektdateien zugreifen.

Informationen zum Erstellen eines neuen Projekts finden Sie unter Neues LookML-Projekt erstellen. Informationen zum Zugriff auf und zum Bearbeiten von Projektinformationen finden Sie unter Auf Projektinformationen zugreifen und sie bearbeiten.

Bestandteile eines Projekts

Ein LookML-Projekt kann Modelle, Ansichten und LookML-Dashboards enthalten, die jeweils aus anderen LookML-Elementen bestehen.

Wie im Diagramm dargestellt, sind dies einige der gängigen Dateitypen in einem LookML-Projekt:

  • Ein Modell enthält Informationen dazu, welche Tabellen verwendet werden sollen und wie sie verknüpft werden sollen. Hier definieren Sie in der Regel das Modell, die dazugehörigen Explores und Joins.
  • Eine Ansicht enthält Informationen dazu, wie auf Informationen aus einzelnen Tabellen (oder aus mehreren zusammengeführten Tabellen) zugegriffen oder wie diese berechnet werden. Hier definieren Sie normalerweise die Ansicht, ihre Dimensionen und Messwerte sowie ihre Feldsätze.
  • Ein Explore wird häufig innerhalb einer Modelldatei definiert, aber manchmal benötigen Sie eine separate Explore-Datei für eine abgeleitete Tabelle oder um ein Explore modellübergreifend zu extend oder verfeinern.
  • Eine Manifestdatei kann Anweisungen zur Verwendung von Dateien enthalten, die aus einem anderen Projekt importiert wurden, oder für die Lokalisierungseinstellungen Ihres Projekts.

Neben Modell-, Ansichts-, Explore- und Manifestdateien kann ein Projekt auch andere Dateitypen für Dinge wie integrierte Dashboards, Dokumentation, Lokalisierung und mehr enthalten. Weitere Informationen zu diesen Dateitypen sowie zu den anderen Dateitypen, die Sie in Ihrem LookML-Projekt haben können, finden Sie auf der Dokumentationsseite LookML-Projektdateien.

Diese Dateien ergeben zusammen ein Projekt. Wenn Sie Git zur Versionsverwaltung verwenden, wird jedes Projekt in der Regel durch sein eigenes Git-Repository gesichert.

Woher stammen LookML-Projekte und -Dateien?

Die am häufigsten verwendete Methode zum Erstellen von LookML-Dateien ist das Generieren eines LookML-Projekts aus Ihrer Datenbank. Sie können auch ein leeres Projekt erstellen und die zugehörigen LookML-Dateien manuell erstellen oder ein Projekt erstellen, indem Sie ein vorhandenes Git-Repository klonen.

Wenn Sie ein neues Projekt aus Ihrer Datenbank erstellen, erstellt Looker einen Basissatz an Dateien. Diese Dateien können Sie als Vorlage für die Erstellung eigener Projekte nutzen:

  • Mehrere view-Dateien, eine Datei für jede Tabelle in der Datenbank
  • Eine Modelldatei. Die Modelldatei deklariert ein Explore für jede Ansicht. Jede Explore-Deklaration enthält eine join-Logik, um allen Ansichten beizutreten, die von Looker ermittelt werden können, wenn sie mit dem Explore zusammenhängen.

Hier können Sie das Projekt genauer definieren, indem Sie nicht benötigte Ansichten und Explores entfernen und benutzerdefinierte Dimensionen und Messwerte hinzufügen.

Wichtige LookML-Strukturen

Wie in den Teilen eines Projektdiagramms gezeigt wird, enthält ein Projekt in der Regel eine oder mehrere Modelldateien, die Parameter enthalten, die ein Modell sowie die zugehörigen Explores und Joins definieren. Darüber hinaus enthalten Projekte in der Regel eine oder mehrere Ansichtsdateien, die jeweils Parameter zur Definition der Ansicht und ihrer Felder (einschließlich Dimensionen und Messwerte) sowie Feldsätzen enthalten. Das Projekt kann auch eine Projektmanifestdatei enthalten, mit der Sie Einstellungen auf Projektebene konfigurieren können. In diesem Abschnitt werden diese wichtigen Strukturen beschrieben.

Modell

Ein Modell ist ein individuelles Portal für die Datenbank. Das Portal bietet intuitive Möglichkeiten zur Datenexploration für bestimmte geschäftliche Benutzer. In einem LookML-Projekt können mehrere Modelle für dieselbe Datenbankverbindung vorhanden sein. Mit den einzelnen Modellen werden unter Umständen unterschiedliche Daten für unterschiedliche Benutzer bereitgestellt. Vertriebsmitarbeiter benötigen beispielsweise andere Daten als Vorstandsmitglieder. Um den jeweiligen Benutzern angemessene Datenbankansichten bereitstellen zu können, würden Sie vermutlich zwei Modelle entwickeln.

Ein Modell gibt eine Verbindung zu einer einzelnen Datenbank an. Außerdem definiert der Entwickler die Explores des Modells in der Modelldatei. Standardmäßig werden Explores unter dem Namen des Modells organisiert, in dem sie definiert sind. Ihre Nutzer sehen die Modelle im Menü Explore.

Weitere Informationen zu Modelldateien, einschließlich der Struktur und allgemeinen Syntax von Modelldateien, finden Sie auf der Dokumentationsseite Dateitypen in einem LookML-Projekt.

Auf der Seite Modellparameter finden Sie weitere Informationen zu den LookML-Parametern, die in einer Modelldatei verwendet werden können.

Ansehen

In einer Ansichtsdeklaration wird eine Liste mit Feldern (Dimensionen oder Messwerten) und ihrer Verknüpfung mit einer zugrunde liegenden bzw. abgeleiteten Tabelle definiert. In LookML verweist eine Ansicht normalerweise auf eine zugrunde liegende Datenbanktabelle, kann aber auch eine abgeleitete Tabelle darstellen.

Eine Ansicht kann auch mit anderen Ansichten verbunden sein. Die Beziehung zwischen Ansichten wird normalerweise im Rahmen einer Explore-Deklaration in einer Modelldatei definiert.

Standardmäßig werden die Namen der Ansichten vor den Namen der Dimensionen und Messwerte in der Datentabelle des Explore angezeigt. Diese Namenskonvention macht deutlich, zu welcher Ansicht das Feld gehört. Im folgenden Beispiel werden die Ansichtsnamen Orders und Users vor den Namen der Felder in der Datentabelle aufgeführt:

Datentabelle für eine Beispielabfrage, wobei die Felder „Erstellungsdatum“, „Nutzer-ID“ und „Anzahl der Aufträge“ ausgewählt sind.

Weitere Informationen zu Ansichtsdateien, einschließlich der Struktur und allgemeinen Syntax von Ansichtsdateien, finden Sie in der Dokumentation zu Dateitypen in einem LookML-Projekt.

Weitere Informationen zu den LookML-Parametern, die in einer Ansichtsdatei verwendet werden können, finden Sie auf der Dokumentationsseite Ansichtsparameter.

Entdecken

Ein Explore ist eine Ansicht, die Nutzer abfragen können. Sie können sich ein Explore als Ausgangspunkt für eine Abfrage vorstellen. In einer SQL-Anweisung entspräche dies dem FROM. Nicht alle Ansichten sind Explores, da nicht alle Ansichten ein interessantes Objekt beschreiben. Bei einer Ansicht vom Typ Staaten, die einer Suchtabelle für die Namen von Staaten entspricht, ist beispielsweise kein Explore erforderlich, weil geschäftliche Nutzer hier nie eine Abfrage starten müssen. Geschäftsnutzer möchten hingegen wahrscheinlich eine Möglichkeit haben, die Ansicht Bestellungen abzufragen. Daher ist es sinnvoll, ein Explore für Bestellungen zu definieren. Informationen dazu, wie Nutzer mit Explores Ihre Daten abfragen, finden Sie auf der Dokumentationsseite Explores in Looker ansehen und mit ihnen interagieren.

In Looker können die Nutzer die im Menü Explore aufgeführten Explores sehen. Explores werden unter den Namen der Modelle aufgeführt, zu denen sie gehören.

Konventionsgemäß werden Explores in der Modelldatei mit dem Parameter explore deklariert. Im folgenden Beispiel einer Modelldatei wird das Explore orders für eine E-Commerce-Datenbank in der Modelldatei definiert. Die Ansichten orders und customers, auf die in der explore-Deklaration verwiesen wird, sind in den entsprechenden Ansichtsdateien definiert.

connection: order_database
include: "filename_pattern"

explore: orders {
  join: customers {
    sql_on: ${orders.customer_id} = ${customers.id} ;;
  }
}

In diesem Beispiel wird mit dem Parameter connection die Datenbankverbindung für das Modell angegeben und mit dem Parameter include die Dateien, auf die das Modell verweisen kann.

Die Deklaration explore in diesem Beispiel gibt auch Join-Beziehungen zwischen Ansichten an. Weitere Informationen zu join-Deklarationen finden Sie auf dieser Seite im Abschnitt zu Joins. Weitere Informationen zu den LookML-Parametern, die mit dem Parameter join verwendet werden können, finden Sie auf der Dokumentationsseite Join-Parameter.

Dimensions- und Messwertfelder

Ansichten enthalten Felder, hauptsächlich Dimensionen und Messwerte. Sie sind die Grundbausteine für Looker-Abfragen.

In Looker ist eine Dimension ein gruppierbares Feld, anhand dessen Abfrageergebnisse gefiltert werden können. Mögliche Werte:

  • Ein Attribut, das direkt mit einer Spalte in einer zugrunde liegenden Tabelle verknüpft ist
  • Einen Fakt oder numerischen Wert
  • Einen abgeleiteten Wert, der auf der Grundlage der Werte anderer Felder aus einer Zeile errechnet wurde

In Looker werden Dimensionen immer in der GROUP BY-Klausel der von Looker generierten SQL-Anweisung aufgeführt.

Die Dimensionen für die Ansicht Produkte können beispielsweise den Produktnamen, das Produktmodell, die Farbe, den Produktpreis, das Erstellungsdatum und das Enddatum des Produkts enthalten.

Ein Messwert ist ein Feld, für das eine SQL-Aggregatfunktion wie COUNT, SUM, AVG, MIN oder MAX verwendet wird. Jedes Feld, das auf der Grundlage der Werte anderer Messwerte errechnet wurde, ist ebenfalls ein Messwert. Messwerte können zur Filterung gruppierter Werte genutzt werden. Messwerte für die Ansicht Verkäufe können beispielsweise die Gesamtzahl der verkauften Artikel (Anzahl), den Gesamtverkaufspreis (Summe) und den durchschnittlichen Verkaufspreis (ein Durchschnittswert) umfassen.

Das Verhalten und die erwarteten Werte für ein Feld hängen vom deklarierten Typ ab, z. B. string, number oder time. Bei Messwerten umfassen die Typen Aggregatfunktionen wie sum und percent_of_previous. Weitere Informationen finden Sie unter Dimensionentypen und Messwerttypen.

In Looker werden Felder auf der Seite Explore in der Feldauswahl links auf der Seite aufgelistet. Sie können eine Ansicht im Field Picker erweitern, um die Liste der Felder anzuzeigen, die aus dieser Ansicht abgefragt werden können.

Gemäß Konvention werden Felder als Teil der Ansicht, zu der sie gehören, deklariert, und in einer Ansichtsdatei gespeichert. Im folgenden Beispiel sehen Sie mehrere Dimensions- und Messwertdeklarationen. Beachten Sie die Verwendung des Substitutionsoperators ($), um auf Felder zu verweisen, ohne einen SQL-Spaltennamen mit vollständigem Geltungsbereich zu verwenden.

Im Folgenden sehen Sie einige Beispieldeklarationen von Dimensionen und Messwerten:

view: orders {
  dimension: id {
    primary_key: yes
    type: number
    sql: ${TABLE}.id ;;
  }
  dimension: customer_id {
    sql: ${TABLE}.customer_id ;;
  }
  dimension: amount {
    type: number
    value_format: "0.00"
    sql: ${TABLE}.amount ;;
  }
  dimension_group: created {
    type: time
    timeframes: [date, week]
    sql: ${TABLE}.created_at ;;
  }
  measure: count {
    type: count           # creates sql COUNT(orders.id)
    sql: ${id} ;;
  }
  measure: total_amount {
    type: sum             # creates sql SUM(orders.amount)
    sql: ${amount} ;;
  }
}

Sie können auch eine dimension_group definieren, mit der mehrere zeitbezogene Dimensionen gleichzeitig erstellt werden, und filter-Felder, die eine Vielzahl erweiterter Anwendungsfälle umfassen, z. B. Filtervorlagen.

Vollständige Details zur Deklaration von Feldern und zu den verschiedenen anwendbaren Einstellungen finden Sie auf der Dokumentationsseite Feldparameter.

Joins

Im Rahmen einer explore-Deklaration gibt jede join-Deklaration eine Ansicht an, die mit dem Explore verbunden werden kann. Wenn ein Benutzer eine Abfrage erstellt, die Felder aus mehreren Ansichten enthält, erzeugt Looker automatisch eine SQL-Verbindungslogik, mit der alle Felder korrekt integriert werden.

Hier ein Beispiel für eine Zusammenführung in einer explore-Deklaration:

# file: ecommercestore.model.lookml

connection: order_database
include: "filename_pattern"   # include all the views

explore: orders {
  join: customers {
    sql_on: ${orders.customer_id} = ${customers.id} ;;
  }
}

Weitere Informationen finden Sie auf der Dokumentationsseite Joins in LookML verwenden.

Projektmanifestdateien

Ihr Projekt kann eine Projektmanifestdatei enthalten, die für Einstellungen auf Projektebene verwendet wird. So können Sie beispielsweise andere Projekte angeben, die in das aktuelle Projekt importiert werden sollen, LookML-Konstanten definieren, Einstellungen für die Modelllokalisierung festlegen und Ihrem Projekt Erweiterungen und benutzerdefinierte Visualisierungen hinzufügen.

Jedes Projekt kann nur über eine Manifestdatei verfügen. Die Datei muss den Namen manifest.lkml haben und sich auf der Stammebene Ihres Git-Repositorys befinden. Wenn Sie Ordner in der IDE verwenden, achten Sie darauf, dass die Datei manifest.lkml im Stammverzeichnis der Verzeichnisstruktur Ihres Projekts abgelegt wird.

Verwenden Sie zum Import von LookML-Dateien aus einem anderen Projekt die Projektmanifestdatei, um einen Namen für Ihr aktuelles Projekt und den Speicherort externer Projekte anzugeben, die lokal oder remote gespeichert sein können. Beispiel:

# This project
project_name: "my_project"

# The project to import
local_dependency: {
  project: "my_other_project"
}

remote_dependency: ga_360_block {
  url: "https://github.com/llooker/google_ga360"
  ref: "4be130a28f3776c2bf67a9acc637e65c11231bcc"
}

Nachdem Sie die externen Projekte in der Projektmanifestdatei definiert haben, können Sie mit dem Parameter include in Ihrer Modelldatei Dateien aus diesen externen Projekten Ihrem aktuellen Projekt hinzufügen. Beispiel:

include: "//my_other_project/imported_view.view"
include: "//ga_360_block/*.view"

Weitere Informationen finden Sie auf der Dokumentationsseite Dateien aus anderen Projekten importieren.

Verwenden Sie zum Hinzufügen von Lokalisierung zu Ihrem Modell die Projektmanifestdatei, um die Standardlokalisierungseinstellungen festzulegen. Beispiel:

localization_settings: {
  default_locale: en
  localization_level: permissive
}

Die Festlegung von Standardlokalisierungseinstellungen ist ein Schritt in der Lokalisierung Ihres Modells. Weitere Informationen finden Sie auf der Dokumentationsseite Lokalisieren Ihres LookML-Modells.

Sets

In Looker ist ein Satz eine Liste, mit der eine Gruppe von Feldern definiert wird, die zusammen verwendet werden. In der Regel wird mit Sets angegeben, welche Felder angezeigt werden sollen, nachdem ein Nutzer Daten aufgeschlüsselt hat. Drill-Sätze werden Feld für Feld angegeben. Sie erhalten also die vollständige Kontrolle darüber, welche Daten angezeigt werden, wenn ein Benutzer in einer Tabelle oder einem Dashboard auf einen Wert klickt. Sätze können auch als Sicherheitsfunktion genutzt werden – etwa für die Definition von Feldgruppen, die nur bestimmten Benutzern angezeigt werden. Das folgende Beispiel zeigt eine festgelegte Deklaration in einer Ansicht order_items, mit der Felder definiert werden, die relevante Details zu einem gekauften Artikel auflisten. Beachten Sie, dass der Satz über die Angabe zum Umfang auf Felder aus anderen Ansichten verweist.

set: order_items_stats_set {
  fields: [
    id,  # scope defaults to order_items view
    orders.created_date,  # scope is "orders" view
    orders.id,
    users.name,
    users.history,  # show all products this user has purchased
    products.item_name,
    products.brand,
    products.category,
    total_sale_price
  ]
}

Auf der Dokumentationsseite des Parameters set finden Sie vollständige Details zur Verwendung von Sätzen.

Aufschlüsseln

In Looker können Sie ein Feld konfigurieren, sodass Benutzer die Daten weiter aufschlüsseln können. Drilldown-Vorgänge funktionieren sowohl in Abfrageergebnistabellen als auch in Dashboards. Beim Drilldown-Vorgang wird eine neue Abfrage gestartet, die durch den Wert eingeschränkt ist, auf den Sie klicken.

Die Funktion verhält sich bei Dimensionen anders als bei Messwerten:

  • Wenn Sie eine Dimension aufschlüsseln, wird bei der neuen Abfrage nach dem aufgeschlüsselten Wert gefiltert. Wenn Sie beispielsweise in einer Abfrage mit nach Datum sortierten Kundenbestellungen auf ein bestimmtes Datum klicken, zeigt die neue Abfrage nur Bestellungen an diesem Datum an.
  • Beim Drilldown in einem Messwert wird mit der neuen Abfrage der Dataset angezeigt, der zu dem Messwert beigetragen hat. Wenn Sie beispielsweise Detailinformationen zu einer Anzahl aufrufen, werden über die Abfrage die Zeilen für die Berechnung dieser Anzahl angezeigt. Wenn Sie Detailinformationen zu Höchst-, Mindest- und Durchschnittsmesswerten aufrufen, werden weiterhin alle Zeilen, die zu diesem Messwert beigetragen haben, angezeigt. Das bedeutet, dass beim Anzeigen von Detailinformationen zu einem Höchstmesswert alle Zeilen angezeigt werden, die für die Berechnung des Höchstwerts verwendet wurden, und nicht nur die einzelne Zeile mit dem Höchstwert.

Welche Felder bei der neuen Aufschlüsselungsabfrage angezeigt werden, kann in einem Set oder über den Parameter drill_fields (für Felder) oder drill_fields (für Ansichten) festgelegt werden.

Abgeleitete Tabellen

Eine abgeleitete Tabelle ist eine Abfrage, deren Ergebnisse wie eine tatsächliche Tabelle in der Datenbank verwendet werden. Abgeleitete Tabellen werden mit dem Parameter derived_table in einer view-Deklaration erstellt. Looker greift auf abgeleitete Tabellen so zu, als wären sie physische Tabellen mit einem eigenen Satz von Spalten. Eine abgeleitete Tabelle wird als eigene Ansicht dargestellt und definiert Dimensionen und Messwerte auf die gleiche Weise wie herkömmliche Ansichten. Die Ansicht einer abgeleiteten Tabelle kann wie jede andere Ansicht abgefragt und mit anderen Ansichten verbunden werden.

Abgeleitete Tabellen können auch als persistente abgeleitete Tabellen (PDTs) definiert werden. Dies sind abgeleitete Tabellen, die in ein Scratch-Schema in Ihrer Datenbank geschrieben und nach dem Zeitplan, den Sie mit einer Persistenzstrategie festgelegt haben, automatisch neu generiert werden.

Weitere Informationen finden Sie auf der Dokumentationsseite Abgeleitete Tabellen in Looker.

Datenbankverbindung

Ein weiteres wichtiges Element eines LookML-Projekts ist die Datenbankverbindung, die Looker zum Ausführen von Abfragen in Ihrer Datenbank verwendet. Looker-Administratoren verwenden die Seite „Verbindungen“, um Datenbankverbindungen zu konfigurieren. LookML-Entwickler geben mithilfe des Parameters connection in einer Modelldatei an, welche Verbindung für das Modell verwendet werden soll. Wenn Sie ein LookML-Projekt aus Ihrer Datenbank generieren, füllt Looker automatisch den Parameter connection in der Modelldatei.

Berücksichtigung der Groß-/Kleinschreibung

Beachten Sie beim Verweisen auf LookML-Elemente, dass bei LookML die Groß-/Kleinschreibung berücksichtigt wird. Looker zeigt einen Hinweis an, wenn Sie auf ein nicht vorhandenes Element verweisen.

Angenommen, Sie haben ein Explore mit dem Namen e_flights_pdt und ein LookML-Entwickler verwendet eine falsche Großschreibung (e_FLIGHTS_pdt), um auf dieses Explore zu verweisen. In diesem Beispiel zeigt die Looker-IDE eine Warnung an, dass das Explore e_FLIGHTS_pdt nicht vorhanden ist. Außerdem schlägt die IDE den Namen eines vorhandenen Explores vor, nämlich e_flights_pdt:

Wenn Ihr Projekt jedoch sowohl e_FLIGHTS_pdt als auch e_flights_pdt enthält, kann die Looker-IDE Ihren Fehler nicht korrigieren. Überlegen Sie sich daher, welche Version Sie verwenden möchten. Im Allgemeinen empfiehlt es sich, bei der Benennung von LookML-Objekten Kleinbuchstaben zu verwenden.

Bei den Namen von IDE-Ordnern wird außerdem zwischen Groß- und Kleinschreibung unterschieden. Bei der Angabe von Dateipfaden müssen Sie stets die richtige Groß-/Kleinschreibung von Ordnernamen verwenden. Wenn Sie beispielsweise einen Ordner mit dem Namen Views haben, müssen Sie dieselbe Groß- und Kleinschreibung im Parameter include verwenden. Auch hier gibt die Looker-IDE einen Fehler an, wenn Ihre Schreibweise nicht mit der eines vorhandenen Ordners im Projekt übereinstimmt:

Die Looker IDE zeigt eine Warnung an, die besagt, dass die Einfügung mit keiner Datei übereinstimmt.