LookML 術語和概念

本頁面定義了以下核心術語和概念,您在 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 專案可包含模型、檢視畫面和 LookML 資訊主頁,每個元素都由其他 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」等檢視名稱:

範例查詢的資料表,已選取「Orders Created Date」、「Users ID」和「Orders Count」欄位。

如要進一步瞭解檢視畫面檔案,包括檢視畫面檔案的結構和一般語法,請參閱「LookML 專案中的檔案類型」說明文件。

如要進一步瞭解可在檢視檔案中使用的 LookML 參數,請參閱「檢視參數」說明文件。

探索

探索是使用者可以查詢的檢視畫面。您可以將探索視為查詢的起點,或以 SQL 術語來說,是 SQL 陳述式中的 FROM。並非所有檢視都是探索,因為並非所有檢視都會描述感興趣的實體。舉例來說,與州名對應的查詢表格「States」檢視畫面不必建立探索,因為業務使用者不需要直接查詢這個檢視畫面。另一方面,商業使用者可能需要一種查詢「訂單」檢視畫面的方式,因此定義「訂單」的探索功能就很有幫助。如要瞭解使用者如何透過探索資料查詢資料,請參閱「在 Looker 中查看及操作探索資料」說明文件。

在 Looker 中,使用者可以在「探索」選單中查看「探索」清單。探索會列在所屬模型名稱下方。

依慣例,實驗會在模型檔案中使用 explore 參數宣告。在以下模型檔案範例中,orders 電子商務資料庫的探索功能是在模型檔案中定義。在 explore 宣告中參照的檢視畫面 orderscustomers 是在其他位置的各自檢視畫面檔案中定義。

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 匯總函式 (例如 COUNTSUMAVGMINMAX) 的欄位。任何根據其他度量值計算得出的欄位,也屬於度量。您可以使用指標篩選已分組的值。舉例來說,銷售檢視畫面的指標可能包括已售商品總數 (計數)、總銷售價格 (總和) 和平均銷售價格 (平均值)。

欄位的行為和預期值取決於其宣告的類型,例如 stringnumbertime。度量值的類型包括匯總函式,例如 sumpercent_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_pdte_flights_pdt,Looker IDE 就無法修正錯誤,因此您必須確定要使用哪個版本。一般來說,建議您在命名 LookML 物件時使用小寫字母。

IDE 資料夾名稱也區分大小寫。每次指定檔案路徑時,都必須使用與資料夾名稱相同的大小寫字母。舉例來說,如果您有一個名為 Views 的資料夾,就必須在 include 參數中使用相同的大小寫字母。同樣地,如果大小寫不符合專案中現有資料夾,Looker IDE 會顯示錯誤:

Looker IDE 會顯示警告,指出包含項目不符合任何檔案。