LookML – Begriffe und Konzepte

Die Bereiche Substitutionsoperator ($), Umfang und Benennung, SQL-Dialekt und SQL-Block wurden auf eine neue Dokumentationsseite zum Einbinden von SQL mit Informationen zu LookML-Objekten verschoben.

Übersicht

Auf dieser Seite sind die Begriffe und Konzepte definiert, die bei der LookML-Entwicklung häufig relevant sind. Im folgenden Diagramm sind die Beziehungen zwischen den Elementen dargestellt, die sich in anderen Elementen befinden. Sämtliche hier aufgeführten Begriffe sind in den folgenden Abschnitten definiert.

Looks und benutzerdefinierte Dashboards sind nicht Teil dieses Diagramms, da Nutzer sie ohne LookML erstellen. Die Abfragen in diesen Dashboards basieren jedoch auf den im vorangehenden Diagramm dargestellten LookML-Elementen.

LookML-Projekt

Ein Projekt ist eine Sammlung von LookML-Dateien, die beschreiben, in welcher Beziehung Ihre Datenbanktabellen zueinander stehen und wie Looker diese Tabellen interpretieren soll. Jedes LookML-Projekt befindet sich in einem eigenen Git-Repository zur Versionsverwaltung.

Dies sind die gängigen Dateiarten in einem LookML-Projekt:

  • Ein Modell enthält Informationen dazu, welche Tabellen verwendet werden sollten und wie sie verknüpft werden sollen. Hier definieren Sie in der Regel das Modell, seine explorativen Datenanalysen und seine Joins.
  • Eine Ansicht enthält Informationen zum Aufrufen und Berechnen von Informationen aus den einzelnen Tabellen (oder aus mehreren verknüpften Tabellen). Hier definieren Sie in der Regel die Ansicht, ihre Abmessungen und Maße sowie ihre Feldsätze.
  • Ein exploratives Analysetool wird häufig in einer Modelldatei definiert. Manchmal benötigen Sie jedoch eine separate „Erkunden“-Datei für eine abgeleitete Tabelle oder zum Erweitern oder Optimieren einer modellübergreifenden Analyse.
  • 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.

Informationen zu anderen Dateitypen für Ihr LookML-Projekt finden Sie auf der Dokumentationsseite zu LookML-Projektdateien.

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

In Looker können Sie über das Menü Entwickeln auf Ihre Projekte zugreifen:

Ab dem Looker 21.12 gilt: Wenn Ihr Administrator die Labs-Funktion Erweiterte Navigation aktiviert hat, können Sie auf Ihre Projekte zugreifen, indem Sie im neuen erweiterten Navigationsbereich die Option Entwickeln auswählen.

Woher stammen LookML-Projekte und -Dateien?

Am häufigsten erstellen Sie LookML-Dateien, indem Sie ein LookML-Projekt aus Ihrer Datenbank 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 Modelldatei. Die Modelldatei deklariert für jede Ansicht die Option Erkunden. Jede Deklaration des explorativen Analysetools enthält eine join-Logik, mit der alle Ansichten verknüpft werden, die von Looker mit der Funktion „Erkunden“ verknüpft werden können.

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 im vorherigen Diagramm gezeigt wird, enthält ein Projekt in der Regel eine oder mehrere Modelldateien mit Parametern, die ein Modell und seine explorativen Datenanalysen und Joins definieren. Darüber hinaus enthalten Projekte normalerweise ein oder mehrere Ansichtsdateien, die jeweils Parameter zur Definition der Ansicht, der Felder (mit Dimensionen und Messwerten) und von Feldsätzen enthalten. Das Projekt kann auch eine Projektmanifestdatei enthalten, die Parameter beinhaltet, um Ansichtsdateien aus anderen Projekten zu verwenden oder Lokalisierungsstandards zu konfigurieren. 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.

In Looker werden Abfragen nach dem jeweils auf sie zutreffenden Modell gruppiert. Nutzer sehen dann im Menü Erkunden Modelle:

