dimension_group

用量

view: view_name {
  dimension_group:  field_name { ... }
}
階層
dimension_group
接受
Looker ID (做為維度群組建立的每個維度名稱的第一部分)

特別規則

定義

dimension_group 參數用於一次建立一組基於時間或基於持續時間的維度。您定義維度群組後,維度群組會為不同間隔時間範圍建立一組個別維度。舉例來說,您可以根據時間戳記資料欄指定 type: time 的維度群組,而維度群組會建立對應的維度,以時間、日期、週、小時、季和年表示資料。

維度群組的形式和功能會因維度群組的 type 值而異:

時間長度類型維度群組

type: duration 會與 dimension_group 搭配使用,計算一組以間隔為準的持續時間維度。

type: duration 的維度群組形式如下:

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, …] # see following explanation for valid intervals
}

適用於 type: duration 的維度群組:

  • sql_startsql_end 參數會提供 SQL 運算式,定義時間範圍的開始和結束時間。詳情請參閱本頁的「定義時間長度的開始和結束時間」一節。

  • intervals 參數會指定一或多個間隔單位,用來測量時間差。如需可選用的間隔,請參閱本頁面的「間隔選項」一節。

  • 系統會將時間長度值無條件捨去到最接近的整數。

  • datatype 參數為選用參數。如果維度群組不是以日期時間為依據,您可以改為指定紀元、時間戳記、日期或 yyyymmdd 格式。如果是 type: duration 的維度群組,datatype 參數會同時套用至 sql_startsql_end 參數,因此請務必確認 sql_startsql_end 都是指定的資料類型。如需 datatype 參數的詳細說明,請參閱本頁的「指定資料庫 datatype」一節。

雖然這裡未列出,但許多欄位層級參數也可用於維度群組。

例如,如果您有 enrollment_dategraduation_date 列,您可以建立一個持續時間維度群組,以查看學生在校時間,以週和年為單位計算:

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

在「探索」使用者介面中,這會產生名為「註冊時間長度」的維度群組,其中包含名為「註冊週數」和「註冊年數」的個別維度。

間隔選項

intervals 參數會告知維度群組,應使用哪些間隔單位來測量 sql_start 時間和 sql_end 時間之間的時間差。intervals 參數僅支援 type: duration 維度群組。

如果未包含 intervals,則維度群組將包含所有可能的區間。

intervals 參數的選項如下:

時間間隔 說明 輸出範例
day 計算天數的時間差。 9 days
hour 計算時差 (以小時為單位)。 171 hours
minute 計算時間差(以分鐘為單位)。 10305 minutes
month 計算以月為單位的時間差。 3 months
quarter 以季為單位計算時間差。 2 quarters
second 計算時間差 (以秒為單位)。 606770 seconds
week 計算以週為單位的時間差。 6 weeks
year 計算以年為單位的時間差。 2 years

定義時間範圍的開始和結束時間

對於維度組 type: durationsql_startsql_end 參數提供用於計算時間差的開始和結束資訊。這些欄位可以接受任何有效的 SQL 表達式,其中包含時間戳記、日期時間、日期、紀元或 yyyymmdd 格式的資料。sql_startsql_end 欄位可以是下列任一項目:

  • 參照現有維度群組的 raw 時間範圍 type: time
  • 指向 type: date_raw 維度的引用
  • 時間戳類型的 SQL 表達式,例如對時間戳類型的 SQL 列的引用
  • 使用適用於您方言的表達式,從資料庫中提取時間的 SQL 表達式
  • 使用 ::datetime::date 欄位類型所引用的 LookML 欄位來引用

舉例來說,假設您有名為 faa_event_date_raw 的維度,其中包含日期時間資訊:

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

您可以建立 type: duration 維度群組,計算自 FAA 事件日期起經過的時間量。如要這麼做,您可以使用 faa_event_date_raw 維度做為計算的開始時間,然後使用方言的 SQL 運算式做為計算的結束時間。本範例適用於 MySQL 資料庫:

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

在 Explore UI 中,這將產生一個名為 事件發生至今的持續時間 的維度群組,其中包含名為 事件發生至今的小時數事件發生至今的天數 的各個維度。

引用另一個 LookML 欄位中的區間

要在 type: durationdimension_group 中引用 interval 值,請使用語法 ${interval_fieldname},使用 interval 值的複數形式。例如,在以下 LookML 範例中,average_days_since_event 度量使用 ${days_since_event} 來引用 since_event 維度組中的 day 區間:


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 欄位型別參照用於時間長度欄位

