LookML 是 Looker 模型語言的縮寫,是 Looker 用來建立語意資料模型的語言。您可以使用 LookML 說明 SQL 資料庫中的維度、匯總、計算和資料關係。Looker 會使用以 LookML 編寫的模型,針對特定資料庫建立 SQL 查詢。
LookML 是一種依附元件語言,類似於 make,而非 C 或 Ruby 等命令式語言。LookML 提供資料建模的預先定義資料類型和語法。您不必具備程式設計語言相關經驗,也能瞭解 LookML。LookML 不受特定 SQL 方言的影響,且會封裝 SQL 運算式,以便支援任何 SQL 實作。
LookML 可讓資料分析師採用 DRY 風格 (「Don't Repeat Yourself」),也就是說,您只需在一個地方寫一次 SQL 運算式,Looker 就會重複使用該程式碼,產生特別的 SQL 查詢。業務使用者就能利用這些結果,在 Looker 中建立複雜的查詢,只需專注於所需內容,而無須費心處理 SQL 結構的複雜性。
LookML 專案
LookML 是在專案中定義。LookML 專案是一系列的檔案,至少包含模型和檢視畫面檔案,以及選用的其他類型的檔案,這些檔案通常會透過 Git 存放區一起進行版本控制。模型檔案包含專案要使用的資料表,以及如何彙整資料表的資訊。檢視檔案會說明如何計算每個資料表的資訊 (如果彙整允許,也會跨多個資料表計算)。
LookML 會將結構與內容分開,因此查詢結構 (如何彙整資料表) 與查詢內容 (要存取的資料欄、衍生欄位、要計算的匯總函式,以及要套用的篩選運算式) 是獨立的。
Looker 查詢是根據 LookML 專案檔案建立。資料分析師會使用 LookML 建立及維護資料模型,為要分析的資料定義資料結構和業務規則。Looker SQL 產生器會將 LookML 轉譯成 SQL,讓業務使用者不必編寫任何 LookML 或 SQL 即可執行查詢。
企業使用者可透過 Looker 查詢建立工具或「探索」介面,根據 Looker 分析師定義的資料模型建立查詢。使用者可以選取維度、度量和篩選器,根據自己的問題建立自訂查詢,並產生洞察資料。
使用者建立查詢後,系統會將查詢傳送至 Looker SQL 產生器,後者會將查詢轉譯成 SQL。系統會針對資料庫執行 SQL 查詢,然後 Looker 會在「探索」介面中將格式化的結果傳回給使用者。使用者就能將結果視覺化,並產生洞察資料。
如要進一步瞭解專案中的 LookML 基本元素,以及這些元素彼此之間的關聯,請參閱「LookML 術語和概念」。
使用者看到的內容
專案的設定方式和檔案的具體內容,會決定使用者看到的內容,以及他們與 Looker 互動的方式。
- 左側導覽面板中的「探索」面板會依模型名稱排序。每個模型名稱下方都會列出該模型中定義的可用探索。
- 使用者可以搜尋特定的 Explore。
開發人員可以為探索定義說明,使用者只要將滑鼠游標懸停在「探索」選單中的探索名稱上,即可查看說明。
「欄位挑選器」窗格會依據檢視畫面名稱進行排序。每個檢視畫面名稱下方都會列出該檢視畫面所含資料表的可用欄位。大多數檢視畫面都會同時顯示維度和測量指標。這個範例會從「Returned Date」維度群組中選取「Month」維度,該群組是在檢視檔案中定義。
使用者可以選取多個指標做為查詢依據。
使用者可以在欄位挑選窗格中套用篩選器和樞紐等選項。
使用者可以調整查詢條件。
使用者可以選擇要套用至查詢結果的視覺化類型。
執行這項探索後,系統會產生 SQL 查詢,傳回資料表和圖表,顯示過去一年退貨訂單的總銷售價格和總毛利率。
程式碼範例
以下程式碼範例顯示電子商務商店的簡易 LookML 專案,其中包含模型檔案 ecommercestore.model.lkml
和兩個檢視檔案 orders.view.lkml
和 customers.view.lkml
:
######################################
# FILE: ecommercestore.model.lkml #
# Define the explores and join logic #
######################################
connection: order_database
include: "*.view.lkml"
explore: orders {
join: customers {
sql_on: ${orders.customer_id} = ${customers.id} ;;
}
}
##########################################################
# FILE: orders.view.lkml #
# Define the dimensions and measures for the ORDERS view #
##########################################################
view: orders {
dimension: id {
primary_key: yes
type: number
sql: ${TABLE}.id ;;
}
dimension: customer_id { # field: orders.customer_id
sql: ${TABLE}.customer_id ;;
}
dimension: amount { # field: orders.amount
type: number
value_format: "0.00"
sql: ${TABLE}.amount ;;
}
dimension_group: created { # generates fields:
type: time # orders.created_time, orders.created_date
timeframes: [time, date, week, month] # orders.created_week, orders.created_month
sql: ${TABLE}.created_at ;;
}
measure: count { # field: orders.count
type: count # creates a sql COUNT(*)
drill_fields: [drill_set*] # list of fields to show when someone clicks 'ORDERS Count'
}
measure: total_amount {
type: sum
sql: ${amount} ;;
}
set: drill_set {
fields: [id, created_time, customers.name, amount]
}
}
#############################################################
# FILE: customers.view.lkml #
# Define the dimensions and measures for the CUSTOMERS view #
#############################################################
view: customers {
dimension: id {
primary_key: yes
type: number
sql: ${TABLE}.id ;;
}
dimension: city { # field: customers.city
sql: ${TABLE}.city ;;
}
dimension: state { # field: customers.state
sql: ${TABLE}.state ;;
}
dimension: name {
sql: CONCAT(${TABLE}.firstname, " ", ${TABLE}.lastname) ;;
}
measure: count { # field: customers.count
type: count # creates a sql COUNT(*)
drill_fields: [drill_set*] # fields to show when someone clicks 'CUSTOMERS Count'
}
set: drill_set { # set: customers.drill_set
fields: [id, state, orders.count] # list of fields to show when someone clicks 'CUSTOMERS Count'
}
}
其他資源
如果您是 LookML 開發新手,建議參考下列資源,加快學習速度:
取得 Looker 的學習環境存取權
歡迎前往 Google Cloud 技能重點加強參閱課程。
瞭解如何使用 Looker 查詢及探索資料
在 Looker 中模擬資料時,瞭解如何探索資料,將有助於您在 LookML 中建立資料模型。如果您不熟悉如何使用 Looker 查詢、篩選及深入分析資料,建議您參考下列資源:
- 請先參閱「擷取資料並以圖表呈現」教學課程。每個頁面底部的連結會引導您逐步瞭解 Looker 最重要的功能。
- 「在 Looker 分析資料並以圖表呈現」技能提升任務會介紹探索的基礎知識。
深入瞭解 LookML 前,請先複習 SQL 基本概念
撰寫 LookML 時,您必須瞭解 SQL 查詢。您不必是 SQL 專家,就連初學者也能建立強大的 Looker 模型。不過,一般來說,您對 LookML 的瞭解越深,對 SQL 的深入知識就越有幫助。
如需 SQL 複習,請參考以下幾項實用資源:
- Khan Academy 的 SQL 課程互動式 SQL 教學課程
- SQLZoo 互動式 SQL 教學課程
- Sams Teach Yourself SQL in 10 Minutes 一書,作者為 Ben Forta
瞭解 LookML 基本概念
這些資源可讓您快速掌握 LookML 知識。使用學習帳戶試驗不同的設計模式。
- 請先參閱 LookML 術語和概念。
- 請繼續參閱「Looker 產生 SQL 的方式」和「進階 LookML 概念」。
- 掌握 LookML 和 SQL 後,請參閱進階功能,例如衍生資料表和範本篩選器。
瞭解 LookML 基本概念後,請參閱下列頁面,瞭解不同類型的 LookML 參數: