type也可以做為測量的一部分,詳情請參閱「測量類型」說明文件頁面。
type也可做為維度群組的一部分,詳情請參閱dimension_group參數說明文件頁面。
用量
view: view_name {
dimension: field_name {
type: field_type
}
}
|
階層
type |
可能的欄位類型
維度、篩選器、參數
預設值
string
接受
維度、篩選器或參數類型
|
本頁面提供更多詳細資料,說明可指派給 dimension、filter 或 parameter 的各種型別。維度、篩選器或參數只能有一種型別,如果未指定型別,預設為 string。
部分類型有支援參數,詳情請參閱相關章節。
類型定義
| 類型 | 說明 | 有效欄位類型 |
|---|---|---|
bin |
新增 21.14 將數值分組為多個範圍的欄位 | D |
date |
含有日期的欄位 | D F P |
date_time |
包含日期和時間的欄位 | D F P |
distance |
針對計算兩個 type: location 維度之間最短路徑距離 (直線距離) 的欄位 |
D |
duration |
與 dimension_group 搭配使用,可從單一資料表欄建立多個以時間長度為準的維度。如要瞭解維度群組,請參閱 dimension_group 參數說明文件頁面。 |
DG |
location |
適用於以經緯度為準,且會用於視覺化效果的欄位 | D |
number |
包含數字的欄位 | D F P |
string |
含有字母或特殊字元的欄位 | D F P |
tier |
將數值分組為多個範圍的欄位 | D |
time |
與 dimension_group 搭配使用,可從單一資料表欄建立多個時間維度。如要瞭解維度群組,請參閱 dimension_group 參數說明文件頁面。 |
DG |
unquoted |
對於值會直接插入 SQL 的 parameter 欄位,不應加上引號 (如同 type: string) |
P |
yesno |
顯示某事物是否為真或為假的欄位 | D F P |
zipcode |
含有郵遞區號且會用於視覺化效果的欄位 | D |
| 個別時間和日期類型 | 很少使用的 type: time 替代方案,可建立單一的時間維度 |
D F |
| 個別時間長度類型 | 很少使用的 type: duration 替代方案,可建立單一時間維度,計算時間差 |
D |
int |
已移除 5.4
已替換為 type: number |
D |
bin
type: bin是type: tier的別名。這兩種型別可以交替使用。
type: bin 會與 bins 參數搭配使用,將數值維度分成一組數值範圍。舉例來說,您可以將年齡維度分組為不同的年齡範圍。您可以使用 style 參數,變更 Looker 使用者介面中顯示的資料區間。
使用模式如下:
view: view_name {
dimension: field_name {
type: bin
bins: [numeric_value, numeric_value, ... ]
style: interval
sql: ${my_field_name} ;;
}
}
type: bin 維度的 sql 參數可以採用任何有效的 SQL 運算式,只要結果是數字或整數即可。
以下是使用年齡的範例:
dimension: age_bin {
type: bin
bins: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
style: interval
sql: ${age} ;;
}
如要瞭解這項參數在 Looker 使用者介面中的顯示方式,請參閱本頁的 style type: tier 參數部分。
bin 型別是 type: tier 的別名。這兩種型別可以交替使用,行為相同:
style子參數可用於自訂 Looker UI 中資料夾的外觀。Dimensions of type: bin無法用於自訂篩選器。- 如果同時使用
type: bin和維度填補,可能會導致非預期的層級區間。
distance
type: distance 用於計算兩個 type: location 維度之間最直接路徑的距離 (即「直線距離」)。
系統會排除 type: distance 維度的 sql 參數。請改為在 start_location_field 和 end_location_field 參數中,提供 type: location 維度的參照。
使用方式:
view: view_name {
dimension: field_name {
type: distance
start_location_field: field_name_1
end_location_field: field_name_2
units: kilometers
}
}
距離單位取決於 units 參數,該參數可採用下列值:
feetkilometersmetersmilesnautical_milesyards
舉例來說,您可能會像這樣計算顧客取車的行車距離:
dimension: distance_to_pickup {
type: distance
start_location_field: customer.home_location
end_location_field: rental.pickup_location
units: miles
}
系統計算的距離是兩點之間最直接的路徑,不一定是道路行駛距離。
請勿在 start_location_field 和 end_location_field 參數中使用 ${view_name.field_name} 語法。請改為單獨使用檢視區塊名稱和欄位名稱,例如 view_name.field_name。
duration
type: duration 會與 dimension_group 搭配使用,建立一組維度和/或 SQL 運算式之間的計算時間差。
type: duration只能搭配 dimension_group 使用,無法搭配一般 dimension 使用。不過,您可以指定個別以時間長度為準的維度,詳情請參閱「個別時間長度類型」。
如要瞭解含有 type: duration 的維度群組,請參閱 dimension_group 參數說明文件頁面。
location
type: location 會與 sql_latitude 和 sql_longitude 參數搭配使用,建立要繪製在地圖或靜態地圖 (點) 視覺化效果上的座標 (使用州或國家/地區欄位做為靜態地圖 (區域)),或用於 type: distance 計算。
使用模式如下:
view: view_name {
dimension: field_name {
type: location
sql_latitude:${field_name_1} ;;
sql_longitude:${field_name_2} ;;
}
}
系統會排除 type: location 維度的 sql 參數。請改為在 sql_latitude 和 sql_longitude 參數中提供任何有效的 SQL 運算式,產生十進位經緯度。這些通常是指包含緯度或經度資訊的 LookML 欄位,但如果您想顯示總部位置或類似資訊,也可以使用靜態值。
舉例來說,您可以建立如下所示的 store_location 維度:
dimension: store_location {
type: location
sql_latitude: ${store_latitude} ;;
sql_longitude: ${store_longitude} ;;
}
如果不想繪製位置或計算距離,可以使用較簡單的欄位類型,例如 type: number。在資料表中查看位置時,Looker 會顯示資料庫中的值,並自動產生該位置的 Google 地圖連結。
location 支援的資料庫方言
如要讓 Looker 支援 Looker 專案中的 type: location,資料庫方言也必須支援這項功能。下表列出最新版 Looker 支援 type: location 的方言:
| 方言 | 是否支援? |
|---|---|
| Actian Avalanche | |
| Amazon Athena | |
| Amazon Aurora MySQL | |
| Amazon Redshift | |
| Amazon Redshift 2.1+ | |
| Amazon Redshift Serverless 2.1+ | |
| Apache Druid | |
| Apache Druid 0.13+ | |
| 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 | |
| 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 |
number
type: number 可與數字或整數搭配使用。
type: number 維度的 sql 參數可以採用任何有效的 SQL 運算式,只要結果是數字或整數即可。
您可以使用 value_format 或 value_format_name 參數,設定 type: number 欄位的格式。
舉例來說,下列 LookML 會根據 revenue 和 cost 欄位建立名為 profit 的欄位,然後以貨幣格式 ($1,234.56) 顯示該欄位:
dimension: profit {
type: number
sql: ${revenue} - ${cost} ;;
value_format_name: usd
}
維度只能對其他維度執行算術運算,不能對指標執行。此外,即使您使用
type: number維度顯示 ID 號碼,系統也不會向使用者提供建議。
string
type: string 通常用於含有字母或特殊字元的欄位。雖然也可以搭配數字欄位使用,但如果使用 type: number,Looker 會有更完善的數字處理功能。
type: string 維度的 sql 參數可採用任何有效的 SQL 運算式。
舉例來說,下列 LookML 會結合名為 first_name 和 last_name 的欄位,建立 full_name 欄位:
dimension: full_name {
type: string
sql: CONCAT(${first_name}, ' ', ${last_name}) ;;
}
在本例中,type: string 可以省略,因為 string 是 type 的預設值。
tier
您可以使用
type: bin做為type: tier的別名。這兩種型別可以交替使用。
type: tier 會與 tiers 參數搭配使用,將數值維度分成一組數值範圍。舉例來說,您可以將年齡維度分層為不同的年齡範圍。您可以使用 style 參數,變更層級在 Looker UI 中的顯示方式。
使用模式如下:
view: view_name {
dimension: field_name {
type: tier
tiers: [numeric_value, numeric_value, ... ]
style: interval
sql: ${my_field_name} ;;
}
}
type: tier 維度的 sql 參數可以採用任何有效的 SQL 運算式,只要結果是數字或整數即可。
年齡範例如下:
dimension: age_tier {
type: tier
tiers: [0, 10, 20, 30, 40, 50, 60, 70, 80]
style: classic # the default value, could be excluded
sql: ${age} ;;
}
如要瞭解這項設定在 Looker UI 中的顯示方式,請參閱本頁的「style」一節。
type: tier的維度無法用於自訂篩選器。
style
style 參數可變更層級在 Looker UI 中的顯示方式。雖然下列各節的範例未顯示,但如果資料中有負數,就會有起始層級,包含從負無限大到 0 (不含 0) 的所有數字。可能的值有四個:
classic(預設值)intervalintegerrelational
classic
預設值為 style: classic,外觀如下:
| 使用者年齡層 (傳統版) | 使用者人數 |
|---|---|
| T02 [10,20) | 949 |
| T03 [20,30) | 2,161 |
| T04 [30,40) | 2,114 |
| T05 [40,50) | 2,081 |
| T06 [50,60) | 2,024 |
| T07 [60,70) | 1,511 |
| T08 [70,inf) | 1,450 |
- 您可以按照下列方式解讀這項層級標記:
- T02 [10,20) 是指包含 10,但不包含 20 的範圍
- T09 [80,inf) 是包含 80 的範圍,上限為無限大
interval
style: interval 與 style: classic 類似,但沒有開頭的 TXX 標籤。看起來像這樣:
| 使用者年齡層 (間隔) | 使用者人數 |
|---|---|
| [10,20) | 949 |
| [20,30) | 2,161 |
| [30,40) | 2,114 |
| [40,50) | 2,081 |
| [50,60) | 2,024 |
| [60,70) | 1,511 |
| [70,inf) | 1,450 |
integer
style: integer 必須搭配離散整數值 (例如年齡) 使用。如果您嘗試使用非整數定義層級,系統會傳回錯誤。這個樣式如下所示:
| 使用者年齡層 (整數) | 使用者人數 |
|---|---|
| 10 至 19 | 949 |
| 20 至 29 | 2,161 |
| 30 至 39 | 2,114 |
| 40 至 49 | 2,081 |
| 50 至 59 歲 | 2,024 |
| 60 至 69 歲 | 1,511 |
| 70 以上 | 1,450 |
relational
style: relational 最適合用於連續數字 (例如金額),格式如下:
| 使用者年齡層 (關聯) | 使用者人數 |
|---|---|
| >=10 且 < 20 | 949 |
| >=20 且 < 30 | 2,161 |
| >=30 且 < 40 | 2,114 |
| >=40 且 < 50 | 2,081 |
| >=50 且 < 60 | 2,024 |
| >=60 且 < 70 | 1,511 |
| >=70 | 1,450 |
你也可以使用 value_format 設定層級樣式。例如:
dimension: amount_tier {
type: tier
tiers: [0, 10, 20, 30, 40, 50, 60, 70, 80]
style: integer
sql: ${amount} ;;
value_format: "$#,##0"
}
這個範例會產生 $10 to $19、$20 to $29 等級別標籤。
注意事項
如果同時使用 tier 和維度填補,可能會導致非預期的層級區間。
舉例來說,如果啟用維度填補功能,即使資料不含「低於 0」和「0 到 9」年齡層的年齡值,系統仍會顯示「年齡層」type: tier維度的層級區間:
| 使用者年齡層級 |
|---|
| 低於 0 |
| 0 至 9 |
| 10 至 19 |
| 20 至 29 |
| 30 至 39 |
| 40 至 49 |
| 50 至 59 歲 |
| 60 至 69 歲 |
| 70 至 79 |
| 80 以上 |
如果停用「年齡層」的維度填補功能,系統會根據資料中的可用年齡值,更準確地劃分區塊:
| 使用者年齡層級 |
|---|
| 10 至 19 |
| 20 至 29 |
| 30 至 39 |
| 40 至 49 |
| 50 至 59 歲 |
| 60 至 69 歲 |
| 70 至 79 |
| 80 以上 |
如要啟用或停用維度填補功能,請將滑鼠游標懸停在「探索」中的維度名稱上,按一下欄位層級的齒輪圖示,然後選取「移除填入的層級值」來停用,或選取「填入缺少的層級值」來啟用。
time
type: time 會與 dimension_group 和 timeframes 參數搭配使用,建立一組以時間為準的維度。舉例來說,您可以根據單一時間戳記欄建立日期、週和月份維度。
type: time只能搭配 dimension_group 使用,無法搭配一般 dimension 使用。不過,您可以指定個別的時間維度,詳情請參閱「個別時間和日期類型」一節。
如要瞭解維度群組,請參閱 dimension_group 參數說明文件頁面,其中也包含 timeframes、convert_tz 和 datatype 參數的相關資訊,以及使用時間資料時應注意的常見問題和注意事項。
unquoted
type: unquoted 僅適用於 parameter 欄位。unquoted 類型與 type: string 類似,但將 parameter 的值插入 {% parameter %} Liquid 變數時,不會加上引號。將值插入 SQL 時,如果無法加上引號,就無法正常運作,這時就很有用,例如資料欄或資料表名稱。
直接將未加引號的值插入 SQL,可能會導致不必要的 SQL 動作。為解決這個問題,type: unquoted 的參數值僅限使用 A 至 Z 和 0 至 9 的字元 (不得包含空格或其他特殊字元)。
舉例來說,下列 LookML 會建立名為 table_name 的 parameter,產生未加引號的值:
parameter: table_name {
type: unquoted
}
yesno
type: yesno 會建立欄位,指出某件事是 true 還是 false。在探索使用者介面中,這些值會顯示為「是」和「否」。
type: yesno 維度的 sql 參數會採用有效的 SQL 運算式,評估結果為 TRUE 或 FALSE。如果條件評估結果為 TRUE,系統會向使用者顯示「是」;否則會顯示「否」。
type: yesno 維度的 SQL 運算式不得包含任何匯總。也就是說,不得包含 SQL 匯總或任何 LookML 測量指標的參照。如要建立包含 SQL 匯總或參照 LookML 測量的 yesno 欄位,請使用 type: yesno 的測量,而非維度。
舉例來說,下列 LookML 會根據 status 欄位建立欄位,指出訂單是否已付款:
dimension: is_order_paid {
type: yesno
sql: ${status} = 'paid' ;;
}
如要在其他欄位中參照 type: yesno 欄位,請將 type: yesno 欄位視為布林值 (換句話說,視為已包含 true 或 false 值)。例如:
dimension: is_big_order {
type: yesno
sql: ${order_size} = 'big' ;;
}
# This is correct
measure: total_boxes_needed {
type: number
sql: SUM(CASE WHEN ${is_big_order} THEN 2 ELSE 1 END) ;;
}
# This is NOT correct
measure: total_boxes_needed {
type: number
sql: SUM(CASE WHEN ${is_big_order} = 'Yes' THEN 2 ELSE 1 END) ;;
}
如果將 type: yesno 與時間型資料搭配使用,維度會在日期時間有值時傳回「是」,沒有值時則傳回「否」。
zipcode
type: zipcode 可搭配您要在靜態地圖 (點) 視覺化圖表上繪製的郵遞區號維度使用 (如要使用靜態地圖 (區域),請使用州或國家/地區欄位)。系統會自動為 type: zipcode 的任何維度提供 map_layer_name 的 us_zipcode_tabulation_areas。如果不想繪製郵遞區號,可以使用較簡單的型別,例如 type: number。
type: zipcode 維度的 sql 參數可以採用任何有效的 SQL 運算式,只要結果是美國五位數的郵遞區號即可。
如要依郵遞區號維度篩選,部分資料庫方言會要求郵遞區號維度參照的資料庫欄位為 varchar 或字串類型欄位,而非整數類型欄位。
例如:
dimension: zip {
type: zipcode
sql: ${TABLE}.zipcode ;;
}
個別時間和日期類型
通常日期會以使用 type: time 的 dimension_group 處理。
您可以為要納入的每個時間範圍建立一個 dimension 或 filter 欄位,而不必在單一 dimension_group 中產生所有欄位。一般來說,除非您已在資料庫中預先計算時間資料欄,或想變更 Looker 時間範圍命名慣例 (例如使用名為 created_date_of_purchase 的欄位,而非 created_date),否則應避免這麼做。
可用的時間類型列出許多以時間和日期為準的類型。
舉例來說,如果 dimension_group 定義如下:
dimension_group: created {
type: time
timeframes: [week, month, year]
sql: ${TABLE}.created_at ;;
}
您可以將此視為邏輯等效項目:
dimension: created_week {
type: date_week
sql: ${TABLE}.created_at ;;
}
dimension: created_month {
type: date_month
sql: ${TABLE}.created_at ;;
}
dimension: created_year {
type: date_year
sql: ${TABLE}.created_at ;;
}
可用的時間類型
在個別維度的 type 參數中,可使用下列類型建立以時間或日期為準的欄位。請勿將這些類型與 timeframe 參數搭配使用,相關說明請參閱 dimension_group 說明文件頁面。
所有個別時間和日期類型都需要從資料庫輸入時間戳記。
特殊類型
| 類型 | 說明 | 輸出範例 |
|---|---|---|
date_raw
|
資料庫中的原始值 (未經過轉換或時區轉換),不會顯示在「探索」頁面 (通常不需要,除非是聯結或時間比較) |
2014-09-03 17:15:00 +0000
|
時間類型
| 類型 | 說明 | 輸出範例 |
|---|---|---|
date_time |
基礎欄位的日期時間 (部分 SQL 方言會顯示資料庫所含的精確度,其他方言則只會顯示到秒) | 2014-09-03 17:15:00 |
date_time_of_day |
時段 | 17:15 |
date_hour |
日期時間截斷至最接近的小時 | 2014-09-03 17 |
date_hour_of_day |
基礎欄位的小時整數值 | 17 |
date_hourX |
將每天分成指定時數的間隔。 | 請參閱「使用 date_hourX」。 |
date_minute |
日期時間截斷至最接近的分鐘 | 2014-09-03 17:15 |
date_minuteX |
將每小時分成指定分鐘數的間隔。 | 請參閱「使用 date_minuteX」。 |
date_second |
日期時間 (四捨五入至最接近的秒數) | 2014-09-03 17:15:00 |
date_millisecond |
日期時間截斷至最接近的毫秒 (如需方言支援的相關資訊,請參閱「支援毫秒和微秒的方言」一節) | 2014-09-03 17:15:00.000 |
date_millisecondX |
將每秒分割為指定毫秒數的時間間隔 (如需方言支援的相關資訊,請參閱「毫秒和微秒的方言支援」一節)。 | 2014-09-01 01:00:00.250 |
date_microsecond |
日期時間截斷至最接近的微秒 (如需方言支援的相關資訊,請參閱「支援毫秒和微秒的方言」一節) | 2014-09-03 17:15:00.000000 |
日期類型
| 類型 | 說明 | 輸出範例 |
|---|---|---|
date |
基礎欄位的日期 | 2017-09-03 |
date_date |
已移除 4.6
已替換為 date |
週類型
| 類型 | 說明 | 輸出範例 |
|---|---|---|
date_week |
以基礎日期時間的星期一為一週的開始日期 | 2017-09-01 |
date_day_of_week |
僅限星期幾 | Wednesday |
date_day_of_week_index |
星期幾索引 (0 = 星期一,6 = 星期日) | 2 |
請注意,date_week、date_day_of_week 和 date_day_of_week_index 類型取決於 week_start_day 的值 (預設為星期一)。
月份類型
| 類型 | 說明 | 輸出範例 |
|---|---|---|
date_month |
基礎日期時間的年和月 | 2017-09 |
date_month_num |
基礎日期時間的月份整數 | 9 |
date_month_name |
月份名稱 | September |
date_day_of_month |
當月第幾日 | 3 |
date_fiscal_month_num |
基礎日期時間的月份整數 | 9 |
如要使用 date_fiscal_month_num 類型,必須在模型中設定 fiscal_month_offset 參數。
季別類型
| 類型 | 說明 | 輸出範例 |
|---|---|---|
date_quarter |
基礎日期時間的年份和季度 | 2017-Q3 |
date_quarter_of_year |
季度,以「Q」開頭 | Q3 |
date_fiscal_quarter |
基礎日期時間的會計年度和季度 | 2017-Q3 |
date_fiscal_quarter_of_year |
會計年度的季度,前面加上「Q」 | Q3 |
如要使用 date_fiscal_quarter 和 date_fiscal_quarter_of_year 類型,必須在模型中設定 fiscal_month_offset 參數。
年類型
| 類型 | 說明 | 輸出範例 |
|---|---|---|
date_year |
基礎日期時間的整數年份 | 2017 |
date_day_of_year |
一年中的第幾天 | 143 |
date_week_of_year |
以數字表示的週次 | 17 |
date_fiscal_year |
基礎日期時間的整數會計年度 | 2017 |
如要使用 date_fiscal_year 類型,必須在模型中設定 fiscal_month_offset 參數。
正在使用 date_hourX
在 date_hourX 中,X 會替換為 2、3、4、6、8 或 12。
系統會將每天分成指定時數的間隔。舉例來說,date_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,則 date_hour6 為 2014-09-01 06:00:00。
正在使用 date_minuteX
在 date_minuteX 中,X 會替換為 2、3、5、10、15 或 30。
使用 date_minuteX 會將每小時劃分為指定分鐘數的間隔。舉例來說,date_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,則該列的 date_minute15 會是 2014-09-01 01:15:00。
時區和 convert_tz
一般來說,只有在所有時間值都轉換為相同時區時,時間計算 (差異、持續時間等) 才能正確運作,因此撰寫 LookML 時,請務必留意時區。
Looker 提供各種時區設定,可在不同時區之間轉換時間資料。Looker 預設會轉換時區。如果您不希望 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+ | |
| 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 | |
| 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+ | |
| 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 | |
| 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 |
個別時間長度類型
通常,時間長度會以使用 type: duration 的 dimension_group 處理。
您可以為要納入的每個時間長度建立一個 dimension,而不必在單一 dimension_group 中產生所有時間長度。除非您想變更 Looker 時間範圍命名慣例 (例如將「Duration to Delivery」欄位改名為「Number of Days to Delivery」),否則一般會避免這麼做。
如需個別時間長度類型,請參閱這篇文章。
為維度使用時間長度類型時,您也必須加入 sql_start 和 sql_end 參數,提供開始和結束時間,以計算時間差。
sql_start 和 sql_end 參數可採用任何有效的 SQL 運算式,其中包含時間戳記、日期時間、日期、紀元或 yyyymmdd 格式的資料。sql_start 和 sql_end 欄位可以是下列任一項目:
- 參照
type: time現有維度群組中的raw時間範圍。 type: date_raw維度的參照。- 時間戳記的 SQL 運算式,例如參照時間戳記的 SQL 資料欄。
- SQL 運算式,可使用適合方言的運算式,從資料庫擷取時間。
舉例來說,如果 dimension_group 定義如下:
dimension_group: to_delivery {
type: duration
intervals: [day, hour]
sql_start: ${created_raw} ;;
sql_end: ${delivered_raw};;
}
您可以將這些 dimension 參數視為邏輯等效項目:
dimension: number_of_days_to_delivery {
type: duration_day
sql_start: ${created_raw} ;;
sql_end: ${delivered_raw};;
}
dimension: number_of_hours_to_delivery {
type: duration_hour
sql_start: ${created_raw} ;;
sql_end: ${delivered_raw};;
}
在「探索」使用者介面中,這會建立名為「Number of Days to Delivery」和「Number of Hours to Delivery」的維度。
可用的時間長度類型
個別維度的 type 參數會使用下列類型建立以時間長度為準的欄位。請勿將這些類型與 intervals 參數搭配使用,相關說明請參閱 dimension_group 說明文件頁面。
所有個別的時長類型都需要資料庫提供時間戳記做為輸入內容。
| 類型 | 說明 | 輸出範例 |
|---|---|---|
duration_day |
計算天數的時間差 | 9 days |
duration_hour |
計算時差 (以小時為單位) | 171 hours |
duration_minute |
以分鐘為單位計算時差 | 10,305 minutes |
duration_month |
計算以月為單位的時間差 | 3 months |
duration_quarter |
以季為單位計算時間差 | 2 quarters |
duration_second |
計算時間差 (以秒為單位) | 606,770 seconds |
duration_week |
以週為單位計算時差 | 6 weeks |
duration_year |
計算以年為單位的時間差 | 2 years |