Dimensionsgruppe

Nutzung

view: view_name {
dimension_group: Feldname { ... }
}
Hierarchie
dimension_group
Akzeptiert
Eine Looker-Kennung, die als erster Teil des Namens für jede von der Dimensionsgruppe erstellte Dimension dient.

Sonderregeln
  • type kann time oder duration sein
  • Wird normalerweise mit einem timeframes- oder intervals-Parameter verwendet
  • Verwenden Sie einen datatype-Parameter, wenn die Dimensionsgruppe nicht auf einem Datum/Uhrzeit-Feld basiert.
  • Verwenden Sie bei Dimensionsgruppen von type: time den Parameter convert_tz, wenn Sie die automatische Konvertierung von Zeitzonen verhindern möchten.

Definition

Mit dem Parameter dimension_group lassen sich mehrere zeit- oder dauerbasierte Dimensionen auf einmal erstellen. Sie definieren die Dimensionsgruppe und die Dimensionsgruppe erstellt eine Gruppe einzelner Dimensionen für unterschiedliche Intervalle oder Zeiträume. Sie können beispielsweise eine Dimensionsgruppe von type: time auf der Grundlage einer Zeitstempelspalte angeben. Die Dimensionsgruppe erstellt dann die entsprechenden Dimensionen, um die Daten nach Uhrzeit, Datum, Woche, Stunde, Quartal und Jahr darzustellen.

Form und Funktion der Dimensionsgruppe unterscheiden sich je nach type-Wert der Dimensionsgruppe:

Dauertyp

type: duration wird in Verbindung mit einem dimension_group verwendet, um eine Reihe von Intervallen für die Dauer zu berechnen.

Die Dimensionsgruppe für type: duration ist:

dimension_group: dimension_group_name {
  type: duration
  sql_start: SQL expression ;;  # often this is a single database column
  sql_end: SQL expression ;;  # often this is a single database column
  intervals: [interval, interval, …] # valid intervals described below
}

Für Dimensionsgruppen von type: duration:

  • Die Parameter sql_start und sql_end enthalten SQL-Ausdrücke, die Start- und Endzeit für die Dauer definieren. Weitere Informationen finden Sie im Abschnitt Anfang und Ende einer Dauer festlegen auf dieser Seite.

  • Der Parameter intervals gibt eine oder mehrere Intervalleinheiten an, die zum Messen des Zeitunterschieds verwendet werden sollen. Die möglichen Optionen sind im Abschnitt Intervalloptionen auf dieser Seite aufgeführt.

  • Die Werte für die Dauer werden auf die nächste Ganzzahl angerechnet.

  • Der Parameter datatype ist optional. Wenn Ihre Dimensionsgruppe nicht auf einem Datum und Uhrzeit basiert, können Sie stattdessen ein Epochen-, Zeitstempel-, Datums- oder JJJJMMTT-Format angeben. Bei Dimensionsgruppen von type: duration gilt der Parameter datatype sowohl für die Parameter sql_start als auch für sql_end. Achten Sie also darauf, dass sowohl sql_start als auch sql_end den angegebenen Datentyp haben. Der Parameter datatype wird im Abschnitt Datenbank datatype angeben auf dieser Seite ausführlicher beschrieben.

Auch wenn sie hier nicht aufgeführt sind, können viele Parameter auf Feldebene auch mit Dimensionsgruppen verwendet werden.

Wenn Sie beispielsweise Spalten für enrollment_date und graduation_date haben, können Sie eine Dimensionsgruppe für die Dauer erstellen, um zu sehen, wie viel Zeit Schüler in der Schule verbracht haben (in Wochen- und Jahresintervallen berechnet):

dimension_group: enrolled {
  type: duration
  intervals: [week, year]
  sql_start: ${TABLE}.enrollment_date ;;
  sql_end: ${TABLE}.graduation_date ;;
}

In der Benutzeroberfläche von „Erkunden“ wird dabei eine Dimensionsgruppe namens Dauer der Registrierung mit den einzelnen Dimensionen Angemeldete Wochen und Angemeldete Jahre erstellt.

Intervalloptionen

