LookML-Suchfilter

Überblick

Mit LookML-Suchfiltern können Sie eine vorhandene Ansicht oder explorative Datenanalyse anpassen, ohne die LookML-Datei zu bearbeiten, die sie enthält. Diese Einstellung ist ideal für:

Angenommen, Ihr Projekt enthält die folgende Ansichtsdatei:

view: flights {
  sql_table_name: flightstats.accidents ;;

  dimension: id {
    label: "id"
    primary_key: yes
    type: number
    sql: ${TABLE}.id ;;
  }
}

Sie können die Ansicht flights wie unten gezeigt eingrenzen: Verwenden Sie den Parameter view mit demselben Ansichtsnamen. Fügen Sie jedoch vor dem Namen ein Pluszeichen (+) ein, um anzugeben, dass es sich um eine Optimierung der vorhandenen Ansicht handelt.

Durch diesen Suchfilter wird der vorhandenen flights-Ansicht die Dimension air_carrier hinzugefügt:

view: +flights {
  dimension: air_carrier {
    type: string
    sql: ${TABLE}.air_carrier ;;
  }
 }

Dieser Suchfilter kann in jeder LookML-Datei im Projekt verwendet werden, z. B. in einer Modell- oder Ansichtsdatei oder in einer eigenen dedizierten LookML-Datei. Informationen zur Funktionsweise finden Sie im Abschnitt Suchfilter in einem LookML-Projekt verwenden.

Das Suchergebnis in Kombination mit dem ursprünglichen LookML ergibt das Endergebnis, als ob es das ursprüngliche LookML für die Ansicht wäre:

view: flights {
  sql_table_name: flightstats.accidents ;;

  dimension: id {
    label: "id"
    primary_key: yes
    type: number
    sql: ${TABLE}.id ;;
  }

  dimension: air_carrier {
    type: string
    sql: ${TABLE}.air_carrier ;;
  }
}

In der Looker-Benutzeroberfläche sehen Nutzer die Dimension Fluggesellschaft, so als hätten Sie sie in der ursprünglichen Ansichtsdatei selbst hinzugefügt.

Weitere Informationen finden Sie unten.

Optimierungen im Vergleich zu Erweiterungen

Looker unterstützt auch die Erweiterung von LookML-Objekten. Die Erweiterung ist hilfreich, wenn Sie eine neue Kopie einer vorhandenen Ansicht oder der Funktion „Erkunden“ erstellen und somit neue Objekte hinzufügen möchten. Sie können beispielsweise eine Basisansicht erstellen, in der alle Ihre Felder definiert sind, und dann mehrere neue Datenansichten erstellen, die die Basisansicht erweitern. Diese neuen Ansichten können dann geändert werden, um bestimmte Felder in der Basisansicht auszublenden oder um Definitionen oder Labels für die Felder in der Basisansicht zu ändern.

Suchfilter sind hilfreich, wenn Sie eine vorhandene Ansicht oder den Bereich „Erkunden“ mit einigen Optimierungen oder Anpassungen an bestimmten Objekten ändern möchten, aber keine Kopien der Ansicht oder des explorativen Analysetools erstellen möchten. Suchfilter eignen sich ideal in Situationen, in denen Sie die Basisansicht oder die Funktion „Erkunden“ nicht ändern können. In Situationen, in denen das Erstellen einer neuen Ansicht oder der Funktion „Erkunden“ erforderlich ist, sind umfangreiche Änderungen an anderen LookML-Referenzen erforderlich. Ein Beispiel für diesen Anwendungsfall finden Sie im Abschnitt Beispiel auf dieser Seite.

In den meisten Fällen sind Suchfilter eine einfachere und übersichtlichere Alternative zu extends.

Fortgeschrittene LookML-Entwickler können den Parameter extends in einem LookML-Suchfilter verwenden. Weitere Informationen finden Sie im Abschnitt Suchfilter können Erweiterungen enthalten auf dieser Seite.

Suchfilter überschreiben die meisten Parameter

Es ist wichtig zu beachten, dass in den meisten Fällen ein Suchfilter die ursprünglichen Einstellungen eines Objekts überschreibt. Im folgenden Beispiel hat die ursprüngliche Ansicht eine ausgeblendete Dimension (hidden: yes):

view: faa_flights {
  dimension: carrier {
    hidden: yes
  }
}

In einer anderen Datei gibt es einen Suchfilter für diese Dimension mit hidden: no:


include: "/views/faa_flights.view.lkml"

view: +faa_flights {
  dimension: carrier {
    hidden: no
  }
}

Die letzte Optimierung hat Vorrang. Daher wird hidden: no angewendet und die Dimension wird in der endgültigen Ansicht angezeigt.

In einigen Fällen sind Suchfilter additiv anstelle von „Überschreiben“. Weitere Informationen finden Sie im Abschnitt Einige Parameter sind additiv auf dieser Seite.

Einige Parameter sind additiv

Wenn der Suchfilter denselben Parameter wie das optimierte Objekt enthält, überschreibt die Suchfilter die Parameterwerte des raffinierten Objekts.

Einige Parameter können jedoch verfeinert werden, d. h., sie können für einige Parameter additiv werden, d. h., die Werte aus dem Basisobjekt werden in Verbindung mit den Werten des optimierten Objekts verwendet.

Die folgenden Parameter sind additiv:

Hier sehen Sie eine Datenansicht mit der Dimension name und dem Parameter link:

view: carriers {
  sql_table_name: flightstats.carriers ;;

  dimension: name {
    sql: ${TABLE}.name ;;
    type: string
    link: {
      label: "Google {{ value }}"
      url: "http://www.google.com/search?q={{ value }}"
      icon_url: "http://google.com/favicon.ico"
    }
  }
}

Und hier ist ein Suchfilter der Ansicht carriers mit einer Dimension name, die unterschiedliche Werte für den Parameter link hat:


include: "/views/carriers.view.lkml"

view: +carriers {
  label: "Refined carriers"

  dimension: name {
    sql: ${TABLE}.name ;;
    type: string
    link: {
      label: "Dashboard for {{ value }}"
      url: "https://docsexamples.dev.looker.com/dashboards/307?Carrier={{ value }}"
      icon_url: "https://www.looker.com/favicon.ico"
    }
  }
}

In der verbesserten carriers-Ansicht sind die beiden link-Parameter additiv, sodass die Dimension name beide Links anzeigt.

Suchfilter werden in der angegebenen Reihenfolge angewendet

Ein Objekt kann mehrmals und an verschiedenen Orten optimiert werden, sodass Looker-Entwickler Suchfilter auf vielfältige Weise einsetzen können. Das bedeutet aber auch, dass Entwickler die Reihenfolge, in der Suchfilter angewendet werden, sehr genau berücksichtigen müssen:

  • Bei einem Projekt werden Suchfilter in der Reihenfolge angewendet, in der die Dateien enthalten sind. Suchfilter aus zuletzt enthaltenen Dateien überschreiben Suchfilter aus zuvor enthaltenen Dateien.
  • Innerhalb einer einzelnen Datei werden Suchfilter Zeile für Zeile nach unten angewendet. Suchfilter mit der höchsten Zeilennummer werden zuletzt angewendet und überschreiben alle früheren Suchfilter, falls Konflikte auftreten.

Die folgende Ansichtsdatei enthält beispielsweise zwei Verfeinerungen der faa_flights-Ansicht. Mit dem ersten Suchfilter wird die Dimension ausgeblendet (hidden: yes), während mit dem zweiten Suchfilter die Dimension (hidden: no) angezeigt wird. Bei solchen Konflikten hat der Suchfilter, der am weitesten unten in der Datei steht, Vorrang:

include: "//e_faa_original/views/faa_flights.view.lkml"

view: +faa_flights {
  dimension: carrier {
    hidden: yes
  }
}

view: +faa_flights {
  dimension: carrier {
    hidden: no
  }
}

Die Logik ist ähnlich, wenn mehrere Dateien in ein Projekt aufgenommen werden: Optimierungen in der letzten Datei, die in den Includes enthalten ist, haben Vorrang. Beispiel: Eine Modelldatei enthält folgende Dateien:

include: "/refinements/distance_analysis.lkml"
include: "/refinements/finishing_touches.lkml"

Alle Suchfilter in distance_analysis.lkml werden zuerst angewendet, dann werden alle Suchfilter in der Datei finishing_touches.lkml angewendet. Im Falle von Konflikten haben die Suchfilter in der letzten Datei, finishing_touches.lkml, Vorrang.

Mit final: yes weitere Optimierungen verhindern

Wie bereits beschrieben, kann dasselbe Objekt an mehreren Stellen mehrmals verfeinert werden, wobei der letzte Suchfilter alle vorherigen Suchfilter überschreibt.

Wenn Sie einen Suchfilter als endgültige Suchfilter für die Datenansicht oder den Suchfilter sehen möchten, können Sie ihm den Flag final: yes hinzufügen. Die Looker-IDE gibt einen LookML-Fehler zurück, wenn es bereits nach diesem endgültigen Suchfilter angewendete Suchfilter gibt oder wenn ein Entwickler einen neuen Suchfilter hinzufügen möchte, der nach dem letzten Suchfilter angewendet wird. Beispielsweise würde der zweite Suchfilter in dieser Ansichtsdatei einen LookML-Fehler verursachen, da der vorherige Suchfilter das Flag final: yes hat:

include: "//e_faa_original/views/faa_flights.view.lkml"

view: +faa_flights {
  final: yes
  dimension: carrier {
    hidden: yes
  }
}

view: +faa_flights {
  dimension: carrier {
    hidden: no
  }
}

Wenn Sie einen Suchfilter mit dem Flag final: yes versehen, können Sie überprüfen, ob die Suchfilter in der gewünschten Reihenfolge angewendet werden.

Suchfilter können Erweiterungen enthalten

Fortgeschrittene LookML-Entwickler möchten möglicherweise einen extends-Parameter innerhalb eines LookML-Suchfilters verwenden, der das erweiterte Objekt dem zu verfeinernden Objekt hinzufügt.

So fassen Sie das Verhalten von extends und Suchfiltern zusammen:

  • Durch Erweiterung eines Objekts wird eine neue Kopie des Objekts erstellt und darauf aufbauend erstellt. Sie können beispielsweise eine Basisansicht erstellen, in der alle Ihre Felder definiert sind, und dann mehrere neue Datenansichten erstellen, die die Basisansicht erweitern. Jede neue Datenansicht enthält eine Kopie der Basisansicht. Von dort aus kann ein Entwickler verschiedene Felder, Filter oder andere Eigenschaften hinzufügen, um zu ändern, was in der Basisansicht enthalten ist. Die Idee ist, mit einem Basisobjekt zu beginnen und es dann in verschiedenen anderen Objekten zu verwenden. Auf der Dokumentation zum Wiederverwendung von Code mit Erweiterungen finden Sie ausführliche Informationen zur Arbeit mit Erweiterungen.
  • Durch die Feinabstimmung eines Objekts wird dem Objekt eine Schicht hinzugefügt, die jedoch, im Gegensatz zu einer Erweiterung, keine Kopien des Objekts umfasst. Die Idee ist, auf einem Basisobjekt aufzubauen, ohne das ursprüngliche LookML zu ändern.

Hier ein Beispiel für die standardmäßige Verwendung von Suchfiltern: Hier befindet sich das explorative Analysetool „orders“ und das explorative Analysetool „+orders“:

explore: orders {
  view_name: orders
  # other Explore parameters
}

explore: +orders {
  label: "Orders Information"
  # other Explore parameters to build on the original Explore
}

Zusätzlich können Sie einen Suchfilter mit extends hinzufügen. Hier sehen Sie ein Beispiel für das explorative Analysetool „orders“. Außerdem gibt es das Basis-explorative Analysetool „users_base“ und der +orders-Suchfilter enthält jetzt den Parameter extends, der den users_base einfügt:


explore: users_base {
  view_name: users
  extension: required
  # other Explore parameters
}

explore: orders {
  view_name: orders
  # other Explore parameters
}

explore: +orders {
  label: "Orders Information"
  extends: [users_base]
  # other Explore parameters to build on the original Explore
}

Das Besondere daran ist, dass der +orders-Suchfilter einen extends enthält. Das Ergebnis ist, dass die Ansicht +orders die users_baseErkundung erweitert.

So implementiert Looker extends innerhalb von Suchfiltern

Das Erweitern eines Objekts innerhalb eines Suchfilters ist ein erweitertes LookML-Konzept. Bevor Sie extends in einem Suchfilter verwenden, sollten Sie folgende Kenntnisse haben:

  • Implementierung von extends durch Looker: Wenn sowohl im Objekt expanded als auch im Objekt extern ein LookML-Element definiert ist, wird die Version im erweiterten Objekt verwendet, sofern der Parameter nicht additiv ist. Weitere Informationen finden Sie auf der Dokumentationsseite Code mit Erweiterungen wiederverwenden.
  • So implementiert Looker Suchfilter: Wenn ein LookML-Element in mehreren Suchfiltern definiert ist, überschreibt der letzte Suchfilter vorherige Suchfilter. Weitere Informationen finden Sie auf dieser Seite im Abschnitt Suchfilter werden in der richtigen Reihenfolge angewendet.

Außerdem sollten Sie verstehen, wie Looker diese Prinzipien kombiniert, um extends, die bei Verfeinerungen verwendet werden, zu implementieren. Hier sehen Sie die von Looker implementierte Reihenfolge. Bei Konflikten hat jeder Schritt Vorrang vor dem vorherigen.

  1. Werte aus der im Objekt angegebenen extends
  2. Werte aus dem extends, der in Optimierungen des Objekts angegeben wurde
  3. Werte aus dem Objekt
  4. Werte aus den Optimierungen des Objekts

Das folgende Beispiel veranschaulicht den Wert des Parameters label in den einzelnen Schritten der Implementierung:

explore: orders_base {
  label: "Orders Base"
  view_name: orders
  extension: required
}

explore: users_base {
  label: "Users Base"
  view_name: users
  extension: required
}

explore: orders {
  label: "Orders"
  extends: [orders_base]
}

explore: +orders {
  label: "Orders Refined"
  extends: [users_base]
}

In diesem Beispiel implementiert Looker den Wert von label für das explorative Analysetool orders:

  1. Werte aus dem extends, der im Objekt angegeben ist. Da orders Explore den Parameter extends hat, startet Looker mit den LookML-Elementen des Objekts, das erweitert wird, in diesem Fall dem orders_base-Feature. An diesem Punkt ist der label-Wert „Orders Base“ (Bestellungsbasis) angegeben.
  2. Werte aus der extends, die bei Optimierungen des Objekts angegeben wurden. Da orders einen Suchfilter enthält und der Suchfilter einen extends-Parameter hat, wendet Looker anschließend LookML-Elemente aus der Erweiterung des Suchfilters an. Das ist in diesem Fall das users_base-Feature. An diesem Punkt ist der Wert von label „Nutzerbasis“.
  3. Werte aus dem Objekt. Nachdem alle Erweiterungen bearbeitet wurden, wendet Looker Elemente aus dem erweiterten Objekt an. In diesem Fall ist das die orders-Erkundung. Bei Konflikten gewinnt das Erweiterungsobjekt. Der label-Wert ist jetzt „Orders“.
  4. Werte aus den Optimierungen des Objekts: Schließlich wendet Looker Elemente aus allen Suchfiltern des orders-explorativen Analysetools an. Bei Konflikten gewinnt das Suchfilterobjekt. Der Wert von label ist jetzt „Verfeinerte Bestellungen“.

Der Suchfilter extends ist additiv

Wie auf dieser Seite im Abschnitt Suchfilter überschreiben: werden die ursprünglichen Einstellungen eines Objekts überschrieben. Das gilt nicht für den Parameter extends. Wenn extends in einem Suchfilter verwendet wird, wird der Wert im Parameter extends an die Liste der im ursprünglichen Objekt oder in vorherigen Suchfiltern erweiterten Elemente angehängt. Im Falle von Konflikten hat das letzte Element in der Kette der Verlängerungen Vorrang.

Unten sehen Sie zum Beispiel ein Basis-Erkunden mit dem Namen orders_base und ein exploratives Analysetool orders, das die Basis erweitert. Außerdem gibt es eine users_base-Entdeckung und den +orders-Suchfilter, der users_base erweitert:

explore: orders_base {
  view_name: orders
  extension: required
  # other Explore parameters
}

explore: users_base {
  view_name: users
  extension: required
  # other Explore parameters
}

explore: orders {
  extends: [orders_base]
  # other Explore parameters to build on the base Explore
}

explore: +orders {
  extends: [users_base]
  # other Explore parameters to build on the base Explores
}

Mit dem Parameter „orders“ wird das orders_base erweitert. Durch die +orders-Optimierungen wird das users_base der Liste extends hinzugefügt. Das Ergebnis ist, dass +orders Explore jetzt sowohl orders_base als auch users_base erweitert, als ob das das ursprüngliche LookML für das Explore wäre:

explore: orders {
  extends: [orders_base, users_base]
}

Im Falle von Konflikten hat das letzte Element in der Kette der Verlängerungen Vorrang. In diesem Beispiel überschreiben die Elemente in users_base alle in Konflikt stehenden Elemente in orders_base.

Auf der Dokumentationsseite Code mit Erweiterungen wiederverwenden wird das Konzept von mehr als einem Objekt erweitert.

Noch eine letzte Sache: In diesem Beispiel spielt die Reihenfolge der explore-Parameter keine Rolle. Bei mehreren Verfeinerungen desselben Objekts ist die Reihenfolge jedoch entscheidend. Wie auf dieser Seite im Abschnitt Suchfilter werden in der richtigen Reihenfolge beschrieben, überschreibt der letzte Suchfilter in einer Datei vorherige Suchfilter.

Suchfilter in Ihrem LookML-Projekt verwenden

Hier sind die allgemeinen Schritte zur Optimierung der Ansichten und Entdeckungen Ihres Projekts aufgeführt:

  1. Wählen Sie die Datenansicht oder das explorative Analysetool aus, das Sie verfeinern möchten.
  2. Wählen Sie aus, wo Ihre Suchfilter gespeichert werden sollen. Sie können Suchfilter in jeder vorhandenen LookML-Datei hinzufügen oder separate LookML-Dateien für Ihre Suchfilter erstellen. Ein Beispiel für das Erstellen generischer LookML-Dateien finden Sie in der Anleitung zum Erstellen einer Datentestdatei auf der Seite Informationen zu anderen Projektdateien.
  3. Verwenden Sie den Parameter include, um Ihre Suchfilter in das Modell aufzunehmen:
    • In die Datei, in die Sie Ihre Suchfilter schreiben, müssen Sie die Dateien der LookML-Datei einschließen, die Sie verfeinern möchten. Sie erhalten Warnungen von der Looker-IDE, wenn Sie ein Objekt optimieren, das nicht enthalten ist.
    • Fügen Sie der Modelldatei die Dateien hinzu, für die die Suchfilter definiert sind. Sie können Dateien und Einsatzmöglichkeiten auf sehr kreative Weise kombinieren. Weitere Informationen finden Sie im Abschnitt Mit Suchfiltern Ebenen zu Ihrem Modell hinzufügen auf dieser Seite.

Beispiel

Auf Basis von LookML-Objekten können Sie Ansichten und Explores einfach anpassen, ohne das ursprüngliche LookML bearbeiten zu müssen. Das ist besonders dann nützlich, wenn Ihre Ansichten und explorativen Datenanalysen in Ihrem Projekt schreibgeschützt sind, z. B. mit Dateien, die aus anderen Projekten importiert wurden. Hier siehst du ein Beispiel für die Optimierung einer explorativen Datenanalyse.

Hier sehen Sie das LookML für das explorative Analysetool aircraft:


explore: aircraft {
  join: aircraft_types {
    type: left_outer
    sql_on: ${aircraft.id} = ${aircraft_types.id} ;;
    relationship: many_to_one
  }

  join: aircraft_engine_types {
    type: left_outer
    sql_on: ${aircraft.id} = ${aircraft_engine_types.id} ;;
    relationship: many_to_one
  }
}

Dieses explorative Analysetool enthält mehrere Datenansichten, von denen jede zahlreiche Dimensionen hat.

Jetzt wird mit einem anderen LookML-Projekt namens e_faa_refined die Explore-Datei aircraft importiert. Im Projekt e_faa_refined können Sie einen Suchfilter verwenden, um das explorative Analysetool aircraft erheblich zu vereinfachen.

Da die explorative Datenanalyse „aircraft“ eine importierte Datei ist, können Sie sie nicht direkt bearbeiten. Stattdessen können Sie einen Suchfilter hinzufügen. Hier ein Beispiel für eine separate Datei mit dem Namen refinements.lkml, die dieses LookML enthält:

