用量
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 ;;
}
在「探索」使用者介面中,這會產生名為「註冊時間長度」的維度群組,其中包含名為「註冊週數」和「註冊年數」的個別維度。
間隔選項
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();;
}
在 Explore UI 中,這將產生一個名為 事件發生至今的持續時間 的維度群組,其中包含名為 事件發生至今的小時數 和 事件發生至今的天數 的各個維度。
引用另一個 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} ;;
}
在「探索」使用者介面中,這將建立一個名為 自月初以來的持續時間 的維度群組,其中包含 自月初以來的周數、自月初以來的天數 和 自月初以來的小時數 等維度。為 sql_start 和 sql_end 參數中參照的欄位指定 ::datetime 參照類型,可讓產生的 SQL 將 created_month 和 created_time 維度視為時間戳記。
舉例來說,假設使用者從欄位挑選器選取「建立日期」和「自月初以來的日期」維度,如果「建立日期」傳回的值為「2019-03-10」,則「自月初起的天數」傳回的值為「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 ;;
}
在「探索」使用者介面中,這會產生三個維度,名稱分別為「建立日期」、「建立週」和「建立月份」。注意 dimension_group 名稱是如何與時間範圍組合以產生維度名稱的。
時間範圍選項
timeframes 參數僅支援 type: time 的維度群組。如為 type: duration 的維度群組,請改用 intervals 參數。
timeframes 參數會告知維度群組應產生哪些維度,並包含下列選項:
如果您沒有為維度群組的 type: time 使用 timeframes 參數,或是將 timeframes 參數留白 (timeframes: []),探索就會納入維度群組的預設時間範圍:
dateday_of_monthday_of_weekday_of_week_indexday_of_yearhourhour_of_dayminutemonthmonth_namemonth_numquarterquarter_of_yeartimetime_of_dayweekweek_of_yearyear
特殊時間範圍
時間範圍
| 時間範圍 | 說明 | 輸出範例 |
|---|---|---|
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:002014-09-01 06:00:002014-09-01 12:00:002014-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:002014-09-01 01:15:002014-09-01 01:30:002014-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.0002014-09-01 01:00:00.2502014-09-01 01:00:00.5002014-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 | |
| 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_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部分。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 類型) |
|---|---|---|
|
日曆檢視畫面中的特定日期。 | |
|
日曆檢視畫面中的日期數字。 | 假設最多 371 天 |
|
日曆中的一般週期 (例如 4-4-5 日曆)。 | |
|
自訂時間範圍的數值。 | 假設每年有 12 個週期。 |
|
日曆檢視畫面中的季。 | |
|
以數字表示的季度。 | 假設一年有四個季度。 |
|
自訂季節性期間。 | |
|
自訂季節的數值。 | 假設每年有 2 個賽季。 |
|
日曆檢視畫面中的當週。 | |
|
一年中的第幾週。 | 假設每年最多 53 週。 |
|
日曆檢視畫面中的年份。 | |
|
自訂年份的數值。 |
based_on_calendar
如果是定義為 type: custom_calendar 的維度群組,based_on_calendar 參數會指定您在 LookML 中建立模型的自訂日曆檢視畫面名稱。
自訂日曆維度群組的標籤
Looker 會根據 type: custom_calendar 維度群組中是否使用 label 或 group_label 參數,在「探索」欄位挑選器中產生維度欄位標籤和群組標籤:
- 預設 (未指定
label或group_label):- Looker 將維度群組時間範圍分組到預設維度群組標籤下,該標籤是維度群組名稱與 自訂行事曆 連結而成(例如,所建立的自訂行事曆)。
- Looker 會在每個時間範圍名稱前面加上「會計」,例如「會計日期」、「會計週」、「會計年度」。
- 僅限
group_label:- Looker 會將維度群組時間範圍歸類在指定的
group_label值下方。 - Looker 會在每個時間範圍名稱前加上維度群組的名稱和 財政年度(例如,創建財政年度日期、創建財政年度週、創建財政年度年)。
- Looker 會將維度群組時間範圍歸類在指定的
- 僅限
label:- Looker 會將維度群組時間範圍歸類在
label值下方,並附加「自訂日曆」 (例如,如果維度群組定義為label: "My Label",時間範圍會歸類在「我的標籤自訂日曆」下方)。 - Looker 會在每個時間範圍名稱前面加上 財政年度(例如,財政年度日期、財政年度週、財政年度)。
- Looker 會將維度群組時間範圍歸類在
- 同時指定
group_label和label:- Looker 會將維度群組時間範圍歸類在指定的
group_label值下方。 - Looker 會在每個時間範圍前面加上
label值 (例如,如果維度群組是以label: "My Label"定義,時間範圍會命名為「我的標籤日期」、「我的標籤週」、「我的標籤年」)。
- Looker 會將維度群組時間範圍歸類在指定的
維度群組在地化
您可以透過模型本地化功能,自訂及翻譯維度群組產生的時間範圍、間隔或自訂時間範圍名稱。有關信息,請參閱本地化維度組。
注意事項
維度群組必須由個別維度參照
由於維度群組代表一組維度,而非單一維度,因此您無法在 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 參數。
聊天團隊提示:如果是在有多個
timeframe的dimension_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_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 間隔的邏輯相同。