Konstante

Nutzung

Konstante: constant_name {
value: "string"
export: none | override_required | override_optional
}
Hierarchie
constant
Standardwert
Keine

Akzeptiert
  • Ein value-Unterparameter, der einen String akzeptiert, der den Wert der Konstante angibt
  • Ein export-Unterparameter, der angibt, ob die Konstante beim Importieren von Projekten überschrieben werden muss

Definition

Der Parameter constant definiert eine LookML-Konstante, sodass Sie einen Wert angeben können, der in einem Projekt wiederverwendet werden kann. Konstanten können an einer beliebigen Stelle im Modell referenziert werden, wo Strings akzeptiert werden, und mit den Parametern model und explore eines LookML-Dashboard-Elements, wodurch Wiederholungen in Ihrem LookML-Code reduziert werden.

Konstanten müssen in der Projektmanifestdatei definiert werden. Konstanten können dann im gesamten Projekt mit der Syntax @{constant_name} verwendet werden.

Mit dem Unterparameter export von constant können Sie festlegen, ob Entwickler den Wert einer Konstante überschreiben sollen, wenn Dateien, die darauf verweisen, in ein anderes Projekt importiert werden.

export

Sie können den Unterparameter export von constant verwenden, um zu bestimmen, wie eine Konstante verwendet werden kann, wenn Dateien, die auf diese Konstante verweisen, in andere Projekte importiert werden.

Für importierte Dateien, die auf eine Konstante verweisen, wird standardmäßig der Wert verwendet, der im Importprojekt in der Manifestdatei des importierten Projekts angegeben ist. Der Parameter export gibt an, ob Entwickler eine Konstante überschreiben möchten. Dazu geben Sie einen neuen Wert für diese Konstante an, der beim Importieren von Projekten verwendet werden soll. Der Parameter export hat die folgenden möglichen Werte:

  • none: Der Standardwert für export. Der Wert der Konstante kann im Importprojekt nicht überschrieben werden. Das Importprojekt verwendet den in der Manifestdatei des importierten Projekts angegebenen konstanten Wert.
  • override_optional: Der Wert der Konstante kann im Importprojekt optional überschrieben werden. Wenn in der Manifestdatei des Importprojekts kein Wert angegeben ist, wird der ursprüngliche Wert aus dem importierten Projekt verwendet.
  • override_required: Das Importprojekt muss den konstanten Wert überschreiben, der ursprünglich in der Manifestdatei des importierten Projekts angegeben ist. Wenn im Importprojekt kein neuer Konstantenwert angegeben ist, zeigt Looker einen Fehler an.

Konstanten sind nur für Dateien aus dem Projekt verfügbar, in dem sie ursprünglich definiert wurden. Daher können Konstanten, die in einem Projekt definiert sind, dessen Dateien Sie importiert haben, nur von den importierten Dateien verwendet werden, nicht von den im Importprojekt definierten Dateien.

Wenn Sie in den Dateien des Importprojekts eine Konstante verwenden möchten, müssen Sie in der Manifestdatei des Importprojekts eine neue Konstante definieren. Eine auf diese Weise definierte Konstante ist nur für die Dateien verfügbar, die im Importprojekt definiert sind.

Wenn Sie Dateien importieren, die auf eine Konstante verweisen, können Sie in der Manifestdatei des Importprojekts den Unterparameter override_constant von local_dependency oder remote_dependency verwenden, um einen neuen Wert für eine Konstante anzugeben, bei der export auf override_optional oder override_required festgelegt ist.

Weitere Informationen und ein Beispiel zum Überschreiben von Konstanten beim Importieren von Projekten finden Sie auf der Dokumentationsseite Dateien aus anderen Projekten importieren.

Beispiele

Im Folgenden finden Sie einige Beispiele dafür, wie Sie mit dem Parameter constant Werte definieren können, die in einem Projekt verwendet werden können.

Explorative Datenanalysen mit dem Parameter constant kennzeichnen

Angenommen, Sie möchten in der Benutzeroberfläche zwei „Erkunden“-Labels mit den Labels San Francisco-Nutzer und San Francisco-Aufträge erstellen. Dazu können Sie in der manifest.lkml-Datei für Ihr Projekt eine Konstante city mit dem Wert "San Francisco" definieren:

constant: city {
  value: "San Francisco"
}

Auf diese Konstante kann dann in einem beliebigen Bereich Ihres Projekts, in dem ein String akzeptiert wird, mit der Syntax @{city} verwiesen werden. In diesem Beispiel können Sie die explorativen Datenanalysen vom Typ users und orders definieren. Geben Sie dazu "@{city} Users" und "@{city} Orders" als Werte für den label-Parameter an. Beispiel:


explore: users {
  label: "@{city} Users"
}

explore: orders {
  label: "@{city} Orders"
}

In diesem Beispiel werden in Looker San Francisco-Nutzer und San Francisco-Bestellungen im Menü „Erkunden“ und in den Titeln der Abfragen anstelle der Standardlabels Nutzer und Aufträge angezeigt:

