本頁面定義了以下核心術語和概念,您在 LookML 開發期間可能會經常遇到這些概念:
Look 和使用者定義的資訊主頁不會列於本頁,因為使用者建立這類內容時不需要使用 LookML。不過,這些查詢會依賴本頁所述的基礎 LookML 元素。
如需 Looker 中使用的完整術語和定義清單,請參閱 Looker 詞彙表。如要全面瞭解可在 LookML 專案中使用的 LookML 參數,請參閱 LookML 快速參考資料頁面。
請參閱 Looker 和 Looker Studio 共用術語和概念說明文件頁面,瞭解 Looker 和 Looker Studio 中相似術語和概念的差異。
LookML 專案
在 Looker 中,專案是指描述物件、資料庫連線和使用者介面元素的檔案集合,這些元素會用於執行 SQL 查詢。這些檔案最基本的功能,是說明資料庫資料表之間的關係,以及 Looker 應如何解讀這些資料表。檔案也可能包含 LookML 參數,用於定義或變更 Looker 使用者介面中顯示的選項。每個 LookML 專案都會位於專屬的 Git 存放區,以便控管版本。
將 Looker 連結至資料庫後,您可以指定要用於 Looker 專案的資料庫連線。
您可以透過 Looker 中的「Develop」選單存取專案 (詳情和其他選項請參閱「存取專案檔案」)。
如要瞭解如何建立新專案,請參閱「產生模型」說明文件頁面;如要瞭解如何存取及變更現有的 LookML 專案,請參閱「存取及編輯專案資訊」說明文件頁面。
專案的組成部分
如圖所示,以下是 LookML 專案中常見的檔案類型:
- 模型包含要使用哪些資料表,以及如何彙整這些資料表的資訊。通常會在此定義模型、探索和彙整。
- 檢視畫面包含如何存取或計算每個資料表 (或多個已彙整的資料表) 中的資訊。您通常會在此定義檢視畫面、其維度和測量指標,以及其欄位集。
- Explore 通常會在模型檔案中定義,但有時您需要為衍生資料表建立個別的 Explore 檔案,或是擴充或精簡跨模型的 Explore。
- 資訊清單檔案可包含使用從其他專案匯入的檔案,或使用專案的本地化設定的操作說明。
除了模型、檢視、探索和資訊清單檔案外,專案還可以包含與內建資訊主頁、說明文件、本地化等相關的其他類型檔案。如要進一步瞭解這些類型的檔案,以及 LookML 專案中可用的其他類型檔案,請參閱 LookML 專案檔案說明文件。
這些檔案共同組成一個專案。如果您使用 Git 進行版本管控,則每個專案通常會由專屬的 Git 存放區備份。
LookML 專案和檔案的來源為何?
建立 LookML 檔案最常見的方式,就是從資料庫產生 LookML 專案。您也可以建立空白專案,然後手動建立 LookML 檔案。
從資料庫產生新專案時,Looker 會建立一組基準檔案,可做為建構專案的範本:
- 多個檢視畫面檔案,資料庫中的每個資料表各一個檔案。
- 一個模型檔案。模型檔案會為每個檢視畫面宣告一個 Explore。每個 Explore 宣告都包含
join
邏輯,可彙整 Looker 判斷與 Explore 相關的任何檢視畫面。
接著,您可以移除不必要的檢視畫面和探索,並新增自訂維度和指標,自訂專案。
主要 LookML 結構
如專案圖表的部分所示,專案通常包含一或多個模型檔案,其中包含定義模型及其探索和彙整作業的參數。此外,專案通常包含一或多個檢視畫面檔案,每個檔案都包含定義該檢視畫面及其欄位 (包括維度和度量) 和欄位集合的參數。專案也可能包含專案資訊清單檔案,可讓您設定專案層級設定。本節將說明這些主要結構。
模型
模型是資料庫的客製化入口網站,旨在為特定業務使用者提供直覺的資料探索功能。在單一 LookML 專案中,同一個資料庫連線可以包含多個模型。每個模型可向不同使用者提供不同的資料。舉例來說,銷售人員和公司主管需要的資料不同,因此您可能會開發兩個模型,為每位使用者提供適當的資料庫檢視畫面。
模型會指定單一資料庫的連線。開發人員也會在模型檔案中定義模型的 Explores。根據預設,探索會按照定義探索的模型名稱進行分類。使用者會在「探索」選單中看到列出的模型。
如要進一步瞭解模型檔案,包括模型檔案的結構和一般語法,請參閱「LookML 專案中的檔案類型」說明文件。
如要進一步瞭解可在模型檔案中使用的 LookML 參數,請參閱「模型參數」說明文件頁面。
查看
檢視陳述式會定義一組欄位 (維度或測量指標),以及這些欄位與底層表格或衍生表格的連結。在 LookML 中,檢視表通常會參照底層資料庫資料表,但也可以代表衍生資料表。
檢視畫面可以加入其他檢視畫面。檢視畫面之間的關係通常會在模型檔案中以 Explore 宣告的一部分來定義。
根據預設,檢視名稱會顯示在「探索」資料表中維度和評量指標名稱的開頭。這個命名慣例可清楚指出欄位所屬的檢視畫面。在以下範例中,資料表中的欄位名稱前會列出「Orders」和「Users」等檢視名稱:
如要進一步瞭解檢視畫面檔案,包括檢視畫面檔案的結構和一般語法,請參閱「LookML 專案中的檔案類型」說明文件。
如要進一步瞭解可在檢視檔案中使用的 LookML 參數,請參閱「檢視參數」說明文件。
探索
探索是使用者可以查詢的檢視畫面。您可以將探索視為查詢的起點,或以 SQL 術語來說,是 SQL 陳述式中的 FROM
。並非所有檢視都是探索,因為並非所有檢視都會描述感興趣的實體。舉例來說,與州名對應的查詢表格「States」檢視畫面不必建立探索,因為業務使用者不需要直接查詢這個檢視畫面。另一方面,商業使用者可能需要一種查詢「訂單」檢視畫面的方式,因此定義「訂單」的探索功能就很有幫助。如要瞭解使用者如何透過探索資料查詢資料,請參閱「在 Looker 中查看及操作探索資料」說明文件。
在 Looker 中,使用者可以在「探索」選單中查看「探索」清單。探索會列在所屬模型名稱下方。
依慣例,實驗會在模型檔案中使用 explore
參數宣告。在以下模型檔案範例中,orders
電子商務資料庫的探索功能是在模型檔案中定義。在 explore
宣告中參照的檢視畫面 orders
和 customers
是在其他位置的各自檢視畫面檔案中定義。
connection: order_database
include: "filename_pattern"
explore: orders {
join: customers {
sql_on: ${orders.customer_id} = ${customers.id} ;;
}
}
在這個範例中,connection
參數用於指定模型的資料庫連線,而 include
參數則用於指定模型可參照的檔案。
本例中的 explore
宣告也會指定檢視畫面之間的彙整關係。如要進一步瞭解 join
宣告,請參閱本頁的「彙整」一節。如要進一步瞭解可與 join
參數搭配使用的 LookML 參數,請參閱「彙整參數」說明文件。
維度和測量指標欄位
檢視畫面包含欄位,大多是維度和指標,是 Looker 查詢的基本建構區塊。
在 Looker 中,維度是可分組的欄位,可用於篩選查詢結果。可以是下列任一值:
- 與底層資料表中的資料欄直接相關的屬性
- 事實或數值
- 衍生值,根據單一資料列中其他欄位的值計算得出
在 Looker 中,維度一律會出現在 Looker 產生的 SQL 的 GROUP BY
子句中。
舉例來說,產品檢視畫面的維度可能包括產品名稱、產品型號、產品顏色、產品價格、產品建立日期和產品淘汰日期。
度量是使用 SQL 匯總函式 (例如 COUNT
、SUM
、AVG
、MIN
或 MAX
) 的欄位。任何根據其他度量值計算得出的欄位,也屬於度量。您可以使用指標篩選已分組的值。舉例來說,銷售檢視畫面的指標可能包括已售商品總數 (計數)、總銷售價格 (總和) 和平均銷售價格 (平均值)。
欄位的行為和預期值取決於其宣告的類型,例如 string
、number
或 time
。度量值的類型包括匯總函式,例如 sum
和 percent_of_previous
。詳情請參閱「維度類型」和「評量指標類型」。
在 Looker 中,欄位會列在「Explore」頁面左側的欄位挑選器中。您可以在欄位挑選器中展開檢視畫面,查看可從該檢視畫面查詢的欄位清單。
依照慣例,系統會將欄位宣告為所屬檢視畫面的一部分,並儲存在檢視畫面檔案中。以下範例顯示多個維度和指標宣告。請注意,替換運算子 ($
) 用於參照欄位時,並未使用完整範圍的 SQL 欄名。
以下是維度和指標的宣告範例:
view: orders {
dimension: id {
primary_key: yes
type: number
sql: ${TABLE}.id ;;
}
dimension: customer_id {
sql: ${TABLE}.customer_id ;;
}
dimension: amount {
type: number
value_format: "0.00"
sql: ${TABLE}.amount ;;
}
dimension_group: created {
type: time
timeframes: [date, week]
sql: ${TABLE}.created_at ;;
}
measure: count {
type: count # creates sql COUNT(orders.id)
sql: ${id} ;;
}
measure: total_amount {
type: sum # creates sql SUM(orders.amount)
sql: ${amount} ;;
}
}
您也可以定義 dimension_group
,一次建立多個與時間相關的維度,以及 filter
欄位,後者有各種進階用途,例如模板篩選器。
如要進一步瞭解如何宣告欄位,以及可套用的各種設定,請參閱「欄位參數」說明文件頁面。
彙整
join
宣告是 explore
宣告的一部分,可指定可加入「探索」的檢視畫面。當使用者建立包含多個檢視表欄位的查詢時,Looker 會自動產生 SQL 彙整邏輯,正確匯入所有欄位。
以下是 explore
宣告中的彙整示例:
# file: ecommercestore.model.lookml
connection: order_database
include: "filename_pattern" # include all the views
explore: orders {
join: customers {
sql_on: ${orders.customer_id} = ${customers.id} ;;
}
}
詳情請參閱「在 LookML 中使用彙整」說明文件頁面。
專案資訊清單檔案
專案可能包含專案資訊清單檔案,用於專案層級設定,例如指定要匯入至目前專案的其他專案、定義 LookML 常數、指定模型本地化設定,以及在專案中新增擴充功能和自訂轉換視覺化效果。
每個專案只能有一個資訊清單檔案。檔案名稱必須為 manifest.lkml
,並位於 Git 存放區的根層級。使用 IDE 中的資料夾時,請務必將 manifest.lkml
檔案保留在專案目錄結構的根層級。
如要從其他專案匯入 LookML 檔案,請使用專案資訊清單檔案,指定目前專案的名稱和任何外部專案的位置,這些專案可以儲存在本機或遠端。例如:
# This project
project_name: "my_project"
# The project to import
local_dependency: {
project: "my_other_project"
}
remote_dependency: ga_360_block {
url: "https://github.com/llooker/google_ga360"
ref: "4be130a28f3776c2bf67a9acc637e65c11231bcc"
}
在專案資訊清單檔案中定義外部專案後,您可以使用模型檔案中的 include
參數,將這些外部專案中的檔案新增至目前專案。例如:
include: "//my_other_project/imported_view.view"
include: "//ga_360_block/*.view"
詳情請參閱「從其他專案匯入檔案」說明文件頁面。
如要為模型新增本地化功能,請使用專案資訊清單檔案指定預設的本地化設定。例如:
localization_settings: {
default_locale: en
localization_level: permissive
}
指定預設本地化設定是將模型本地化的其中一個步驟。詳情請參閱「將 LookML 模型本地化」說明文件頁面。
集合
在 Looker 中,集合是定義一組可一起使用的欄位的清單。一般來說,使用者深入資料後,系統會使用集合指定要顯示哪些欄位。鑽研集是依欄位逐一指定,因此您可以完全控管使用者在表格或資訊主頁中點選某個值時,系統要顯示哪些資料。集合也可以做為安全性功能,用來定義特定使用者可見的欄位群組。以下範例顯示檢視畫面 order_items
中的集合宣告,定義列出購買商品相關詳細資料的欄位。請注意,您可以指定範圍,從其他檢視畫面中參照欄位。
set: order_items_stats_set {
fields: [
id, # scope defaults to order_items view
orders.created_date, # scope is "orders" view
orders.id,
users.name,
users.history, # show all products this user has purchased
products.item_name,
products.brand,
products.category,
total_sale_price
]
}
如需套件的完整使用詳情,請參閱 set
參數說明文件頁面。
下鑽
在 Looker 中,您可以設定欄位,讓使用者進一步深入分析資料。鑽研功能適用於查詢結果表格和資訊主頁。鑽研會啟動新的查詢,並受限於您點選的值。
維度和測量指標的鑽研行為不同:
- 當您對維度進行深入查詢時,新的查詢會篩選已深入查詢的值。舉例來說,如果您在「按日期查詢客戶訂單」查詢中按一下特定日期,新查詢就會只顯示該特定日期的訂單。
- 當您深入查看指標時,新查詢會顯示為該指標提供資料的資料集。舉例來說,如果您要深入查看計數,新查詢會顯示用來計算該計數的資料列。當您針對最大值、最小值和平均值指標進行鑽研時,鑽研仍會顯示所有影響該指標的資料列。舉例來說,如果您鑽研最大值度量方式,系統會顯示用於計算最大值的所有資料列,而非僅顯示單一資料列。
您可以使用集合定義新鑽研查詢要顯示的欄位,也可以使用 drill_fields
參數 (針對欄位) 或 drill_fields
參數 (針對檢視畫面) 定義。
衍生資料表
衍生資料表是指查詢結果會視為資料庫中的實際資料表。您可以使用 view
宣告中的 derived_table
參數建立衍生資料表。Looker 會將衍生資料表視為實體資料表,並使用其專屬的資料欄。衍生表會以自身的檢視畫面形式公開,並以與傳統檢視畫面相同的方式定義維度和測量指標。衍生表格的檢視畫面可像其他檢視畫面一樣,進行查詢並與其他檢視畫面彙整。
衍生資料表也可以定義為持續衍生資料表 (PDT),這類資料表會寫入資料庫上的暫存結構定義,並依據您使用持續性策略指定的排程自動重新產生。
詳情請參閱「Looker 中的衍生資料表」說明文件頁面。
資料庫連線
LookML 專案的另一個重要元素是資料庫連線,Looker 會使用這項連線在資料庫上執行查詢。Looker 管理員會使用「Connections」頁面設定資料庫連線,而 LookML 開發人員則會使用模型檔案中的 connection
參數,指定要為模型使用的連線。如果您從資料庫產生 LookML 專案,Looker 會自動在模型檔案中填入 connection
參數。
區分大小寫
LookML 會區分大小寫,因此請務必在參照 LookML 元素時使用一致的大小寫。如果您參照的元素不存在,Looker 會發出快訊通知。
舉例來說,假設您有一個名為 e_flights_pdt
的探索,而 LookML 開發人員使用不正確的大小寫 (e_FLIGHTS_pdt
) 參照該探索。在本例中,Looker IDE 會顯示「探索」e_FLIGHTS_pdt
不存在的警告。此外,IDE 會建議現有探索的名稱,即 e_flights_pdt
:
不過,如果專案同時包含 e_FLIGHTS_pdt
和 e_flights_pdt
,Looker IDE 就無法修正錯誤,因此您必須確定要使用哪個版本。一般來說,建議您在命名 LookML 物件時使用小寫字母。
IDE 資料夾名稱也區分大小寫。每次指定檔案路徑時,都必須使用與資料夾名稱相同的大小寫字母。舉例來說,如果您有一個名為 Views
的資料夾,就必須在 include
參數中使用相同的大小寫字母。同樣地,如果大小寫不符合專案中現有資料夾,Looker IDE 會顯示錯誤: