本頁面定義下列核心詞彙和概念,您在 LookML 開發期間可能會經常遇到:
本頁不會說明資料檢視和使用者定義的資訊主頁,因為使用者建立這些項目時不需要使用任何 LookML。不過,這些查詢會用到本頁討論的基礎 LookML 元素。
如需 Looker 中使用的完整詞彙和定義清單,請參閱 Looker 詞彙表。如要全面瞭解可在 LookML 專案中使用的 LookML 參數,請參閱 LookML 快速參考頁面。
如要瞭解 Looker 和 Looker Studio 中類似字詞和概念的細微差異,請參閱 Looker 和 Looker Studio 共用字詞和概念說明文件頁面。
LookML 專案
在 Looker 中,專案是一組檔案,說明執行 SQL 查詢時使用的物件、資料庫連線和使用者介面元素。基本上,這些檔案會說明資料庫資料表之間的關係,以及 Looker 應如何解讀這些關係。檔案也可能包含 LookML 參數,用於定義或變更 Looker 使用者介面中顯示的選項。每個 LookML 專案都位於自己的 Git 存放區,方便進行版本控管。
將 Looker 連線至資料庫後,即可指定要用於 Looker 專案的資料庫連線。
您可以透過 Looker 的「開發」選單存取專案 (詳情和其他選項請參閱「存取專案檔案」)。
如要瞭解如何建立新專案,請參閱「產生模型」說明文件頁面;如要瞭解如何存取及變更現有 LookML 專案,請參閱「存取及編輯專案資訊」說明文件頁面。
專案的組成部分
如圖所示,以下是 LookML 專案中較常見的檔案類型:
- 模型包含要使用的資料表,以及這些資料表的彙整方式。您通常會在這裡定義模型、模型中的探索和模型中的聯結。
- 檢視包含如何存取或計算每個資料表 (或多個已聯結的資料表) 中資訊的相關資訊。您通常會在這裡定義檢視畫面、維度和指標,以及欄位集。
- 探索通常是在模型檔案中定義,但有時您需要衍生資料表的獨立探索檔案,或是擴充或調整跨模型的探索。
- 資訊清單檔案可包含使用從其他專案匯入檔案的操作說明,或專案的本地化設定。
除了模型、檢視畫面、探索和資訊清單檔案,專案還可包含與內建資訊主頁、說明文件、本地化等相關的其他類型檔案。如要進一步瞭解這些檔案類型,以及 LookML 專案中可能包含的其他檔案類型,請參閱 LookML 專案檔案說明文件頁面。
這些檔案共同構成一個專案。如果您使用 Git 進行版本控管,每個專案通常會備份到專屬的 Git 存放區。
LookML 專案和檔案的來源為何?
建立 LookML 檔案最常見的方式是從資料庫產生 LookML 專案。您也可以建立空白專案,然後手動建立 LookML 檔案。
從資料庫產生新專案時,Looker 會建立一組基準檔案,您可做為範本來建構專案:
您可以在這裡移除不必要的檢視畫面和探索,並新增自訂維度和指標,藉此自訂專案。
主要 LookML 結構
如專案圖表所示,專案通常包含一或多個模型檔案,其中含有定義模型及其探索和聯結的參數。此外,專案通常包含一或多個檢視畫面檔案,每個檔案都含有定義該檢視畫面及其欄位 (包括維度和指標) 和欄位集的參數。專案也可以包含專案資訊清單檔案,方便您設定專案層級設定。本節將說明這些主要結構。
模型
模型是資料庫的自訂入口,專為特定業務使用者提供直覺式的資料探索體驗。單一 LookML 專案中,同一個資料庫連線可以有多個模型。每個模型可向不同使用者公開不同資料。舉例來說,銷售人員和公司主管需要的資料不同,因此您可能會開發兩個模型,為每位使用者提供合適的資料庫檢視畫面。
模型會指定單一資料庫的連線。開發人員也會在模型檔案中定義模型的「探索」。根據預設,探索會依據定義探索的模型名稱進行整理。使用者會在「探索」選單中看到模型。
如要進一步瞭解模型檔案,包括模型檔案的結構和一般語法,請參閱「LookML 專案中的檔案類型」說明文件頁面。
如要進一步瞭解可在模型檔案中使用的 LookML 參數,請參閱「模型參數」說明文件頁面。
查看
檢視畫面宣告會定義欄位 (維度或指標) 清單,以及這些欄位與基礎資料表或衍生資料表的連結。在 LookML 中,檢視區塊通常會參照基礎資料庫資料表,但也可以代表衍生資料表。
檢視畫面可以加入其他檢視畫面。檢視區塊之間的關係通常會在模型檔案中定義為 Explore 宣告的一部分。
根據預設,在「探索」資料表的維度和指標名稱開頭,會顯示檢視區塊名稱。這個命名慣例可清楚指出欄位所屬的檢視畫面。在以下範例中,檢視區塊名稱「Orders」和「Users」會列在資料表中的欄位名稱之前:
如要進一步瞭解檢視檔案,包括檢視檔案的結構和一般語法,請參閱「LookML 專案中的檔案類型」說明文件。
如要進一步瞭解可在檢視區塊檔案中使用的 LookML 參數,請參閱「檢視參數」說明文件頁面。
探索
探索是使用者可查詢的檢視畫面。您可以將「探索」視為查詢的起點,或以 SQL 術語來說,視為 SQL 陳述式中的 FROM
。並非所有觀看次數都是探索,因為並非所有觀看次數都描述感興趣的實體。舉例來說,如果「州」檢視畫面與州名查閱表相符,則不需要使用「探索」,因為業務使用者永遠不需要直接查詢該檢視畫面。另一方面,商業使用者可能想查詢「訂單」檢視畫面,因此定義「訂單」的「探索」功能是合理的做法。如要瞭解使用者如何與探索資料互動來查詢資料,請參閱「在 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 中,欄位會列於「探索」頁面左側的欄位挑選器中。您可以在欄位挑選器中展開檢視畫面,顯示可從該檢視畫面查詢的欄位清單。
按照慣例,欄位會宣告為所屬檢視區塊的一部分,並儲存在檢視區塊檔案中。以下範例顯示多個維度和指標宣告。請注意,我們使用替代運算子 ($
) 參照欄位,而不使用完整範圍的 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
欄位,這些欄位有各種進階用途,例如範本篩選器。
如要完整瞭解如何宣告欄位,以及可套用至欄位的各種設定,請參閱「欄位參數」說明文件頁面。
彙整
在 explore
宣告中,每個 join
宣告都會指定可加入探索的檢視區塊。使用者建立的查詢包含多個檢視區塊的欄位時,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 管理員會使用「連線」頁面設定資料庫連線,而 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 會再次指出錯誤: