home Benutzer-Ratgeber So geht’s los Help Center Dokumentation Community Schulung Zertifizierung
menu
close
settings
Looker keyboard_arrow_down
language keyboard_arrow_down
English
Français
Deutsch
日本語
search
print
Was ist LookML?

LookML ist eine Sprache zur Beschreibung von Dimensionen, Summen, Berechnungen und Datenbeziehungen in einer SQL-Datenbank. Looker verwendet ein in LookML erstelltes Modell, um SQL-Abfragen für eine bestimmte Datenbank zu strukturieren.

LookML-Projekte

Ein LookML-Projekt ist eine Sammlung von Modell-, Ansichts- und Dashboard-Dateien, die in der Regel gemeinsam über ein Git-Repository versioniert werden. Die Modelldateien enthalten Informationen darüber, welche Tabellen zu verwenden sind und wie sie verknüpft werden sollen. Die Ansichtsdateien enthalten Angaben dazu, wie Informationen zu den einzelnen Tabellen (oder für mehrere Tabellen, wenn die Joins dies zulassen) berechnet werden.

LookML trennt Struktur von Inhalt. Das heißt, die Abfragestruktur (wie Tabellen verbunden sind) ist vom Abfrageinhalt unabhängig (aufzurufende Spalten, abgeleitete Felder, zu berechnende Summenfunktionen und anzuwendende Filterausdrücke).

Von Looker generierte SQL-Abfragen

Zugunsten von Datenanalysten fördert LookML den so genannten DRY-Stil („Don’t repeat yourself“). Das heißt, Sie schreiben SQL-Ausdrücke einmal, an einem Ort und Looker verwendet diesen Code wiederholt, um Ad-hoc-SQL-Abfragen zu generieren. Für geschäftliche Benutzer ist das Endergebnis die Fähigkeit, komplexe Abfragen in Looker zu erstellen und sich dabei nur auf den tatsächlich benötigten Inhalt zu konzentrieren, nicht auf die Komplexität der SQL-Struktur.

Die folgende Abbildung zeigt eine in Looker erstellte Abfrage, die Werte aus mehreren Tabellen verbindet – Orders Items, Products und Users:

In der Abbildung oben muss der Endbenutzer die SQL-Ausdrücke für Joins oder Filter nicht unbedingt verstehen.

Eine Abhängigkeitssprache zur Beschreibung von Datenstrukturen

LookML ist eine Abhängigkeitssprache wie make, im Gegensatz zu einer imperativen Sprache wie C oder Ruby. LookML stellt vordefinierte Datentypen und Syntax für die Datenmodellierung bereit. Die LookML-Syntax weist eine klare und leicht zu erlernende Struktur auf. (Sie benötigen keine Programmierkenntnisse. Alles, was Sie wissen müssen, ist hier dokumentiert.) LookML ist von bestimmten SQL-Dialekten unabhängig und enthält alle wesentlichen SQL-Ausdrücke für jede SQL-Implementierung.

Codebeispiel

Das unten stehende Beispiel zeigt ein minimales LookML-Projekt für einen E-Commerce-Store mit einer Modelldatei und zwei Ansichtsdateien:

###################################### # FILE: ecommercestore.model.lkml # # Define the explores and join logic # ###################################### connection: order_database include: "*.view.lkml" explore: orders { join: customers { sql_on: ${orders.customer_id} = ${customers.id} ;; } }   ########################################################## # FILE: orders.view.lkml # # Define the dimensions and measures for the ORDERS view # ########################################################## view: orders { dimension: id { primary_key: yes type: number sql: ${TABLE}.id ;; } dimension: customer_id { # field: orders.customer_id sql: ${TABLE}.customer_id ;; } dimension: amount { # field: orders.amount type: number value_format: "0.00" sql: ${TABLE}.amount ;; } dimension_group: created { # generates fields: type: time # orders.created_time, orders.created_date timeframes: [time, date, week, month] # orders.created_week, orders.created_month sql: ${TABLE}.created_at ;; } measure: count { # field: orders.count type: count # creates a sql COUNT(*) drill_fields: [drill_set*] # list of fields to show when someone clicks 'ORDERS Count' } measure: total_amount { type: sum sql: ${amount} ;; } set: drill_set { fields: [id, created_time, customers.name, amount] } }   ############################################################# # FILE: customers.view.lkml # # Define the dimensions and measures for the CUSTOMERS view # ############################################################# view: customers { dimension: id { primary_key: yes type: number sql: ${TABLE}.id ;; } dimension: city { # field: customers.city sql: ${TABLE}.city ;; } dimension: state { # field: customers.state sql: ${TABLE}.state ;; } dimension: name { sql: CONCAT(${TABLE}.firstname, " ", ${TABLE}.lastname) ;; } measure: count { # field: customers.count type: count # creates a sql COUNT(*) drill_fields: [drill_set*] # fields to show when someone clicks 'CUSTOMERS Count' } set: drill_set { # set: customers.drill_set fields: [id, state, orders.count] # list of fields to show when someone clicks 'CUSTOMERS Count' } }

Bei LookML wird die Groß-/Kleinschreibung beachtet

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. Im Beispiel unten hat der Entwickler „FLIGHTS“ fälschlicherweise großgeschrieben. Die Looker-IDE zeigt eine Warnung an, dass e_FLIGHTS_pdt nicht vorhanden ist. Außerdem schlägt die IDE den Namen eines vorhandenen Explores vor: e_flights_pdt:

Wenn Ihr Projekt allerdings sowohl e_FLIGHTS_pdt als auch e_flights_pdt enthält, kann die Looker-IDE Sie nicht korrigieren. Dann müssten Sie genau wissen, welche Version Sie wünschen. Im Allgemeinen sollten Sie Kleinbuchstaben in Namen von LookML-Elementen verwenden.

Bei Namen von IDE-Ordnern wird ebenfalls die Groß-/Kleinschreibung beachtet. Bei der Angabe von Dateipfaden müssen Sie stets die richtige Groß-/Kleinschreibung von Ordnernamen verwenden. Wenn ein Ordner beispielsweise den Namen Views aufweist, müssen Sie dieselbe Schreibweise 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:

Überblick über grundlegende LookML-Elemente

Im folgenden Diagramm sind grundlegende LookML-Elemente und ihre Beziehungen dargestellt. Mehr dazu erfahren Sie unter LookML – Begriffe und Konzepte.

Top