LookML – Begriffe und Konzepte

Auf dieser Seite werden die folgenden zentralen Begriffe 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. Ihre Abfragen basieren jedoch auf den zugrunde liegenden LookML-Elementen, die auf dieser Seite erläutert 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.

LookML-Projekt

In Looker ist ein Projekt eine Sammlung von Dateien, die die Objekte, Datenbankverbindungen und Elemente der Benutzeroberfläche 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 in der Looker-Benutzeroberfläche angezeigten Optionen definiert oder geändert 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 für Ihr Looker-Projekt angeben.

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

Informationen zum Erstellen eines neuen Projekts finden Sie unter Neues LookML-Projekt erstellen und Projektinformationen aufrufen und 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 einige der häufigsten Dateitypen in einem LookML-Projekt aufgeführt:

  • Ein model enthält Informationen dazu, welche Tabellen verwendet werden sollen und wie sie verknüpft werden sollen. Hier definieren Sie in der Regel das Modell sowie die zugehörigen Explores und Joins.
  • Eine Ansicht enthält Informationen darüber, wie Sie auf Informationen aus den einzelnen Tabellen (oder aus mehreren verknüpften Tabellen) zugreifen oder diese berechnen können. 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 erweitern 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 besteht darin, ein LookML-Projekt aus Ihrer Datenbank zu generieren. Sie können auch ein leeres Projekt erstellen und die zugehörigen LookML-Dateien manuell erstellen oder ein Projekt durch Klonen eines vorhandenen Git-Repositorys erstellen.

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 model-Datei. 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 sich auf das Explore beziehen.

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. Ein Entwickler definiert auch die Explores eines Modells innerhalb der Modelldatei. Standardmäßig werden Explores unter dem Modellnamen organisiert, in dem sie definiert sind. Ihre Nutzer sehen Modelle im Menü Erkunden.

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

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

Ansehen

Eine Ansichtsdeklaration definiert eine Liste von Feldern (Dimensionen oder Kennzahlen) und deren Verknüpfung mit einer zugrunde liegenden oder abgeleiteten Tabelle. 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 in der Explore-Datentabelle am Anfang der Namen von Dimensionen und Messwerten 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 das Explore als Ausgangspunkt für eine Abfrage oder, in SQL-Begriffen, als FROM in einer SQL-Anweisung vorstellen. Nicht alle Ansichten sind Explores, da nicht alle Ansichten ein interessantes Objekt beschreiben. Beispielsweise ist für die Ansicht Status, die einer Suchtabelle für Namen von Bundesstaaten entspricht, kein Explore erforderlich, da Geschäftsnutzer diese nie direkt abfragen müssen. Andererseits möchten Geschäftsnutzer wahrscheinlich eine Möglichkeit haben, eine Orders-Ansicht abzufragen. Daher ist es sinnvoll, ein Explore für Orders 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 Ihre Nutzer Explores im Menü Explore 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 der Parameter connection verwendet, um die Datenbankverbindung für das Modell anzugeben, und der Parameter include, um die Dateien anzugeben, 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 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. Dies kann Folgendes sein:

  • 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 des von Looker generierten SQL-Codes angezeigt.

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, das eine SQL-Aggregatfunktion wie COUNT, SUM, AVG, MIN oder MAX verwendet. 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 in den Artikeln zu Dimensionstypen 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.

In der Dokumentation zu Feldparametern finden Sie ausführliche Informationen zum Deklarieren von Feldern und zu den verschiedenen Einstellungen, die darauf angewendet werden können.

Joins

Im Rahmen einer explore-Deklaration gibt jede join-Deklaration eine Ansicht an, die mit dem Explore verknüpft 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 einen Join 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 Working with Joins in LookML (Mit Joins in LookML arbeiten).

Projektmanifestdateien

Ihr Projekt kann eine Projektmanifestdatei enthalten, die für Einstellungen auf Projektebene verwendet wird, z. B. zum Festlegen anderer Projekte für den Import in das aktuelle Projekt, zum Definieren von LookML-Konstanten, zum Festlegen der Einstellungen für die Modelllokalisierung und zum Hinzufügen von Erweiterungen und benutzerdefinierten Visualisierungen zu Ihrem Projekt.

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 den include-Parameter in Ihrer Modelldatei verwenden, um Ihrem aktuellen Projekt Dateien aus diesem externen Projekt hinzuzufü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.

Sätze

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. Gruppen können auch als Sicherheitsfunktion verwendet werden, um Feldgruppen zu definieren, die für bestimmte Benutzer sichtbar sind. 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
  ]
}

Ausführliche Informationen zur Verwendung von Sets finden Sie auf der Dokumentationsseite zum Parameter set.

Drilldown

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 Kundenaufträgen nach Datum 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 Daten nach Maximal-, Minimal- und Durchschnittswerten aufschlüsseln, werden weiterhin alle Zeilen angezeigt, die zu diesem Messwert beigetragen haben. Das bedeutet, dass beim Aufschlüsseln eines Maximalwerts beispielsweise alle Zeilen angezeigt werden, die zur Berechnung des Maximalwerts verwendet wurden, und nicht nur eine einzelne Zeile für den Maximalwert.

Die Felder, die für die neue Aufschlüsselungsabfrage angezeigt werden sollen, können durch einen Satz oder den drill_fields-Parameter (für Felder) oder den drill_fields-Parameter (für Ansichten) definiert werden.

Abgeleitete Tabellen

Eine abgeleitete Tabelle ist eine Abfrage, deren Ergebnisse so verwendet werden, als wäre sie eine tatsächliche Tabelle in der Datenbank. Abgeleitete Tabellen werden mithilfe des Parameters 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, bei denen es sich um abgeleitete Tabellen handelt, 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 warnt Sie, wenn Sie auf ein nicht vorhandenes Element verwiesen haben.

Angenommen, Sie haben ein Explore mit dem Namen e_flights_pdt und ein LookML-Entwickler verwendet eine falsche Groß- und Kleinschreibung (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 namens Views haben, müssen Sie diese Groß- und Kleinschreibung auch im Parameter include verwenden. Auch hier zeigt die Looker-IDE einen Fehler an, wenn Ihre Großschreibung nicht mit einem vorhandenen Ordner in Ihrem Projekt übereinstimmt:

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