如要建立自訂時間長度欄位,您可以為 type: duration 維度群組的 sql_startsql_end 參數中參照的維度指定 ::date::datetime 參照類型。view_name.field_name::type 語法 (請參閱「併入 SQL 並參照 LookML 物件」說明文件頁面),可讓您建立欄位的 ::date::datetime 版本,而不必將這些維度的參照轉換為字串。

舉例來說,假設您有 created 維度群組 type: time,且時間範圍為 timedateweekmonthraw,定義如下:


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

使用 created_monthcreated_time 維度,您可以建立 type: duration 維度群組,計算 created_date 欄位中的日期與該日期所在月份的第一天之間的時間長度 (以週、天和小時為單位):


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

在「探索」使用者介面中,這將建立一個名為 自月初以來的持續時間 的維度群組,其中包含 自月初以來的周數自月初以來的天數自月初以來的小時數 等維度。為 sql_startsql_end 參數中參照的欄位指定 ::datetime 參照類型,可讓產生的 SQL 將 created_monthcreated_time 維度視為時間戳記。

舉例來說,假設使用者從欄位挑選器選取「建立日期」和「自月初以來的日期」維度,如果「建立日期」傳回的值為「2019-03-10」,則「自月初起的天數」傳回的值為「9 天」

時間類型維度群組

type: time 會與 dimension_grouptimeframes 參數搭配使用,建立一組以時間為準的維度。舉例來說,您可以根據單一時間戳記欄建立日期、週和月份維度。

type: time 的維度群組形式如下:

dimension_group: dimension_group_name {
  type: time
  timeframes: [timeframe, timeframe, …] # see following explanation for valid timeframes
  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
}

適用於 type: time 的維度群組:

  • timeframes 參數是可選的,但很少省略。這個屬性會指定維度群組應產生的一或多個時間範圍。如果未加入 timeframes,系統會將每個時間範圍選項新增至維度群組。如需可選用的時間範圍,請參閱本頁面的「時間範圍選項」一節。

  • type: time 維度群組的 sql 參數可採用任何有效的 SQL 運算式,其中包含時間戳記、日期時間、日期、紀元或 yyyymmdd 格式的資料。

  • datatype 參數是可選的。如果維度群組不是以日期時間為準,您可以改為指定紀元、時間戳記、日期或 yyyymmdd 格式。詳情請見…指定資料庫datatype本頁的這一部分。

  • convert_tz 參數為選用項目,可防止系統自動轉換時區。詳情請參閱本頁的「時區轉換和 convert_tz」一節。

雖然這裡未列出,但許多欄位層級參數也可用於維度群組。

舉例來說,假設您有名為 created_at 的資料欄,其中包含日期時間資訊。您想根據這個日期時間建立日期、週別和月份維度。您可以使用:

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

在「探索」使用者介面中,這會產生三個維度,名稱分別為「建立日期」、「建立週」和「建立月份」。注意 dimension_group 名稱是如何與時間範圍組合以產生維度名稱的。

時間範圍選項

timeframes 參數僅支援 type: time 的維度群組。如為 type: duration 的維度群組,請改用 intervals 參數。

timeframes 參數會告知維度群組應產生哪些維度,並包含下列選項:

如果您沒有為維度群組的 type: time 使用 timeframes 參數,或是將 timeframes 參數留白 (timeframes: []),探索就會納入維度群組的預設時間範圍:

特殊時間範圍

時間範圍 說明 輸出範例
raw 資料庫中的原始值,未經過轉換或時區轉換。raw 只能在 LookML 中存取,不會顯示在「探索」頁面raw 時間範圍會傳回時間戳記,不像其他時間範圍大多會傳回格式化字串。主要用於對欄位執行日期作業。 2014-09-03 17:15:00 +0000
yesno yesno 維度,如果日期時間有值,則傳回「是」,否則傳回「否」。與其他時間範圍不同,當您從另一個欄位引用 yesno 時間範圍維度時,請勿在參考中包含時間範圍。舉例來說,如要參照 dimension_group: created 中的 yesno 時間範圍,請使用 ${created} 語法,而非 ${created_yesno} Yes

時間範圍

時間範圍 說明 輸出範例
time 基礎欄位的日期時間 (部分 SQL 方言會顯示資料庫所含的精確度,其他方言則只會顯示到秒) 2014-09-03 17:15:00
time_of_day 時段 17:15
hour 日期時間截斷至最接近的小時 2014-09-03 17
hour_of_day 基礎欄位的小時整數值 17
hourX 將每天分成指定時數的間隔。 請參閱「使用 hourX」。
minute 日期時間截斷至最接近的分鐘 2014-09-03 17:15
minuteX 將每小時分成指定分鐘數的間隔。 請參閱「使用 minuteX」。
second 日期時間 (四捨五入至最接近的秒數) 2014-09-03 17:15:00
millisecond 日期時間截斷至最接近的毫秒 (如需方言支援的相關資訊,請參閱本頁的「方言支援毫秒和微秒」一節)。 2014-09-03 17:15:00.000
millisecondX 將每秒分割成指定毫秒數的時間間隔 (如需方言支援的相關資訊,請參閱本頁的「毫秒和微秒的方言支援」一節)。 請參閱「使用 millisecondX」。
microsecond 日期時間截斷到最近的微秒(有關方言支持的信息,請參閱此頁面上的 毫秒和微秒方言支持 部分)。 2014-09-03 17:15:00.000000

日期時間範圍

時間範圍 說明 輸出範例
date 基礎欄位的日期 2017-09-03

每週時間範圍

時間範圍 說明 輸出範例
week 以基礎日期時間的星期一為一週的開始日期 2017-09-01
day_of_week 僅限星期幾 Wednesday
day_of_week_index 星期幾索引 (0 = 星期一,6 = 星期日) 2

月時間範圍

時間範圍 說明 輸出範例
month 基礎日期時間的年和月 2014-09
month_num 基礎日期時間的月份整數 9
fiscal_month_num 基礎日期時間的會計月份整數 6
month_name 月份名稱 September
day_of_month 當月第幾日 3

如要使用 fiscal_month_num 時間範圍,必須在模型中設定 fiscal_month_offset 參數。

季度時間範圍

時間範圍 說明 輸出範例
quarter 基礎日期時間的年份和季度 2017-Q3
fiscal_quarter 基礎日期時間的會計年度和季度 2017-Q3
quarter_of_year 年份季度,以「Q」開頭 Q3
fiscal_quarter_of_year 會計年度的季度,前面加上「Q」 Q3

如要使用 fiscal_quarterfiscal_quarter_of_year 時間範圍,必須在模型中設定 fiscal_month_offset 參數。

年度時間範圍

時間範圍 說明 輸出範例
year 基礎日期時間的整數年份 2017
fiscal_year 基礎日期時間的整數會計年度 FY2017
day_of_year 一年中的第幾天 143
week_of_year 以數字表示的週次 17

如要使用 fiscal_year 時間範圍,必須在模型中設定 fiscal_month_offset 參數。

正在使用 hourX

hourX 中,X 會替換為 2、3、4、6、8 或 12。

系統會將每天分成指定時數的間隔。舉例來說,hour6 會將每天分成 6 小時的區段,顯示方式如下:

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

舉例來說,如果資料列的 time2014-09-01 08:03:17,則 hour62014-09-01 06:00:00

正在使用 minuteX

minuteX 中,X 會替換為 2、3、4、5、6、10、12、15、20 或 30。

這會將每小時劃分為指定分鐘數的間隔。例如,minute15 會將每小時分成 15 分鐘的片段,顯示如下:

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

舉例來說,如果資料列的 time2014-09-01 01:17:35,則 minute152014-09-01 01:15:00

正在使用 millisecondX

millisecondX 中,X 會替換為 2、4、5、8、10、20、25、40、50、100、125、200、250 或 500。

這會將每秒分割成間隔,間隔長度為指定的毫秒數。舉例來說,millisecond250 會將每秒分割為 250 毫秒的片段,如下所示:

  • 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

舉例來說,如果資料列的 time2014-09-01 01:00:00.333,則 millisecond2502014-09-01 01:00:00.250

時區轉換和 convert_tz

一般來說,時間計算(差值、持續時間等)只有在所有時間值都轉換為同一時區時才能正確進行,因此在編寫 LookML 時,請務必牢記時區。

Looker 提供各種時區設定,可在不同時區之間轉換時間資料。Looker 預設會轉換時區。type: time 維度群組支援 convert_tz 參數。如果您不希望 Looker 對特定維度或維度群組執行時區轉換,可以使用 convert_tz 參數說明頁面所述的 convert_tz 參數。

支援毫秒和微秒的方言

Looker 支援精確度達微秒的時間範圍,但部分資料庫僅支援精確度達秒的時間範圍。如果資料庫遇到的時間範圍比支援的範圍更精確,系統會將時間範圍向上取整至秒。

在最新版 Looker 中,下列方言支援毫秒:

方言 是否支援?
Actian Avalanche
Amazon Athena
Amazon Aurora MySQL
Amazon Redshift
Amazon Redshift 2.1+
Amazon Redshift Serverless 2.1+
Apache Druid
Apache Druid 0.13.x - 0.17.x
Apache Druid 0.18+
Apache Hive 2.3+
Apache Hive 3.1.2+
Apache Spark 3+
ClickHouse
Cloudera Impala 3.1+
Cloudera Impala 3.1+ with Native Driver
Cloudera Impala with Native Driver
DataVirtuality
Databricks
Denodo 7
Denodo 8 & 9
Dremio
Dremio 11+
Exasol
Google BigQuery Legacy SQL
Google BigQuery Standard SQL
Google Cloud AlloyDB for PostgreSQL
Google Cloud PostgreSQL
Google Cloud SQL
Google Spanner
Greenplum
HyperSQL
IBM Netezza
MariaDB
Microsoft Azure PostgreSQL
Microsoft Azure SQL Database
Microsoft Azure Synapse Analytics
Microsoft SQL Server 2008+
Microsoft SQL Server 2012+
Microsoft SQL Server 2016
Microsoft SQL Server 2017+
MongoBI
MongoSQL
MySQL
MySQL 8.0.12+
Oracle
Oracle ADWC
PostgreSQL 9.5+
PostgreSQL pre-9.5
PrestoDB
PrestoSQL
SAP HANA
SAP HANA 2+
SingleStore
SingleStore 7+
Snowflake
Teradata
Trino
Vector
Vertica

在最新版 Looker 中,下列方言支援微秒:

方言 是否支援?
Actian Avalanche
Amazon Athena
Amazon Aurora MySQL
Amazon Redshift
Amazon Redshift 2.1+
Amazon Redshift Serverless 2.1+
Apache Druid
Apache Druid 0.13.x - 0.17.x
Apache Druid 0.18+
Apache Hive 2.3+
Apache Hive 3.1.2+
Apache Spark 3+
ClickHouse
Cloudera Impala 3.1+
Cloudera Impala 3.1+ with Native Driver
Cloudera Impala with Native Driver
DataVirtuality
Databricks
Denodo 7
Denodo 8 & 9
Dremio
Dremio 11+
Exasol
Google BigQuery Legacy SQL
Google BigQuery Standard SQL
Google Cloud AlloyDB for PostgreSQL
Google Cloud PostgreSQL
Google Cloud SQL
Google Spanner
Greenplum
HyperSQL
IBM Netezza
MariaDB
Microsoft Azure PostgreSQL
Microsoft Azure SQL Database
Microsoft Azure Synapse Analytics
Microsoft SQL Server 2008+
Microsoft SQL Server 2012+
Microsoft SQL Server 2016
Microsoft SQL Server 2017+
MongoBI
MongoSQL
MySQL
MySQL 8.0.12+
Oracle
Oracle ADWC
PostgreSQL 9.5+
PostgreSQL pre-9.5
PrestoDB
PrestoSQL
SAP HANA
SAP HANA 2+
SingleStore
SingleStore 7+
Snowflake
Teradata
Trino
Vector
Vertica

指定資料庫 datatype

datatype 參數可讓您指定資料庫表格中提供給維度群組的時間資料類型,進而提升查詢效能。

如果是 type: time 的維度群組,datatype 參數會套用至維度群組的 sql 參數。

如果是 type: duration 的維度群組,datatype 參數會同時套用至 sql_startsql_end 參數,因此請務必確認 sql_startsql_end 都是指定的資料類型。

datatype 參數接受下列值:

  • epoch:SQL Epoch 欄位 (即代表從 Unix Epoch 紀元時間起算的秒數的整數)。
  • date: SQL 日期欄位(即不包含時間資訊的日期欄位)。
  • datetime:SQL datetime 欄位。
  • timestamp:SQL 時間戳記欄位。
  • yyyymmdd:SQL 欄位,內含代表日期的整數,格式為 YYYYMMDD

datatype 的預設值為 timestamp

自訂日曆類型維度群組

如果您已在 LookML 專案中導入自訂日曆,可以搭配 dimension_group 參數使用 type: custom_calendar,根據您在資料庫中定義的自訂日曆資料表,建立一組以時間為準的維度。如要瞭解如何在 LookML 專案中設定自訂日曆,請參閱「在 Looker 中使用自訂日曆」說明文件頁面。

type: custom_calendar 的維度群組形式如下:

dimension_group: dimension_group_name {
  type: custom_calendar
  custom_timeframes: [custom_timeframe, custom_timeframe, …] # see the following section for valid custom timeframes
  sql: SQL expression ;;  # often this refers to a single database column
  based_on_calendar: custom_calendar_view
}

適用於 type: custom_calendar 的維度群組:

  • custom_timeframes 參數為選用參數。其中指定維度群組應產生的一或多個自訂時間範圍。如未指定 custom_timeframes,維度群組會建立所有自訂時間範圍。如要查看可用的自訂時間範圍,請參閱本頁的custom_timeframes部分。

  • type: custom_calendar 維度群組的 sql 參數可採用任何有效的 SQL 運算式,其中包含時間戳記、日期時間、日期、紀元或 yyyymmdd 格式的資料。

  • based_on_calendar 參數會指定您在 LookML 中建立模型的自訂日曆檢視名稱。

  • convert_tz 參數為選用項目,可防止系統自動轉換時區。詳情請參閱本頁的「時區轉換和 convert_tz」一節。

  • datatype 參數為選用參數。如果維度群組不是以日期時間為準,您可以改為指定紀元、時間戳記、日期或 yyyymmdd 格式。如需更詳細的說明,請參閱本頁的「指定資料庫資料型別」一節。

雖然這裡未列出,但許多欄位層級參數也可用於維度群組。

以下是 orders.view LookML 檔案中的自訂日曆維度群組範例:

view: orders

include: "/views/retail_custom_calendar.view"

dimension_group: created {
  type: custom_calendar
  sql: ${TABLE}.created_at ;;
  custom_timeframes: [custom_year, custom_quarter]
  based_on_calendar: retail_custom_calendar
}

請注意這個自訂日曆維度群組中的下列元素:

  • type: custom_calendar - 維度群組定義為自訂日曆類型。
  • sql: ${TABLE}.created_at ;; - 維度群組會使用資料庫 orders.created_at 欄中的日期時間資訊。
  • custom_timeframes: [custom_year, custom_quarter] - 維度群組會標示為「建立自訂日曆」,並包含標示為「會計年度」和「會計季度」的時間範圍。詳情請參閱「自訂日曆維度群組的標籤」。
  • based_on_calendar: retail_custom_calendar - 維度群組會將 LookML 專案 retail_custom_calendar 檢視畫面中定義的自訂日曆資料,與該資料庫 orders.created_at 欄中的資料合併,並使用自訂日曆提供查詢結果。如要瞭解如何定義自訂日曆,請參閱「在 Looker 中使用自訂日曆」說明文件頁面。

custom_timeframes

如果是定義為 type: custom_calendar 的維度群組,如果不想在維度群組中納入所有可能的自訂時間範圍,可以使用 custom_timeframes 參數指定要在維度群組中納入哪些時間範圍。支援的自訂時間範圍如下:

時間範圍 說明 假設 (適用於 _num 類型)

custom_date

日曆檢視畫面中的特定日期。

custom_day_num

日曆檢視畫面中的日期數字。 假設最多 371 天

custom_period

日曆中的一般週期 (例如 4-4-5 日曆)。

custom_period_num

自訂時間範圍的數值。 假設每年有 12 個週期。

custom_quarter

日曆檢視畫面中的季。

custom_quarter_num

以數字表示的季度。 假設一年有四個季度。

custom_season

自訂季節性期間。

custom_season_num

自訂季節的數值。 假設每年有 2 個賽季。

custom_week

日曆檢視畫面中的當週。

custom_week_of_year

一年中的第幾週。 假設每年最多 53 週。

custom_year

日曆檢視畫面中的年份。

custom_year_num

自訂年份的數值。

based_on_calendar

如果是定義為 type: custom_calendar 的維度群組,based_on_calendar 參數會指定您在 LookML 中建立模型的自訂日曆檢視畫面名稱。

自訂日曆維度群組的標籤

