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_start 和 sql_end 參數會提供 SQL 運算式,定義時間範圍的開始和結束時間。詳情請參閱本頁的「定義時間長度的起點和終點」一節。

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

  • 時間長度值會無條件捨去至最接近的整數。

  • datatype 參數為選用。如果維度群組不是以日期時間為準,您可以改為指定紀元、時間戳記、日期或 yyyymmdd 格式。如果是 type: duration 的維度群組,datatype 參數會同時套用至 sql_start 和 sql_end 參數,因此請務必確認 sql_start 和 sql_end 都是指定的資料類型。如要進一步瞭解 datatype 參數,請參閱本頁的「指定資料庫 datatype」一節。

雖然這裡並未列出,但許多欄位層級參數也可以與維度群組搭配使用。

舉例來說,如果您有 enrollment_date 和 graduation_date 欄,可以建立時間長度維度群組,查看學生在學校花費的時間,並以週和年為間隔計算:

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

在「探索」使用者介面中,這會產生名為「Duration Enrolled」的維度群組,以及名為「Weeks Enrolled」和「Years Enrolled」的個別維度。

間隔選項

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: duration 的維度群組,sql_start 和 sql_end 參數會提供用於計算時間差的開始和結束資訊。這些欄位可採用任何有效的 SQL 運算式,其中包含時間戳記、日期時間、日期、紀元或 yyyymmdd 格式的資料。sql_start 和 sql_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();;
}

在「探索」使用者介面中,這會產生名為「Duration Since Event」的維度群組,其中包含名為「Hours Since Event」和「Days Since Event」的個別維度。

參照其他 LookML 欄位的間隔

如要在 type: duration 的 dimension_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_start 和 sql_end 參數中參照的維度指定 ::date 或 ::datetime 參照類型。view_name.field_name::type 語法 (詳情請參閱「整合 SQL 並參照 LookML 物件」說明文件頁面) 可讓您建立欄位的 ::date 或 ::datetime 版本,而不必將這些維度的參照轉換為字串。

舉例來說,假設您有 created 維度群組 type: time,且時間範圍為 time、date、week、month 和 raw,定義如下:


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

使用 created_month 和 created_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} ;;
}

在「探索」使用者介面中,這會建立名為「Duration Since First of Month」的維度群組,其中包含「Weeks Since First of Month」、「Days Since First of Month」和「Hours Since First of Month」等個別維度。為 sql_start 和 sql_end 參數中參照的欄位指定 ::datetime 參照類型,即可在產生的 SQL 中將 created_month 和 created_time 維度視為時間戳記。

舉例來說,假設使用者從欄位挑選器中選取「Created Date」和「Days Since First of Month」維度。如果「建立日期」傳回的值為「2019-03-10」,則「自當月 1 日起的天數」傳回的值為「9 天」。

時間類型維度群組

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

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 ;;
}

在「探索」使用者介面中,這會產生三個維度,名稱分別為「Created Date」、「Created Week」和「Created Month」。請注意 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_quarter 和 fiscal_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

舉例來說,如果某列的 time 為 2014-09-01 08:03:17,則該列的 hour6 為 2014-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

舉例來說,如果資料列的 time 為 2014-09-01 01:17:35,則 minute15 為 2014-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

舉例來說,如果某列的 time 為 2014-09-01 01:00:00.333,則該列的 millisecond250 為 2014-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
ClickHouse 26+
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+
Dremio 26+ with Arrow Flight SQL
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
ClickHouse 26+
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+
Dremio 26+ with Arrow Flight SQL
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_start 和 sql_end 參數,因此請務必確認 sql_start 和 sql_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」一節列出了可能的自訂時間範圍。

  • sql 參數用於 type: custom_calendar 維度群組時,可接受任何有效的 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] - 維度群組會標示為「Created Custom Calendar」,並包含標示為「Fiscal Year」和「Fiscal 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

以數字表示的季度。 假設每年有 4 季。

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 維度群組中是否使用 label 或 group_label 參數,在「探索」欄位挑選器中產生維度欄位標籤和群組標籤:

  • 預設 (未指定 label 或 group_label):
    • Looker 會將維度群組時間範圍歸類在預設維度群組標籤下,也就是維度群組名稱與「自訂日曆」串連的結果 (例如「建立的自訂日曆」)。
    • Looker 會在每個時間範圍名稱前加上「Fiscal」 (例如「Fiscal Date」、「Fiscal Week」、「Fiscal Year」)。
  • 僅限 group_label:
    • Looker 會將維度群組時間範圍分組到指定的 group_label 值底下。
    • Looker 會在每個時間範圍名稱前面加上維度群組名稱和「會計年度」,例如「建立日期會計年度」、「建立日期會計週」、「建立日期會計年」。
  • 僅限 label:
    • Looker 會將維度群組時間範圍歸類在附加 自訂日曆的 label 值下方 (舉例來說,如果是以 label: "My Label" 定義的維度群組,時間範圍會歸類在「我的標籤自訂日曆」下方)。
    • Looker 會在每個時間範圍名稱前加上「Fiscal」 (例如「Fiscal Date」、「Fiscal Week」、「Fiscal Year」)。
  • 同時指定 group_label 和 label:
    • Looker 會將維度群組時間範圍分組到指定的 group_label 值下方。
    • Looker 會在每個時間範圍前面加上 label 值 (舉例來說,如果維度群組是以 label: "My Label" 定義,時間範圍會命名為「My Label Date」、「My Label Week」、「My Label Year」)。

本地化維度群組

您可以使用模型本地化功能,自訂及翻譯維度群組產生的時間範圍、間隔或自訂時間範圍名稱。詳情請參閱「本地化維度群組」。

注意事項

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

由於維度群組代表一組維度,而非單一維度,因此您無法在 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 參數。

Chat 團隊提示:我們經常收到關於驗證錯誤的問題,如果 dimension_group 具有多個 timeframe,在 primary_key 上使用 primary_key 時可能會發生這種錯誤。詳情請參閱這篇社群貼文 ,瞭解 Looker 的時間範圍和維度群組。

包含時區資訊的時間戳記資料

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

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

您可以建立個別的時間或時長維度

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

你可以變更一週的第一天

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

請注意,week_start_day 不適用於 week_of_year 時間範圍,因為該時間範圍是以 ISO 標準為依據,而 ISO 標準是以週一為一週的第一天。

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

自訂篩選器或自訂欄位不支援時間範圍 day_of_week、fiscal_quarter_of_year、millisecond、millisecondX、microsecond、month_name、quarter_of_year 和 time_of_day。

系統只會計算完整的月份、季和年

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

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

quarter 和 year 間隔也採用相同邏輯。