LookML – Begriffe und Konzepte

Auf dieser Seite werden die folgenden grundlegenden Begriffe und Konzepte definiert, die bei der Entwicklung von LookML wahrscheinlich vorkommen:

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 beschrieben 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 Seite LookML-Kurzreferenz.

LookML-Projekt

In Looker ist ein Projekt eine Sammlung von Dateien, die Objekte, Datenbankverbindungen und Elemente der Benutzeroberfläche beschreiben, die in SQL-Abfragen verwendet werden. Im Wesentlichen beschreiben diese Dateien, wie Ihre Datenbanktabellen miteinander in Beziehung stehen und wie Looker sie interpretieren soll. Außerdem können sie LookML-Parameter enthalten, mit denen die in der Looker-UI 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 angeben, die für Ihr Looker-Projekt verwendet werden soll.

Sie können in der Looker-Navigation im Bereich Develop auf Ihre Projekte zugreifen.

Informationen zum Erstellen eines neuen Projekts finden Sie unter Neues LookML-Projekt erstellen. Informationen zum Aufrufen und Ändern von LookML-Projekten finden Sie unter Projektinformationen abrufen und bearbeiten.

Teile eines Projekts

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

Hier sehen Sie einige der häufigsten Dateitypen in LookML-Projekten:

  • Ein Modell enthält Informationen darüber, welche Tabellen verwendet werden sollen und wie sie miteinander verbunden werden sollen. Hier definieren Sie in der Regel das Modell, seine explorativen Datenanalysen und Verknüpfungen.
  • Eine Ansicht enthält Informationen zum Aufrufen oder Berechnen von Informationen aus jeder Tabelle (oder aus mehreren verknüpften Tabellen). Hier definieren Sie in der Regel die Ansicht, ihre Dimensionen und Messwerte sowie die Feldsätze.
  • Ein exploratives Analysetool wird häufig in einer Modelldatei definiert. Manchmal ist jedoch eine separate explorative Datenanalyse für eine abgeleitete Tabelle oder die Erweiterung oder die Optimierung eines explorativen Analysetools erforderlich.
  • Eine Manifestdatei kann eine Anleitung für die Verwendung von Dateien enthalten, die aus einem anderen Projekt importiert wurden, oder für die Lokalisierungseinstellungen Ihres Projekts.

Zusätzlich zu den oben genannten Dateitypen kann ein Projekt auch andere Dateitypen haben, z. B. integrierte Dashboards, Dokumentation oder Lokalisierung. Auf der Dokumentationsseite zu LookML-Projektdateien finden Sie weitere Informationen zu diesen Dateitypen und zu den anderen Dateitypen, die in Ihrem LookML-Projekt enthalten sein können.

Insgesamt bilden diese Dateien ein Projekt. Wenn Sie Git für die Versionsverwaltung verwenden, wird jedes Projekt in der Regel durch ein eigenes Git-Repository gesichert.

Woher stammen LookML-Projekte und -Dateien?

Die häufigste Methode zum Erstellen von LookML-Dateien ist die Generierung eines LookML-Projekts aus Ihrer Datenbank. Sie können auch ein leeres Projekt erstellen und die zugehörigen LookML-Dateien manuell erstellen. Alternativ können Sie 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 Ansichtsdateien, eine Datei pro Tabelle in der Datenbank
  • Eine Modelldatei. Die Modelldatei gibt für jede Ansicht eine explorative Datenanalyse an. Jede Explore-Deklaration enthält eine join-Logik, mit der alle Datenansichten verknüpft werden können, die von Looker mit dem Explore-Tag verknüpft 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 dargestellt, enthält ein Projekt in der Regel eine oder mehrere Modelldateien mit Parametern, die ein Modell und seine Explores und Joins definieren. Darüber hinaus enthalten Projekte in der Regel eine oder mehrere Ansichtsdateien, die jeweils Parameter enthalten, mit denen die Ansicht und ihre Felder (einschließlich Dimensionen und Messwerte) sowie die Felder definiert werden. Das Projekt kann auch eine Projektmanifestdatei enthalten, mit der sich 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 Explorativen Datenanalysen eines Modells in der Modelldatei. Standardmäßig sind die explorativen Datenanalysen unter dem Modellnamen organisiert, in dem sie definiert sind. Die Nutzer sehen die Modelle im Menü Entdecken.

Weitere Informationen zu Modelldateien, einschließlich der Struktur und allgemeinen Syntax von Modelldateien, finden Sie auf der Dokumentationsseite zu 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

Mit einer Deklaration in einer Ansicht wird eine Liste von Feldern (Dimensionen oder Messwerte) sowie deren Verknüpfung mit einer zugrunde liegenden Tabelle oder abgeleiteten Tabelle definiert. 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 Datenansichten wird in der Regel im Rahmen einer explorativen Datenanalyse in einer Modelldatei definiert.

Standardmäßig werden die Namen von Datenansichten am Anfang der Dimension angezeigt und die Namen in der Tabelle „Daten ansehen“ werden gemessen. Anhand dieser Namenskonvention wird 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, in der die Felder „Erstellungsdatum“, „Nutzer-ID“ und „Anzahl der Bestellungen“ ausgewählt sind.

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

Weitere Informationen zu den LookML-Parametern, die in einer Ansichtsdatei verwendet werden können

Erkunden

Das explorative Analysetool ist eine Ansicht, die Nutzer abfragen können. Sie können sich das explorative Analysetool 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 eine Ansicht Status, die einer Suchtabelle für Bundesstaatsnamen entspricht, nicht für „Entdecken“ qualifiziert, weil geschäftliche Nutzer sie nie direkt abfragen müssen. Geschäftliche Nutzer hingegen möchten wahrscheinlich eine Ansicht Orders abfragen. Daher ist es sinnvoll, eine Auswertung von Orders zu erstellen.

In Looker werden Nutzern die explorativen Datenanalysen im Menü Erkunden angezeigt. Die explorativen Datenanalysen sind unter den Namen der Modelle aufgeführt, zu denen sie gehören.

Per Konvention werden Explores in der Modelldatei mit dem Parameter explore deklariert. In diesem Beispiel wird die Modelldatei 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 an anderer Stelle in den entsprechenden Ansichtsdateien definiert.

connection: order_database
include: "filename_pattern"

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

Im Beispiel oben wird mit dem Parameter connection die Datenbankverbindung für das Modell angegeben und mit dem Parameter include werden die Dateien angegeben, auf die das Modell verweisen soll.

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

Dimensions- und Messwertfelder

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

In Looker ist eine Dimension ein gruppierbares Feld, anhand dessen Abfrageergebnisse gefiltert werden können. Es kann sich um Folgendes 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 der SQL-Abfrage angezeigt, die von Looker generiert wird.

Die Dimensionen für eine Produkte-Ansicht können beispielsweise den Produktnamen, das Produktmodell, die Produktfarbe, den Produktpreis, das Erstellungsdatum und das Lebenszyklusdatum umfassen.

Ein Messwert ist ein Feld, in dem eine SQL-Aggregatfunktion verwendet wird, z. B. COUNT, SUM, AVG, MIN oder MAX. 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. Maßnahmen in der Ansicht Verkäufe können beispielsweise auch die Gesamtzahl der verkauften Artikel (Anzahl), der Sonderangebotspreis (insgesamt) und der durchschnittliche Sonderangebotspreis (Durchschnitt) umfassen.

Das Verhalten und die erwarteten Werte für ein Feld hängen vom deklarierten Typ ab, z. B. string, number oder time. Für Messwerte enthalten Typen Aggregatfunktionen wie sum und percent_of_previous. Weitere Informationen finden Sie in den Hilfeartikeln zu den Dimensionstypen und Messtypen.

In Looker werden Felder auf der Seite Erkunden in der Feldauswahl links auf der Seite aufgeführt. Wenn Sie eine Ansicht in der Feldauswahl maximieren, sehen Sie eine Liste der Felder, die in 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. Sie können den Substitutionsoperator ($) verwenden, um auf Felder zu verweisen, ohne einen SQL-Spaltennamen mit vollständigem Bereich 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, das mehrere zeitbezogene Dimensionen gleichzeitig erstellt, und filter-Felder, die viele erweiterte Anwendungsfälle wie Vorlagenfilter haben.

In der Dokumentation zu den Feldparametern finden Sie ausführliche Informationen zur Angabe von Feldern und zu den verschiedenen Einstellungen, die auf sie angewendet werden können.

Joins

Im Rahmen einer explore-Deklaration gibt jede join-Deklaration eine Ansicht an, die mit dem explorativen Analysetool 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 eine Join-Anweisung 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 in der Dokumentation zu Mit Joins in LookML arbeiten.

Projektmanifestdateien