Looker 會根據 type: custom_calendar 維度群組中是否使用 labelgroup_label 參數,在「探索」欄位挑選器中產生維度欄位標籤和群組標籤:

  • 預設 (未指定 labelgroup_label):
    • Looker 將維度群組時間範圍分組到預設維度群組標籤下,該標籤是維度群組名稱與 自訂行事曆 連結而成(例如,所建立的自訂行事曆)。
    • Looker 會在每個時間範圍名稱前面加上「會計」,例如「會計日期」、「會計週」、「會計年度」
  • 僅限 group_label
    • Looker 會將維度群組時間範圍歸類在指定的 group_label 值下方。
    • Looker 會在每個時間範圍名稱前加上維度群組的名稱和 財政年度(例如,創建財政年度日期創建財政年度週創建財政年度年)。
  • 僅限 label
    • Looker 會將維度群組時間範圍歸類在 label 值下方,並附加「自訂日曆」 (例如,如果維度群組定義為 label: "My Label",時間範圍會歸類在「我的標籤自訂日曆」下方)。
    • Looker 會在每個時間範圍名稱前面加上 財政年度(例如,財政年度日期財政年度週財政年度)。
  • 同時指定 group_labellabel
    • Looker 會將維度群組時間範圍歸類在指定的 group_label 值下方。
    • Looker 會在每個時間範圍前面加上 label 值 (例如,如果維度群組是以 label: "My Label" 定義,時間範圍會命名為「我的標籤日期」、「我的標籤週」、「我的標籤年」)。

維度群組在地化

您可以透過模型本地化功能,自訂及翻譯維度群組產生的時間範圍、間隔或自訂時間範圍名稱。有關信息,請參閱本地化維度組

注意事項

維度群組必須由個別維度參照

由於維度群組代表一組維度,而非單一維度,因此您無法在 LookML 中直接參照維度群組。您必須改為參照該維度。

例如,考慮以下維度群組:

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

如要在其他 LookML 欄位中參照這些維度,請使用 ${created_date}${created_week}${created_month} 參照。如果您只嘗試使用 ${created},Looker 不會知道您指的是哪個時間範圍,因此會產生錯誤。

基於同樣的理由,如果您指定多個 timeframe,請勿在維度群組中使用 primary_key 參數。

聊天團隊提示:如果是在有多個 timeframedimension_group 上使用 primary_key,可能會發生驗證錯誤,我們經常收到相關問題。詳情請參閱 Looker 中的時間範圍和維度群組 社群貼文。

包含時區資訊的時間戳數據

部分資料庫方言提供包含時區資訊的時間戳記選項。這樣,您可以將時間戳資料儲存在單一欄位中,該欄位可能包含多個時區。一列資料可能以世界標準時間儲存,另一列則以美東時間儲存。例如,請參閱 Snowflake TIMESTAMP_LTZ, TIMESTAMP_NTZ, TIMESTAMP_TZ 時間戳文檔,以瞭解有關 Snowflake 方言時間戳選項的資訊。

在這種情況下,Looker 執行時區轉換時可能會發生錯誤。為避免這種情況,您應在維度的 sql 參數中,將時間戳記資料明確轉換為不會進行時區轉換的時間戳記類型。例如,在 Snowflake 方言中,您可以使用 TO_TIMESTAMP 函數 來轉換時間戳記資料。

可以建立單獨的時間或持續時間維度。

您可以為要納入的每個時間範圍或時間長度建立一個維度,不必在單一 dimension_group 中產生所有維度。通常情況下,您可以避免建立單獨的維度,除非您想變更 Looker 的時間範圍命名約定,或者您的資料庫中已經預先計算了時間列。詳情請參閱「維度、篩選器和參數類型」說明文件頁面。

你可以變更一週的第一天

根據預設,Looker 中的週會從星期一開始。您可以在模型層級使用 week_start_day 參數變更這項設定。

請注意,week_start_day 不適用於 week_of_year 時間範圍,因為該時間範圍是以 ISO 標準為準,而 ISO 標準是以星期一為一週的開始。

自訂篩選器和自訂欄位不支援所有時間範圍。

時間範圍 day_of_weekfiscal_quarter_of_yearmillisecondmillisecondXmicrosecondmonth_namequarter_of_yeartime_of_day 不支援自訂篩選器自訂欄位

月份、季和年間隔只會計算完整週期

duration 維度群組中,只有當結束日期大於或等於開始日期時,month 間隔才會將該月視為已過。例如:

  • 同年 9 月 26 日和 10 月 25 日的月份差異為 0。
  • 同年 9 月 26 日和 10 月 26 日的月份差異為 1。

quarteryear 間隔的邏輯相同。