LookML – Begriffe und Konzepte

Auf dieser Seite werden die folgenden zentralen Begriffe und Konzepte definiert, die Ihnen bei der Entwicklung von LookML häufig begegnen werden:

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. Eine umfassende Übersicht über die LookML-Parameter, die Sie in einem LookML-Projekt verwenden können, finden Sie auf der Kurzreferenz zu LookML.

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 einfachsten Ebene beschreiben diese Dateien, wie Ihre Datenbanktabellen zueinander in Beziehung stehen und wie Looker sie interpretieren soll. 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 zur Versionsverwaltung in einem eigenen Git-Repository.

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

Sie können über das Menü Entwickeln in Looker 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. Informationen zum Zugreifen auf und Ändern von vorhandenen LookML-Projekten finden Sie unter Projektinformationen aufrufen und bearbeiten.

Bestandteile eines Projekts

Ein LookML-Projekt kann Modelle, Ansichten und LookML-Dashboards enthalten, von denen jedes aus anderen LookML-Elementen besteht.

Wie im Diagramm dargestellt, sind im Folgenden einige der häufigsten Dateitypen in einem LookML-Projekt aufgeführt:

  • Ein model enthält Informationen dazu, welche Tabellen verwendet und wie sie verknüpft werden sollen. Hier definieren Sie normalerweise das Modell, seine Explores und Joins.
  • Eine Ansicht enthält Informationen dazu, wie auf Informationen aus den einzelnen Tabellen (oder in mehreren verknüpften Tabellen) zugegriffen werden kann oder wie auf diese Informationen zugegriffen werden kann. In der Regel definieren Sie hier die Ansicht, ihre Dimensionen und Kennzahlen sowie ihre Feldsätze.
  • Ein Explore wird oft in einer Modelldatei definiert. Manchmal benötigen Sie jedoch eine separate Explore-Datei für eine abgeleitete Tabelle oder um ein Explore modellübergreifend zu erweitern oder zu verfeinern.
  • Eine Manifestdatei kann eine Anleitung zur Verwendung von Dateien, die aus einem anderen Projekt importiert wurden, oder für die Lokalisierungseinstellungen Ihres Projekts enthalten.

Neben Modell-, Ansichts-, Explore- und Manifestdateien kann ein Projekt weitere Dateitypen im Zusammenhang mit Dingen wie integrierten 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 für die Versionsverwaltung verwenden, wird in der Regel jedes Projekt durch ein eigenes Git-Repository gesichert.

Woher stammen LookML-Projekte und -Dateien?

Die gängigste 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. Die Modelldatei deklariert ein Explore für jede Ansicht. Jede Explore-Deklaration enthält join-Logik zum Zusammenführen aller Ansichten, die von Looker als mit dem Explore zusammenhängend erkannt werden.

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, enthält ein Projekt in der Regel eine oder mehrere Modelldateien, die Parameter zur Definition eines Modells und seiner Explores und Joins enthalten. Darüber hinaus enthalten Projekte in der Regel eine oder mehrere Ansichtsdateien, die jeweils Parameter enthalten, die diese Ansicht und ihre Felder (einschließlich Dimensionen und Messwerte) sowie Feldsätze definieren. 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 mit einer einzelnen Datenbank an. Ein Entwickler definiert in der Modelldatei auch die Explores eines Modells. Standardmäßig werden Explores unter dem Modellnamen organisiert, in dem sie definiert sind. Ihre Nutzer sehen Modelle im Menü Expl. Datenanalyse.

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 Tabelle oder abgeleiteten Tabelle. In LookML verweist eine Ansicht normalerweise auf eine zugrunde liegende Datenbanktabelle, sie kann aber auch eine abgeleitete Tabelle darstellen.

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

Standardmäßig werden Ansichtsnamen 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, bei der die Felder Erstellungsdatum, User-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 Parameter anzeigen.

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 Bundesländer, die einer Suchtabelle für Namen von Bundesstaaten entspricht, kein Explore erforderlich, da geschäftliche Benutzer diese niemals direkt abfragen müssen. Geschäftliche Nutzer hingegen möchten wahrscheinlich eine Orders-Ansicht abfragen, daher ist es sinnvoll, ein Explore für Orders zu definieren. Informationen dazu, wie Nutzer zum Abfragen Ihrer Daten mit Explores interagieren, finden Sie auf der Dokumentationsseite Explores in Looker ansehen und mit ihnen interagieren.

In Looker können Ihre Nutzer Explores im Menü Explore anzeigen. 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 Deklaration explore verwiesen wird, sind an anderer Stelle in ihren jeweiligen 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 soll.

Mit der Deklaration explore werden in diesem Beispiel auch Join-Beziehungen zwischen Ansichten angegeben. 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 Verknüpfungsparameter.

Dimensions- und Messwertfelder

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