Der Parameter intervals teilt der Dimensionsgruppe mit, welche Intervalleinheiten zum Messen des Zeitunterschieds zwischen der sql_start- und der sql_end-Zeit verwendet werden sollen. Der Parameter intervals wird nur für Dimensionsgruppen von type: duration unterstützt.

Wenn intervals nicht enthalten ist, umfasst die Dimensionsgruppe alle möglichen Intervalle.

Die Optionen für den Parameter intervals sind:

Intervall Beschreibung Beispielausgabe
day Berechnet eine Zeitdifferenz in Tagen. 9 days
hour Berechnet einen Zeitunterschied in Stunden. 171 hours
minute Berechnet einen Zeitunterschied in Minuten. 10305 minutes
month Berechnet eine Zeitdifferenz in Monaten. 3 months
quarter Berechnet eine Zeitdifferenz in Quartalen des Jahres. 2 quarters
second Berechnet einen Zeitunterschied in Sekunden. 606770 seconds
week Berechnet einen Zeitunterschied in Wochen. 6 weeks
year Berechnet einen Zeitunterschied in Jahren. 2 years

Beginn und Ende einer Dauer festlegen

Bei Dimensionsgruppen von type: duration enthalten die Parameter sql_start und sql_end die Start- und Endinformationen, die zum Berechnen eines Zeitunterschieds verwendet werden. Diese Felder können alle gültigen SQL-Ausdrücke annehmen, die Daten im Format Zeitstempel, Datetime, Datum, Epoche oder jjjjmmtt enthalten. Die Felder sql_start und sql_end können eines der folgenden Felder sein:

  • Ein Verweis auf einen raw-Zeitraum aus einer vorhandenen Dimensionsgruppe von type: time
  • Ein Verweis auf eine Dimension von type: date_raw
  • Ein SQL-Ausdruck, der ein Zeitstempel ist, z. B. ein Verweis auf eine SQL-Spalte, die ein Zeitstempel ist
  • Ein SQL-Ausdruck, der eine Zeit aus Ihrer Datenbank mit dem entsprechenden Ausdruck für Ihren Dialekt abruft
  • Eine LookML-Feldreferenz mit der Feldtypreferenz ::datetime oder ::date

Angenommen, Sie haben eine Dimension mit dem Namen faa_event_date_raw, die Datum/Uhrzeit-Informationen enthält:

dimension: faa_event_date_raw {
  type: date_raw
  sql: ${TABLE}.event_date ;;
}

Sie können eine Dimensionsgruppe von type: duration erstellen, die die seit dem FAA-Ereignis angegebene Zeit berechnet. Dazu können Sie die Dimension faa_event_date_raw als Startzeit für die Berechnung und dann für die Endzeit der Berechnung den SQL-Ausdruck des Dialekts für die aktuelle Zeit verwenden. Dieses Beispiel bezieht sich auf eine MySQL-Datenbank:

dimension_group: since_event {
  type: duration
  intervals: [hour, day]
  sql_start: ${faa_event_date_raw} ;;
  sql_end: CURRENT_TIMESTAMP();;
}

In der Benutzeroberfläche wird eine Dimensionsgruppe namens Dauer seit Ereignis mit den einzelnen Dimensionen Stunden seit Ereignis und Tage seit Ereignis generiert.

Referenzintervalle eines anderen LookML-Felds

Um in einem dimension_group von type: duration auf einen interval-Wert zu verweisen, verwenden Sie die Syntax ${interval_fieldname} und verwenden Sie dabei die Pluralversion des interval-Werts. Im folgenden LookML-Beispiel verwendet die average_days_since_event-Messung ${days_since_event}, um auf das Intervall day in der Dimensionsgruppe since_event zu verweisen:


dimension_group: since_event {
  type: duration
  intervals: [hour, day, week, month, quarter, year]
  sql_start: ${faa_event_date_raw} ;;
  sql_end: CURRENT_TIMESTAMP();;
}

measure: average_days_since_event {
  type: average
  sql: ${days_since_event} ;;
}

LookML-Feldtypverweise mit Dauerfeldern verwenden