include: "//e_faa_original/Explores/aircraft.explore.lkml"

explore: +aircraft {
  label: "Aircraft Simplified"
  fields: [aircraft.aircraft_serial, aircraft.name, aircraft.count]
}

Die Datei refinements.lkml enthält Folgendes:

  • Der Parameter include zum Einbinden der ursprünglichen Datei aircraft.explore.lkml aus dem importierten Projekt. Informationen dazu, wie Sie auf importierte Projektdateien verweisen, finden Sie auf der Dokumentationsseite Dateien aus anderen Projekten importieren.
  • Optimierungen der aircraft-Erkundung:
    • Das +-Zeichen vor dem Namen des explorativen Analysetools gibt an, dass ein Suchfilter nur für einen vorhandenen Suchfilter verwendet wird.
    • Durch den Parameter label wird das Label „Erkunden“ in „Vereinfachtes Flugzeug“ geändert.
    • Der Parameter fields gibt an, dass nur drei Felder im explorativen Analysetool angezeigt werden.

Das Endergebnis war, dass es die ursprüngliche aircraft-Ansicht und die aircraft-Ansicht wäre:

explore: aircraft {
  label: "Aircraft Simplified"
  }

view: aircraft {
  sql_table_name: flightstats.aircraft ;;

  dimension: aircraft_serial {
    type: string
    sql: ${TABLE}.aircraft_serial ;;
  }

  dimension: name {
    type: string
    sql: ${TABLE}.name ;;
  }

  measure: count {
    type: count
  }
}

Ein Beispiel für die Verwendung von Suchfiltern zum Anpassen einer einzelnen Ansicht für mehrere Anwendungsfälle finden Sie im Kochbuch-Rezept Maximierung der Codewiederverwendbarkeit mit DRY LookML.

Andere Anwendungsfälle für Optimierungen

Wie bereits erwähnt, sind Optimierungen ideal für die Anpassung schreibgeschützter LookML-Objekte wie Looker Blocks oder importierte Dateien.

Sobald Sie jedoch den Eindruck haben, dass Sie Optimierungen vorgenommen und in Ihre Modelle aufgenommen haben, können Sie mit Ihren Projekten sehr interessante Dinge erreichen, wie in den folgenden Beispielen beschrieben.

Verwenden von Suchfiltern zum Hinzufügen von Analysen

Sie können Suchfilter verwenden, um Analysen zu Ihrem Modell hinzuzufügen, ohne die ursprünglichen LookML-Dateien zu berühren. Wenn beispielsweise die Datenansichten und explorativen Datenanalysen aus Tabellen in Ihrer Datenbank generiert werden und in einer LookML-Datei mit dem Namen faa_basic.lkml gespeichert werden, können Sie eine faa_analysis.lkml-Datei erstellen, in der Sie mithilfe von Suchfiltern Analysen hinzufügen können. Hier ist ein Beispiel für eine neue abgeleitete Tabelle namens distance_stats mit einer Fernanalyse. Dieses Beispiel zeigt die Verfeinerungen der vorhandenen flights-explorativen Datenanalyse aus der Datei faa_basic.lkml, die die abgeleitete Tabelle distance_stats mit der Funktion „Erkunden“ in flights verbindet. Außerdem wird unten im Beispiel die vorhandene Ansicht flights so verfeinert, dass neue Felder aus der Analyse hinzugefügt werden:

include: "faa_basic.lkml"

explore: +flights {
  join: distance_stats {
    relationship: one_to_one
    type: cross
  }
}

view: distance_stats {
  derived_table: {
    explore_source: flights {
      bind_all_filters: yes
      column: distance_avg {field:flights.distance_avg}
      column: distance_stddev {field:flights.distance_stddev}
    }
  }
  dimension: avg {
    type:number
    sql: CAST(${TABLE}.distance_avg as INT64) ;;
  }
  dimension: stddev {
    type:number
    sql: CAST(${TABLE}.distance_stddev as INT64) ;;
  }
}
view: +flights {
  measure: distance_avg {
    type: average
    sql: ${distance} ;;
  }
  measure: distance_stddev {
    type: number
    sql: STDDEV(${distance}) ;;
  }
  dimension: distance_tiered2 {
    type: tier
    sql: ${distance} ;;
    tiers: [500,1300]
  }
}