Ab dem Looker 21.12 gilt: Wenn Ihr Administrator die erweiterte Labs-Funktion Labs aktiviert hat, können Sie auf „Erkunden“ zugreifen und eine Liste von „Entdecken“ aufrufen, indem Sie im neuen erweiterten Navigationsbereich die Option Erkunden auswählen.

Eine Modelldatei gibt die Datenbank an, zu der eine Verbindung hergestellt werden soll, und definiert eine Sammlung von Erkundungen für diese Verbindung. Konventionsgemäß erklärt jede Datei genau ein Modell und im neuen LookML enden die Modelldateinamen mit .model.lkml. Der Name der Modelldatei bestimmt den in Looker angezeigten Namen.

Das allgemeine Format einer Modelldeklaration in LookML ist unten dargestellt. Weitere Informationen finden Sie auf der Dokumentationsseite Modellparameter.

connection: connection_name
persist_for: timeframe
case_sensitive: yes | no
include: "filename_pattern"   # for example: *.view.lkml
# More include declarations

explore: explore_name {
  view_name: view_name
  join: view_name {
    # join parameters
  }
  # More join declarations
}
# More explore declarations

Ansehen

Eine Ansichtsdeklaration definiert eine Liste von Feldern (Dimensionen oder Messwerte) und ihre Verknüpfung mit einer zugrunde liegenden Tabelle oder einer abgeleiteten Tabelle. In LookML verweist eine Ansicht in der Regel 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 als Teil der explorativen Datenanalyse in einer Modelldatei definiert.

In Looker werden die Namen der Ansichten vor den Namen der Dimensionen und Messwerte in der Datentabelle angezeigt. Durch diese Namensgebung ist ersichtlich, zu welcher Ansicht das Feld gehört:

Eine Ansicht wird in einer .view.lkml-Datei gespeichert. Das allgemeine Format einer Ansichtsdeklaration ist unten dargestellt. Ausführliche Informationen zur Verwendung finden Sie auf der Dokumentationsseite Parameter ansehen.

view: view_name {
  dimension: field_name {
    # dimension_parameters
  }
  # more dimension declarations
  measure: field_name {
    # measure_parameters
  }
  # more measure declarations
  set: first_set {
    fields: [field_one, field_two]
  }
}

Wenn Sie für ein exploratives Analysetool ein type: count-Messwert verwenden, werden die Ergebnisse in der Visualisierung mit dem Namen der Datenansicht statt des Worts „&Count“ versehen. Um Verwechslungen zu vermeiden, empfehlen wir, Ihren Ansichtsnamen zu Pluralformen auszuwählen, unter Reihe in den Visualisierungseinstellungen Vollständigen Feldnamen anzeigen auszuwählen oder ein view_label mit einer Pluralform Ihres Ansichtsnamens zu verwenden.

Untersuchen

Ein Explore ist eine Ansicht, zu der Benutzer Abfragen erstellen können. Sie können sich den Tab „Entdecken“ 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 mit dem Status States, die einer Suchtabelle für Bundesstaatnamen entspricht, keine Erkundung rechtfertigt, da geschäftliche Nutzer sie nie direkt abfragen müssen. Andererseits möchten Geschäftsnutzer wahrscheinlich die Ansicht Orders abfragen. Daher ist es sinnvoll, eine Erkundung für Orders zu definieren.

Eine explore-Deklaration gibt die Join-Beziehungen zu anderen Datenansichten an. In den vorherigen Beispielen wird die Ansicht Orders (Aufträge) möglicherweise der Ansicht States (Bundesstaaten) hinzugefügt, um den Status zu ermitteln, in dem ein Verkauf stattgefunden hat. Weitere Informationen finden Sie unter Joins.

In Looker können Ihre Nutzer „Entdecken“ im Menü Erkunden sehen:

Gemäß der Konvention werden Explores in der Modelldatei deklariert. Das folgende Beispiel zeigt die Deklaration für eine „Erkunden“-orders für eine E-Commerce-Datenbank. Die Ansichten orders und customers sind an anderer Stelle in den entsprechenden Ansichtsdateien definiert.

# ———————————————
# 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 zu join-Deklarationen finden Sie unter Joins. Ausführliche Informationen zur Verwendung finden Sie in der Dokumentation zu Join-Parametern.

Dimensions- und Messwertfelder

Ansichten enthalten Felder – zumeist Dimensionen und Messwerte. Diese sind grundlegende 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

Die Dimensionen für eine Ansicht Produkte können beispielsweise den Produktnamen, das Produktmodell, die Produktfarbe, den Produktpreis, das Erstellungsdatum und das Ende des Produktzyklus enthalten.

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. Mögliche Messwerte für eine Ansicht Verkäufe sind beispielsweise die verkauften Artikel (Anzahl), der Sonderangebotspreis (Summe) und der durchschnittliche Sonderangebotspreis (Durchschnitt).

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 sind Typen Aggregatfunktionen wie sum und percent_of_previous. Weitere Informationen finden Sie unter Dimensionstypen und Messwerttypen.

In Looker sind Felder auf der Seite Erkunden in der Feldauswahl auf der linken Seite aufgeführt.

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 Ersatzoperator ($) verwenden, um auf Felder ohne SQL-Spaltennamen zu verweisen.

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 verschiedene erweiterte Anwendungsfälle wie Vorlagenfilter umfassen.

In der Dokumentation zu den Feldparametern finden Sie ausführliche Informationen zum Deklarieren von Feldern und 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 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 siehst du ein Beispiel für 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 unter Mit Joins in LookML arbeiten.

Projektmanifestdateien

Ihr Projekt enthält möglicherweise eine Manifestdatei des Projekts, die für Einstellungen auf Projektebene verwendet wird, z. B. für das Angeben anderer Projekte, die in das aktuelle Projekt importiert werden sollen, sowie zum Definieren von LookML-Konstanten, zum Festlegen von Modelllokalisierungseinstellungen und zum 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 Datei manifest.lkml auf der Stammebene der Verzeichnisstruktur Ihres Projekts befindet.

Eine Projektmanifestdatei können Sie entweder für den Projektimport oder für die Lokalisierung verwenden, jedoch nicht für beides.

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 Manifestdatei des Projekts definiert haben, können Sie mit dem Parameter include in der Modelldatei Dateien aus dem externen Projekt in Ihr aktuelles Projekt einfü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 set eine Liste, die eine Gruppe von Feldern definiert, die zusammen verwendet werden. In der Regel werden Gruppen verwendet, um anzugeben, 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. 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. Darin sind Felder mit relevanten Details zu einem gekauften Artikel definiert. 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
  ]
}

Weitere Informationen zur Verwendung von Sets finden Sie auf der Dokumentationsseite zum Parameter set.

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 nach max., min. und durchschnittlichen Maßen aufschlüsseln, werden weiterhin alle Zeilen angezeigt, die zu diesem Messwert beigetragen haben. Das bedeutet, dass beispielsweise bei der Aufschlüsselung eines Maximalwerts alle Zeilen angezeigt werden, die zur Berechnung des Maximalwerts verwendet wurden, und nicht nur eine einzige Zeile für den Maximalwert.

Die Felder, die für die neue Aufschlüsselungsabfrage angezeigt werden sollen, lassen sich durch einen Satz oder durch den Parameter drill_fields (für Felder) oder den Parameter drill_fields (für Datenansichten) definieren.

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 mithilfe des Parameters derived_table als eigene Ansicht dargestellt. Dimensionen und Messwerte werden genauso definiert wie bei herkömmlichen 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 definiert werden. Diese abgeleiteten Tabellen werden in ein Scratch-Schema in Ihrer Datenbank geschrieben und automatisch nach dem von Ihnen angegebenen Zeitplan mit einer Persistenzstrategie neu generiert.

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, und LookML-Entwickler verwenden den Parameter connection 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 automatisch den Parameter connection in der Modelldatei.