Zum Erstellen eines benutzerdefinierten Felds für die Dauer können Sie den Referenztyp ::date oder ::datetime für die Dimensionen angeben, auf die in den Parametern sql_start und sql_end einer Dimensionsgruppe von type: duration verwiesen wird. Mit der Syntax view_name.field_name::type, die auf der Dokumentationsseite Einbindung von SQL und Verweisen auf LookML-Objekte beschrieben wird, können Sie eine ::date- oder ::datetime-Version eines Felds erstellen, ohne die Verweise auf diese Dimensionen in Strings umzuwandeln.

Angenommen, Sie haben eine created-Dimensionsgruppe von type: time mit den Zeiträumen time, date, week, month und raw, die so definiert ist:


dimension_group: created {
  type: time
  timeframes: [time, date, week, month, raw]
  sql: ${TABLE}.created_at ;;
}

Mit den Dimensionen created_month und created_time können Sie eine Dimensionsgruppe von type: duration erstellen, die die Zeitspanne zwischen einem Datum aus dem Feld created_date und dem ersten Tag des Monats berechnet, in dem dieses Datum aufgetreten ist, gemessen in Wochen, Tagen und Stunden:


dimension_group: since_first_of_month {
  type: duration
  intervals: [week, day, hour]
  sql_start: ${created_month::datetime} ;;
  sql_end: ${created_time::datetime} ;;
}

In der Benutzeroberfläche von „Erkunden“ wird dadurch eine Dimensionsgruppe namens Dauer seit dem ersten Monat mit den einzelnen Dimensionen Wochen seit Monatsanfang, Tage seit Monatsanfang und Stunden seit Monatsanfang erstellt. Wenn Sie den Referenztyp ::datetime für die Felder angeben, auf die in den Parametern sql_start und sql_end verwiesen wird, können die Dimensionen created_month und created_time im Zeitstempel in SQL als Zeitstempel behandelt werden.

Angenommen, ein Nutzer wählt in der Feldauswahl die Dimensionen Erstellungsdatum und Tage seit Monatsanfang aus. Wenn einer der für Created Date zurückgegebenen Daten 2019-03-10 ist, wird für Days Seit Erster des Monats der Wert 9 days zurückgegeben.

Time-Typ

type: time wird in Verbindung mit einem dimension_group und dem Parameter timeframes verwendet, um zeitbasierte Dimensionen zu erstellen. So können Sie beispielsweise ganz einfach eine Datums-, Wochen- und Monatsdimension auf der Basis einer einzelnen Zeitstempelspalte erstellen.

Die Dimensionsgruppe für type: time ist:

dimension_group: dimension_group_name {
  type: time
  timeframes: [timeframe, timeframe, …] # valid timeframes described below
  sql: SQL expression ;;  # often this is a single database column
  datatype: epoch| timestamp | datetime | date | yyyymmdd # defaults to datetime
  convert_tz: yes | no   # defaults to yes
}

Für Dimensionsgruppen von type: time:

  • Der Parameter timeframes ist optional, wird jedoch selten übersprungen. Es gibt einen oder mehrere Zeiträume an, die von der Dimensionsgruppe generiert werden sollen. Wenn timeframes nicht enthalten ist, wird jede Dimensionsoption der Dimensionsgruppe hinzugefügt. Die möglichen Optionen sind im Abschnitt Zeitraumoptionen auf dieser Seite aufgeführt.

  • Der Parameter sql für type: time Dimensionsgruppen kann jeden gültigen SQL-Ausdruck annehmen, der Daten in einem Format mit Zeitstempel, Datum, Uhrzeit, Epoche oder jjjjmmtt enthält.

  • Der Parameter datatype ist optional. Wenn Ihre Dimensionsgruppe nicht auf einem Datum/Uhrzeit-Datum basiert, können Sie stattdessen das Format „Epoche“, „Zeitstempel“, „Datum“ oder „JJJJMMTT“ angeben. Sie wird im Abschnitt Datenbank datatype auf dieser Seite ausführlicher beschrieben.

  • Der Parameter convert_tz ist optional und ermöglicht die automatische Konvertierung von Zeitzonen. Sie wird im Abschnitt Zeitzonen-Conversions und convert_tz auf dieser Seite ausführlicher beschrieben.