Ebenen mithilfe von Suchfiltern zu Ihrem Modell hinzufügen

Ein weiterer interessanter Anwendungsfall für Verfeinerungen ist das Hinzufügen von Ebenen zu Ihrem Projekt. Sie können mehrere Suchfilterdateien erstellen und sie dann strategisch einbinden, um Ebenen hinzuzufügen.

Beispielsweise enthält das FAA-Projekt eine faa_raw.lkml-Datei, die alle Ansichten und Explores enthält, die aus Tabellen in Ihrer Datenbank generiert wurden. Diese Datei hat eine Ansicht für jede Tabelle in der Datenbank mit jeweils einer Dimension für jede Datenbankspalte.

Zusätzlich zur Rohdatei können Sie eine faa_basic.lkml-Datei erstellen, um eine neue Ebene mit grundlegenden Suchfiltern hinzuzufügen, z. B. Joins zu Ihren explorativen Datenanalysen oder Messwerte zu Ansichten hinzufügen. Beispiel:

include: "faa_raw.lkml"

explore: +flights {
  join: carriers {
    sql_on: ${flights.carrier} = ${carriers.name} ;;
  }
}

view: +flights {
  measure: total_seats {
    type: sum
    sql: ${aircraft_models.seats} ;;
  }
}

Anschließend können Sie die Datei faa_analysis.layer.lkml hinzufügen, um eine neue Ebene mit Analysen hinzuzufügen. Ein Beispiel für eine Analysedatei finden Sie im Unterabschnitt Suchfilter verwenden, um Analysen hinzuzufügen.

Dann müssen Sie nur alle Suchfilterdateien in die Modelldatei aufnehmen. Sie können die Modelldatei auch verwenden, um Suchfilter hinzuzufügen und die Ansichten auf die Datenbanktabellen zu verweisen, auf die Sie verweisen möchten:

connection: "publicdata_standard_sql"

include: "faa_raw.lkml"
include: "faa_basic.lkml"
include: "faa_analysis.lkml"

view: +flights {
  sql_table_name: lookerdata.faa.flights;;
}
view: +airports {
  sql_table_name: lookerdata.faa.airports;;
}
view: +aircraft {
  sql_table_name: lookerdata.faa.aircraft;;
}
view: +aircraft_models{
  sql_table_name: lookerdata.faa.aircraft_models;;
}
view: +carriers {
  sql_table_name: lookerdata.faa.carriers;;
}

Sie können diese Modelldatei duplizieren und auf verschiedene Datenbanktabellen verweisen oder Sie können verschiedene Suchfilterdateien verwenden, die Sie erstellt haben, um andere Ebenen in Ihrem Modell zu definieren.

Optimierungen für PATs verwenden

Wie auf dieser Seite im Abschnitt Suchfilter im Vergleich zu Erweiterungen beschrieben, wird mit einer Erweiterung eine neue Kopie des Objekts erstellt, das erweitert wird. Im Fall von persistenten abgeleiteten Tabellen (PAT) sollten Sie keine Erweiterungen verwenden, da durch jede Erweiterung eines PDT eine neue Kopie der Tabelle in Ihrer Datenbank erstellt wird.

Sie können jedoch Suchfilter der Ansicht der PAT hinzufügen, da durch Suchfilter keine neue Kopie des zu erstellenden Objekts erstellt wird.

Anhand von Metadaten Suchfilter für ein Objekt aufrufen

Sie können in der Looker-IDE auf einen explore- oder view-Parameter klicken und mithilfe des Metadatenbereichs die Suchfilter für das Objekt aufrufen. Weitere Informationen finden Sie auf der Dokumentationsseite zu Metadaten für LookML-Objekte.

Wichtige Punkte

Projekte mit Lokalisierung

Wenn Sie ein Objekt verfeinern, beachten Sie, dass die Lokalisierungsregeln auch für Ihre Optimierungen gelten. Wenn Sie ein Objekt optimieren und dann neue Labels oder Beschreibungen definieren, sollten Sie Lokalisierungsdefinitionen in den Gebietsschema-Stringdateien Ihres Projekts angeben. Weitere Informationen finden Sie auf der Dokumentationsseite zum Lokalisieren des LookML-Modells.