In Looker ist eine Dimension ein gruppierbares Feld, anhand dessen Abfrageergebnisse gefiltert werden können. Es kann sich dabei um einen der folgenden Typen handeln:

  • 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 der Ansicht Produkte können beispielsweise Produktname, Produktmodell, Produktfarbe, Produktpreis, Erstellungsdatum und 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 (eine Summe) und den durchschnittlichen Verkaufspreis (einen 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 enthalten die Typen Aggregatfunktionen wie sum und percent_of_previous. Weitere Informationen finden Sie in den Artikeln Dimensionstypen und Messwerttypen.

In Looker werden Felder auf der Seite Explore im Feldauswahl auf der linken Seite aufgelistet. Sie können eine Ansicht im Field Picker erweitern, um die Liste der Felder anzuzeigen, die für die Abfrage aus dieser Ansicht zur Verfügung stehen.

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. Sie sehen, dass der Substitutionsoperator ($) verwendet wird, 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 ein dimension_group definieren, mit dem mehrere zeitbezogene Dimensionen gleichzeitig erstellt werden, und filter-Felder, die für eine Vielzahl erweiterter Anwendungsfälle wie Filtervorlagen genutzt werden.

Ausführliche Informationen zum Deklarieren von Feldern und zu den verschiedenen Einstellungen, die auf sie angewendet werden können, finden Sie auf der Dokumentationsseite Feldparameter.

Joins

Als Teil 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 ist 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 Mit Joins in LookML arbeiten.

Projektmanifestdateien

Ihr Projekt kann eine Projektmanifestdatei enthalten. Sie wird für Einstellungen auf Projektebene verwendet, z. B. zum Angeben anderer Projekte zum Importieren in das aktuelle Projekt, zum Definieren von LookML-Konstanten, zum Festlegen von 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 sich die Datei manifest.lkml auf der Stammebene der Verzeichnisstruktur Ihres Projekts befindet.

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 Dateien aus diesen externen Projekten zu Ihrem aktuellen 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 LookML-Modell lokalisieren.

Sätze

In Looker ist ein Satz eine Liste, die eine Gruppe von Feldern definiert, die zusammen verwendet werden. Normalerweise werden mit Sets festgelegt, welche Felder angezeigt werden sollen, nachdem ein Nutzer Daten aufschlüsselt. 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 Gruppen von Feldern zu definieren, die für bestimmte Nutzer sichtbar sind. Das folgende Beispiel zeigt eine Set-Deklaration in der Ansicht order_items, mit der Felder definiert werden, in denen relevante Details zu einem gekauften Artikel aufgeführt sind. 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 für den Parameter set finden Sie die vollständigen Nutzungsdetails für Sätze.

Drilldown

In Looker können Sie ein Feld konfigurieren, damit Nutzer die Daten weiter aufschlüsseln können. Der Drilldown-Vorgang funktioniert sowohl in Abfrageergebnissen 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 mit der neuen Abfrage der aufgeschlüsselte Wert herausgefiltert. Wenn Sie beispielsweise in einer Abfrage der Kundenbestellungen nach Datum auf ein bestimmtes Datum klicken, werden mit der neuen Abfrage nur Aufträge dieses bestimmten Datums angezeigt.
  • 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 für maximale, minimale und durchschnittliche Messwerte aufschlüsseln, werden weiterhin alle Zeilen angezeigt, die zu diesem Messwert beigetragen haben. Das bedeutet, dass beim Drilldown-Vorgang für einen Maximalwert 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 Set definiert oder durch den Parameter drill_fields (für Felder) oder den Parameter drill_fields (für Ansichten) definiert werden.

Abgeleitete Tabellen

Eine abgeleitete Tabelle ist eine Abfrage, deren Ergebnisse wie eine tatsächliche Tabelle in der Datenbank verwendet werden. 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. Dimensionen und Messwerte werden auf die gleiche Weise wie bei herkömmlichen Ansichten definiert. Die Ansicht einer abgeleiteten Tabelle kann wie jede andere Ansicht abgefragt und mit anderen Ansichten verbunden werden.

Abgeleitete Tabellen können auch als nichtflüchtige abgeleitete Tabellen (PDTs) definiert werden. Das sind abgeleitete Tabellen, die in ein Scratch-Schema in Ihrer Datenbank geschrieben und nach dem von Ihnen mit einer Persistenzstrategie festgelegten Zeitplan 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. Ein Looker-Administrator verwendet die Seite „Verbindungen“, um Datenbankverbindungen zu konfigurieren, und LookML-Entwickler verwenden den connection-Parameter in einer Modelldatei, um anzugeben, welche Verbindung für das Modell verwendet werden soll. Wenn Sie ein LookML-Projekt aus Ihrer Datenbank generieren, füllt Looker den Parameter connection automatisch in der Modelldatei aus.

Berücksichtigung der Groß-/Kleinschreibung

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

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

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

Auch bei Namen von IDE-Ordnern wird 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 auch im Parameter include verwenden. Auch hier zeigt die Looker-IDE einen Fehler an, wenn die Großschreibung nicht mit einem vorhandenen Ordner in Ihrem Projekt übereinstimmt:

In der Looker-IDE wird eine Warnung angezeigt, die besagt, dass das „Einschließen“ mit keinen Dateien übereinstimmt.