Auch wenn sie hier nicht aufgeführt sind, können viele Parameter auf Feldebene auch mit Dimensionsgruppen verwendet werden.

Angenommen, Sie haben eine Spalte namens created_at, die Datum/Uhrzeit-Informationen enthält. Sie möchten eine Datums-, Wochen- und Monatsdimension auf der Grundlage dieser Datums- und Uhrzeitangabe erstellen. Sie können Folgendes verwenden:

dimension_group: created {
  type: time
  timeframes: [date, week, month]
  sql: ${TABLE}.created_at ;;
}

In der Benutzeroberfläche von „Erkunden“ werden drei Dimensionen mit den Namen Erstellungsdatum, Erstellt in einer Woche und Erstellt in einem Monat angezeigt. Der dimension_group-Name wird mit den Zeiträumen kombiniert, um die Dimensionsnamen zu generieren.

Zeitraumoptionen

Der Parameter timeframes wird nur für Dimensionsgruppen von type: time unterstützt. Verwenden Sie für Dimensionsgruppen von type: duration stattdessen den Parameter intervals.

Der Parameter timeframes teilt der Dimensionsgruppe mit, welche Dimensionen erzeugt werden sollen. Folgende Optionen sind verfügbar:

Spezielle Zeiträume

Zeitraum Beschreibung Beispielausgabe
raw Der Rohwert aus Ihrer Datenbank ohne Umwandlung oder Zeitzonenkonvertierung. raw ist nur in LookML verfügbar und wird nicht auf der Seite „Entdecken“ angezeigt. Der Zeitraum raw gibt im Gegensatz zu den meisten anderen Zeiträumen, die einen formatierten String zurückgeben, einen Zeitstempel zurück. Sie wird in erster Linie zum Ausführen von Datenvorgängen für ein Feld verwendet. 2014-09-03
17:15:00 +0000
yesno Eine Dimension vom Typ yesno, die „Yes“ zurückgibt, wenn der Datetime-Wert einen Wert hat. Andernfalls wird „No“ zurückgegeben. Wenn Sie von einem anderen Feld aus auf eine yesno-Dimension für den Zeitraum verweisen, nehmen Sie diesen im Gegensatz zu anderen Zeiträumen nicht in die Referenz auf. Wenn Sie beispielsweise auf einen yesno-Zeitraum in dimension_group: created verweisen möchten, verwenden Sie die Syntax ${created} und nicht ${created_yesno}. Yes

Zeiträume

Zeitraum Beschreibung Beispielausgabe
time Datum/Uhrzeit des zugrunde liegenden Felds. Einige SQL-Dialekte zeigen so genau wie Ihre Datenbank an, andere nur bis zur zweiten. 2014-09-03 17:15:00
time_of_day Tageszeit 17:15
hour Datum/Uhrzeit wurde auf die nächste Stunde gekürzt 2014-09-03 17
hour_of_day Ganzzahl des Tages vom zugrunde liegenden Feld 17
hourX Teilt jeden Tag in Intervalle mit der angegebenen Anzahl an Stunden auf. Weitere Informationen Siehe unten
minute Datum/Uhrzeit wurde auf die nächste Minute gekürzt 2014-09-03 17:15
minuteX Teilt jede Stunde in Intervalle mit der angegebenen Anzahl von Minuten auf. Weitere Informationen Siehe unten
second Datum/Uhrzeit wurde auf die nächste Sekunde gekürzt 2014-09-03 17:15:00
millisecond Datum/Uhrzeit wurde auf die nächste Millisekunde gekürzt. Weitere Informationen zur Dialektunterstützung finden Sie im Abschnitt Unterstützung für Dialekt für Millisekunden und Mikrosekunden auf dieser Seite. 2014-09-03 17:15:00.000
millisecondX Teilt jede Sekunde in Intervalle mit der angegebenen Anzahl von Millisekunden auf. Weitere Informationen zur Unterstützung von Dialekten finden Sie im Abschnitt Dialektunterstützung für Millisekunden und Mikrosekunden auf dieser Seite. Weitere Informationen Siehe unten
microsecond Datum/Uhrzeit wurde auf die nächste Mikrosekunde gekürzt. Informationen zur Dialektunterstützung finden Sie im Abschnitt Dialektunterstützung für Millisekunden und Mikrosekunden auf dieser Seite. 2014-09-03 17:15:00.000000