Ihr Projekt enthält möglicherweise eine Projektmanifestdatei, die für Einstellungen auf Projektebene verwendet wird, wie z. B. für die Angabe anderer Projekte, die in das aktuelle Projekt importiert werden, die Definition von LookML-Konstanten, die Angabe von Lokalisierungseinstellungen sowie das Hinzufügen von Erweiterungen und benutzerdefinierten Visualisierungen.

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 manifest.lkml-Datei 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 Parameter include in Ihrer Modelldatei verwenden, um dem 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 zum Lokalisieren des LookML-Modells.

Sätze

In Looker ist set eine Liste, die eine Gruppe von Feldern definiert, die zusammen verwendet werden. Mit Sets wird in der Regel festgelegt, welche Felder angezeigt werden sollen, nachdem ein Nutzer die Daten aufgeblasen 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 Set-Deklaration in einer Ansicht order_items, in der Felder mit relevanten Details zu einem gekauften Artikel definiert werden. 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 Nutzungsdetails zu Sätzen finden Sie auf der Seite zu den Parameter für set-Parameter.

Drilldown

In Looker können Sie beim Verfassen von LookML-Code zu den Detailinformationen aller entsprechend eingerichteten Felder navigieren. Dieser als „Drilldown“ bezeichnete Vorgang funktioniert gleichermaßen in Abfrageergebnistabellen und in Dashboards. Durch den Drilldown-Vorgang wird eine neue Abfrage gestartet, die von dem Wert beschränkt wird, auf den Sie geklickt haben.

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

  • Beim Drilldown in einer Dimension wird die neue Abfrage zur Filterung des Drill-Werts verwendet. Wenn Sie beispielsweise auf ein bestimmtes Datum in einer Abfrage von nach Datum sortierten Kundenaufträgen klicken, werden mit der neuen Abfrage nur Aufträge dieses konkreten 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 die Messwerte „Max.“, „Min.“ und „Durchschnittlich“ analysieren, werden bei der Aufschlüsselung immer noch alle Zeilen angezeigt, die zu dieser Messung beigetragen haben. Das bedeutet, dass beispielsweise bei der Aufschlüsselung eines Maximalwerts alle Zeilen verwendet werden, die zur Berechnung des Maximalwerts verwendet wurden, und nicht nur eine einzelne Zeile für den Höchstwert.

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

Abgeleitete Tabellen

Eine abgeleitete Tabelle ist eine Abfrage, deren Ergebnisse so verwendet werden, als ob es sich um eine tatsächliche Tabelle in der Datenbank handelt. Abgeleitete Tabellen werden mit dem derived_table-Parameter 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 mit dem Parameter derived_table bereitgestellt und definiert Dimensionen und Messwerte auf dieselbe 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. Dabei handelt es sich um abgeleitete Tabellen, die in ein Scratch-Schema in Ihrer Datenbank geschrieben und automatisch anhand des von Ihnen angegebenen Zeitplans neu generiert werden (Persistenzstrategie).

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

Datenbankverbindung

Ein weiteres wichtiges Element eines LookML-Projekts ist die Datenbankverbindung, die Looker verwendet, um Abfragen in Ihrer Datenbank durchzuführen. Ein Looker-Administrator verwendet die Seite Verbindungen, um Datenbankverbindungen zu konfigurieren. LookML-Entwickler legen mit dem connection-Parameter in einer Modelldatei fest, welche Verbindung für das Modell verwendet werden soll. Wenn Sie ein LookML-Projekt aus Ihrer Datenbank generieren, wird Looker automatisch den Parameter connection in der Modelldatei ausfüllen.

Berücksichtigung der Groß-/Kleinschreibung

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

Angenommen, Sie haben ein Explore namens „e_flights_pdt“ und ein LookML-Entwickler verwendet eine falsche Großschreibung (e_FLIGHTS_pdt), um auf dieses Explore zu verweisen. In diesem Beispiel wird in der Looker-IDE eine Warnung angezeigt, dass das Explore-e_FLIGHTS_pdt nicht vorhanden ist. Darüber hinaus schlägt die IDE den Namen eines vorhandenen Explore 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 daher sicher sein, welche Version Sie beabsichtigt haben. Bei der Benennung von LookML-Objekten sollten Sie grundsätzlich die Kleinschreibung beibehalten.

Bei IDE-Ordnernamen wird ebenfalls 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 dieselbe Groß- und Kleinschreibung im Parameter include verwenden. In der Looker-IDE wird ein Fehler angezeigt, wenn Ihre Groß- und Kleinschreibung nicht mit einem vorhandenen Ordner in Ihrem Projekt übereinstimmt:

In der Looker-IDE wird eine Warnung angezeigt, dass das Include mit keiner Datei übereinstimmt.