Parameter sql_table_name mit Konstanten verwenden

Angenommen, Sie möchten mehrere Ansichten basierend auf Tabellen im Schema 02349_sfo erstellen. Damit Sie den Wert 02349_sfo nicht mehrmals angeben müssen, erstellen Sie in der Datei manifest.lkml für Ihr Projekt eine Konstante mit dem Namen schema:


constant: schema {
  value: "02349_sfo"
}

Sie können dann Ansichten basierend auf dem 02349_sfo-Schema erstellen, indem Sie @{schema}.view_name als Wert für den sql_table_name-Parameter angeben:


view: users {
  sql_table_name: @{schema}.users ;;
}

Dadurch wird eine Ansicht namens Users erstellt, die auf der Tabelle users aus dem Schema 02349_sfo basiert.

Liquid-Variablen und HTML mit Konstanten verwenden

Angenommen, Sie möchten negative Datenwerte in Klammern und in einer roten Schriftart anzeigen. Wenn Sie diese Formatierung als Wert für eine LookML-Konstante festlegen, können Sie die Formatierung mit Liquid-Variablen und HTML nur einmal angeben. Anschließend können Sie jederzeit auf die Konstante verweisen, wenn Sie diese Formatierung auf ein Feld anwenden möchten.

Sie können beispielsweise die Konstante negative_format erstellen, um diese Formatierung auf ein Feld anzuwenden:


constant: negative_format {
  value: "{% dynamic if value < 0 %}&#60;p style=&#92;"color:red; &#92;">({{rendered_value}})</p>{% dynamic else %} {{rendered_value}} {% dynamic endif %}"
}

Dadurch wird eine Konstante negative_format erstellt, die angibt, dass negative Datenwerte eine rote Schriftart haben und von Klammern umgeben sein sollen. Anschließend können Sie diese Formatierung mit dem Parameter html auf Dimensionen und Messwerte im Dataset anwenden.

Sie können z. B. die Gesamtmenge von type: sum erstellen und @{negative_format} als Wert für den Parameter html angeben:


measure: total_amount {
  type: sum
  value_format_name: usd
  sql: ${amount} ;;
  html: @{negative_format} ;;
}

Negative Werte in der Tabelle werden für die Messung Gesamtbetrag gemäß der Konstante negative_format mit einer roten Schriftart formatiert und in Klammern gesetzt:

Konstanten in LookML-Dashboards verwenden

Wenn Sie ein Dashboard-Element für ein LookML-Dashboard definieren, können Sie mithilfe von LookML-Konstanten das Modell und das Element definieren, auf dem ein Element basiert.

Angenommen, Sie haben die Konstanten model_name und explore_name in der Datei manifest.lkml für Ihr Projekt definiert:


constant: model_name {
  value: "thelook"
}

constant: explore_name {
  value: "orders"
}

In Ihrer Dashboard-Datei können Sie den Wert von model auf "@{model_name}" und den Wert von explore auf "@{explore_name}" für alle Dashboard-Elemente festlegen, die auf dem Modell thelook und dem orders basieren.

Angenommen, Sie bearbeiten die LookML für ein Spaltendiagrammelement. In der Dashboard-Datei können Sie die Werte für die Parameter model und explore so angeben:


- dashboard: dashboard_name
  title: "dashboard title"
  layout: newspaper
  elements:
  - title: Element Title
    name: element_name
    model: "@{model_name}"
    explore: "@{explore_name}"
    type: looker_column

Wichtige Informationen

Verweise auf Konstanten innerhalb einer Konstante

Wenn Sie eine Konstante definieren, können Sie auf andere Konstanten verweisen, die in der Manifestdatei für Ihr Projekt definiert sind. Angenommen, Sie haben bereits die Konstante city deklariert:


constant: city {
  value: "San Francisco"
}

Sie können dann eine Konstante state deklarieren, die auf die Konstante city im obigen Beispiel verweist:


constant: city_state {
  value: "@{city}, California"
}

Die oben angegebene Konstante state wird in den String „San Francisco, Kalifornien“ aufgelöst.

Maskierung von Konstantensyntax

Wenn Sie einen String schreiben möchten, der einer Konstantensyntax ähnelt, aber nicht möchten, dass er als Konstante ausgewertet wird, können Sie die konstante Syntax mit dem Escape-Zeichen \` after the@` als umgekehrten Schrägstrich maskieren. Beispiel:


dimension: id {
  type: string
  label: "@&#92;{id}"
  sql: ${TABLE}.id
}

Im obigen Beispiel zeigt der Parameter label den String @{id} als Label für die Dimension id an, anstatt die Konstante id auszuwerten und ihren Wert auszugeben.

Konstantenreferenzen werden nicht ausgewertet, wenn die Klammern nicht geschlossen sind. In diesem Fall ist es nicht erforderlich, die konstante Syntax zu maskieren. Daher würde @{id im Beispiel unten nicht als Konstante ausgewertet werden.


dimension: id {
  type: string
  label: "@{id"
  sql: ${TABLE}.id
}