Zeiträume

Zeitraum Beschreibung Beispielausgabe
date Datum des zugrunde liegenden Felds 2017-09-03

Wochen-Zeiträume

Zeitraum Beschreibung Beispielausgabe
week Datum der Woche, beginnend am Montag des zugrunde liegenden Datums und der Uhrzeit 2017-09-01
day_of_week Nur Wochentag Wednesday
day_of_week_index Wochentagindex (0 = Montag, 6 = Sonntag) 2

Zeiträume

Zeitraum Beschreibung Beispielausgabe
month Jahr und Monat des zugrunde liegenden Datums und der Uhrzeit 2014-09
month_num Ganzzahl des Monats für das zugrunde liegende Datum 9
fiscal_month_num Ganzzahl des Geschäftsmonats der zugrunde liegenden Datumszeit 6
month_name Name des Monats September
day_of_month Tag des Monats 3

Wenn Sie die fiscal_month_num-Zeiträume verwenden möchten, muss der Parameter fiscal_month_offset im Modell festgelegt sein.

Zeiträume im Quartal

Zeitraum Beschreibung Beispielausgabe
quarter Jahr und Quartal des zugrunde liegenden Datums und der Uhrzeit 2017-Q3
fiscal_quarter Geschäftsjahr und -quartal des zugrunde liegenden Datums und der Uhrzeit 2017-Q3
quarter_of_year Quartal mit einem vorangestellten „Q“ Q3
fiscal_quarter_of_year Geschäftsquartal des Jahres mit vorangestelltem "Q" Q3

Wenn Sie die Zeiträume fiscal_quarter und fiscal_quarter_of_year verwenden möchten, muss der Parameter fiscal_month_offset im Modell festgelegt werden.

Jahreszeitrahmen

Zeitraum Beschreibung Beispielausgabe
year Ganzzahliges Jahr des zugrunde liegenden Datums und der Uhrzeit 2017
fiscal_year Ganzzahliges Geschäftsjahr des zugrunde liegenden Datums und Uhrzeit FY2017
day_of_year Tag des Jahres 143
week_of_year Woche des Jahres als Zahl 17

Wenn Sie den Zeitraum fiscal_year verwenden möchten, muss der Parameter fiscal_month_offset im Modell festgelegt werden.

hourX verwenden

In hourX wird X durch 2, 3, 4, 6, 8 oder 12 ersetzt.

Dadurch wird der Tag in Intervalle aufgeteilt, die der angegebenen Anzahl an Stunden entsprechen. Beispiel: hour6 teilt jeden Tag in 6-Stunden-Segmente auf, die so aussehen:

  • 2014-09-01 00:00:00
  • 2014-09-01 06:00:00
  • 2014-09-01 12:00:00
  • 2014-09-01 18:00:00

Beispiel: Eine Zeile mit einem time von 2014-09-01 08:03:17 hätte ein hour6 von 2014-09-01 06:00:00.

minuteX verwenden

In minuteX wird X durch 2, 3, 4, 5, 6, 10, 12, 15, 20 oder 30 ersetzt.

Damit wird jede Stunde in Intervalle aufgeteilt und die angegebene Anzahl von Minuten erreicht. minute15 wird beispielsweise jede Stunde in 15-Minuten-Segmente aufgeteilt. Das sieht dann so aus:

  • 2014-09-01 01:00:00
  • 2014-09-01 01:15:00
  • 2014-09-01 01:30:00
  • 2014-09-01 01:45:00

Beispiel: Eine Zeile mit einem time von 2014-09-01 01:17:35 hätte ein minute15 von 2014-09-01 01:15:00.

millisecondX verwenden

In millisecondX wird X durch 2, 4, 5, 8, 10, 20, 25, 40, 50, 100, 125, 200, 250 oder 500 ersetzt.

Dadurch wird jede Sekunde in Intervalle mit der angegebenen Anzahl von Millisekunden aufgeteilt. millisecond250 wird beispielsweise jede Sekunde in 250 Millisekunden lange Segmente aufgeteilt. Das sieht dann so aus:

  • 2014-09-01 01:00:00.000
  • 2014-09-01 01:00:00.250
  • 2014-09-01 01:00:00.500
  • 2014-09-01 01:00:00.750

Beispiel: Eine Zeile mit einem time von 2014-09-01 01:00:00.333 hätte ein millisecond250 von 2014-09-01 01:00:00.250.

Zeitzonen-Conversions und convert_tz

Im Allgemeinen funktionieren Zeitberechnungen (Unterschiede, Dauern usw.) nur dann richtig, wenn Sie mit Zeitwerten arbeiten, die alle in dieselbe Zeitzone umgewandelt werden. Daher sollten Sie beim Schreiben von LookML Zeitzonen berücksichtigen.

Looker bietet verschiedene Zeitzoneneinstellungen, mit denen zeitbasierte Daten zwischen verschiedenen Zeitzonen umgewandelt werden. Looker führt standardmäßig eine Konvertierung der Zeitzone durch. Der Parameter convert_tz wird für Dimensionsgruppen von type: time unterstützt. Wenn Sie nicht möchten, dass Looker eine Zeitzone für eine bestimmte Dimension oder Dimensionsgruppe umwandelt, können Sie den Parameter convert_tz verwenden, der auf der Dokumentationsseite für den Parameter convert_tz beschrieben ist.

Dialektunterstützung für Millisekunden und Mikrosekunden

Looker unterstützt eine zeitliche Genauigkeit bis auf Mikrosekunden. Einige Datenbanken unterstützen jedoch nur eine Sekunde genau. Wenn eine Datenbank auf einen Zeitraum trifft, der genauer ist als unterstützt, wird sie auf Sekunden aufgerundet.

In der neuesten Version von Looker unterstützen die folgenden Dialekte Millisekunden:

In der neuesten Version von Looker unterstützen die folgenden Dialekte Mikrosekunden:

Datenbank datatype angeben

Mit dem Parameter datatype können Sie die Art der Zeitdaten in Ihrer Datenbanktabelle angeben, die Sie für die Dimensionsgruppe angeben. Dies kann die Abfrageleistung erhöhen.

Bei Dimensionsgruppen von type: time gilt der Parameter datatype für den Parameter sql der Dimensionsgruppe.

Bei Dimensionsgruppen von type: duration gilt der Parameter datatype sowohl für die Parameter sql_start als auch für sql_end. Achten Sie also darauf, dass sowohl sql_start als auch sql_end den angegebenen Datentyp haben.

Der Parameter datatype akzeptiert die folgenden Werte:

  • epoch: Ein SQL-Epochenfeld (d.h. eine Ganzzahl für die Anzahl der Sekunden der Unix-Epoche).
  • date: Ein SQL-Datumsfeld, d.h. ein Feld ohne Informationen zur Tageszeit.
  • datetime: Ein SQL-Datum/Uhrzeit-Feld.
  • timestamp: Ein SQL-Zeitstempelfeld.
  • yyyymmdd: Ein SQL-Feld, das eine Ganzzahl im Format JJJJMMTT enthält.

Der Standardwert für datatype ist timestamp.

Beispiele

Angenommen, Sie haben eine Spalte namens created_at, die Datum/Uhrzeit-Informationen enthält. Sie möchten eine Datums-, Wochen- und Monatsdimension auf der Grundlage dieser Datums- und Uhrzeitangabe erstellen. Sie können Folgendes verwenden:

dimension_group: created {
  type: time
  timeframes: [date, week, month]
  sql: ${TABLE}.created_at ;;
}

-

In der Benutzeroberfläche von „Erkunden“ werden drei Dimensionen mit den Namen Erstellungsdatum, Erstellt in einer Woche und Erstellt in einem Monat angezeigt. Der dimension_group-Name wird mit den Zeiträumen kombiniert, um die Dimensionsnamen zu generieren.

Wichtige Punkte

Auf Dimensionsgruppen muss anhand ihrer einzelnen Dimensionen verwiesen werden

Da eine Dimensionsgruppe eine Gruppe von Dimensionen und nicht nur eine darstellt, können Sie in LookML nicht direkt darauf verweisen. Stattdessen müssen Sie auf die Dimensionen verweisen, die erstellt werden.

Hier ein Beispiel:

dimension_group: created {
  type: time
  timeframes: [date, week, month]
  sql: ${TABLE}.created_at ;;
}

-

Wenn Sie in einem anderen LookML-Feld auf eine dieser Dimensionen verweisen möchten, verwenden Sie die Referenz ${created_date}, ${created_week} oder {$created_month}. Wenn Sie nur ${created} verwenden, weiß Looker nicht, auf welchen Zeitraum Sie verweisen, und es wird ein Fehler angezeigt.

Aus diesem Grund sollte der Parameter primary_key nicht für eine Dimensionsgruppe verwendet werden, wenn Sie mehr als eine timeframe angeben.

Tipp für das Chatteam: Wir werden häufig nach dem Validierungsfehler gefragt, der bei der Verwendung von primary_key auf einem dimension_group mit mehr als einem timeframe auftritt. Weitere Informationen findest du in diesem Community-Thema.

Zeitstempeldaten mit Zeitzoneninformationen

Einige Datenbankdialekte haben Zeitstempeloptionen mit Zeitzoneninformationen. So können Sie Zeitstempeldaten in einem einzelnen Feld speichern, das mehrere Zeitzonen haben kann. Eine Datenzeile kann in UTC gespeichert sein, eine andere in Eastern Time. Ein Beispiel finden Sie in der Zeitstempeldokumentation TIMESTAMP_LTZ, TIMESTAMP_NTZ, TIMESTAMP_TZSnowflake über Informationen zu den Zeitstempeloptionen in Snowflake.

In diesem Fall können bei der Zeitzonenkonvertierung in Looker Fehler auftreten. Um dies zu vermeiden, sollten Sie im Parameter sql der Dimension explizit die Zeitstempeldaten in einen Zeitstempeltyp umwandeln, der keine Zeitzonenkonvertierung durchführt. Im Dialekt Schneeflocke können Sie beispielsweise die Zeitstempelfunktion TO_TIMESTAMP verwenden, um die Zeitstempeldaten umzuwandeln.

Es ist möglich, individuelle Dimensionen für Zeit und Dauer zu erstellen.

Sie können für jeden Zeitraum oder jede Dauer, die Sie in den Bericht aufnehmen möchten, eine Dimension erstellen, anstatt alle Dimensionen in einem einzelnen dimension_group zu generieren. Normalerweise können Sie einzelne Dimensionen nur dann erstellen, wenn Sie die Namenskonvention für den Looker ändern möchten oder wenn Sie in Ihrer Datenbank bereits vorab berechnete Zeitspalten haben. Weitere Informationen finden Sie auf der Dokumentationsseite Dimension, Filter und Parametertypen.

Sie können den ersten Tag der Woche ändern

Standardmäßig beginnen Wochen in Looker am Montag. Sie können dies ändern, indem Sie den Parameter week_start_day auf Modellebene verwenden.

Denken Sie daran, dass week_start_day nicht mit dem week_of_year-Zeitraum funktioniert, weil dieser auf dem ISO-Standard basiert, der Montagwochen verwendet.

Benutzerdefinierte Filter und benutzerdefinierte Felder unterstützen nicht alle Zeiträume

Derzeit werden die Zeiträume day_of_week, fiscal_quarter_of_year, millisecond, millisecondX, microsecond, month_name, quarter_of_year und time_of_day in benutzerdefinierten Filtern und benutzerdefinierten Feldern nicht unterstützt.

In Intervallen von Monaten, Quartalen und Jahren werden nur vollständige Zeiträume gezählt.

Das Intervall month in einer duration-Dimensionsgruppe gilt nur für einen Monat, wenn das Enddatum größer oder gleich dem Starttag ist. Beispiel:

  • Die Differenz in den Monaten vom 26. September bis zum 25. Oktober desselben Jahres beträgt 0.
  • Der Unterschied zwischen dem 26. September und dem 26. Oktober desselben Jahres beträgt 1 Monat.

Die Intervalle quarter und year folgen derselben Logik.