LookML 術語和概念

本頁面定義下列核心詞彙和概念,您在 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 元素組成。

如圖所示,以下是 LookML 專案中較常見的檔案類型:

  • 模型包含要使用的資料表,以及這些資料表的彙整方式。您通常會在這裡定義模型、模型中的探索和模型中的聯結。
  • 檢視包含如何存取或計算每個資料表 (或多個已聯結的資料表) 中資訊的相關資訊。您通常會在這裡定義檢視畫面、維度和指標,以及欄位集。
  • 探索通常是在模型檔案中定義,但有時您需要衍生資料表的獨立探索檔案,或是擴充調整跨模型的探索。
  • 資訊清單檔案可包含使用從其他專案匯入檔案的操作說明,或專案的本地化設定。

除了模型、檢視畫面、探索和資訊清單檔案,專案還可包含與內建資訊主頁、說明文件、本地化等相關的其他類型檔案。如要進一步瞭解這些檔案類型,以及 LookML 專案中可能包含的其他檔案類型,請參閱 LookML 專案檔案說明文件頁面。

這些檔案共同構成一個專案。如果您使用 Git 進行版本控管,每個專案通常會備份到專屬的 Git 存放區。

LookML 專案和檔案的來源為何?

建立 LookML 檔案最常見的方式是從資料庫產生 LookML 專案。您也可以建立空白專案,然後手動建立 LookML 檔案。

從資料庫產生新專案時,Looker 會建立一組基準檔案,您可做為範本來建構專案:

  • 多個檢視檔案,資料庫中的每個資料表各一個檔案。
  • 一個模型檔案。模型檔案會為每個檢視區塊宣告 Explore。每項探索宣告都包含 join 邏輯,可加入 Looker 判斷與探索相關的任何檢視區塊。

您可以在這裡移除不必要的檢視畫面和探索,並新增自訂維度和指標,藉此自訂專案。

主要 LookML 結構

專案圖表所示,專案通常包含一或多個模型檔案,其中含有定義模型及其探索和聯結的參數。此外,專案通常包含一或多個檢視畫面檔案,每個檔案都含有定義該檢視畫面及其欄位 (包括維度和指標) 和欄位集的參數。專案也可以包含專案資訊清單檔案,方便您設定專案層級設定。本節將說明這些主要結構。

模型

模型是資料庫的自訂入口,專為特定業務使用者提供直覺式的資料探索體驗。單一 LookML 專案中,同一個資料庫連線可以有多個模型。每個模型可向不同使用者公開不同資料。舉例來說,銷售人員和公司主管需要的資料不同,因此您可能會開發兩個模型,為每位使用者提供合適的資料庫檢視畫面。

模型會指定單一資料庫的連線。開發人員也會在模型檔案中定義模型的「探索」。根據預設,探索會依據定義探索的模型名稱進行整理。使用者會在「探索」選單中看到模型。

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

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

查看

檢視畫面宣告會定義欄位 (維度或指標) 清單,以及這些欄位與基礎資料表或衍生資料表的連結。在 LookML 中,檢視區塊通常會參照基礎資料庫資料表,但也可以代表衍生資料表

檢視畫面可以加入其他檢視畫面。檢視區塊之間的關係通常會在模型檔案中定義為 Explore 宣告的一部分。

根據預設,在「探索」資料表的維度和指標名稱開頭,會顯示檢視區塊名稱。這個命名慣例可清楚指出欄位所屬的檢視畫面。在以下範例中,檢視區塊名稱「Orders」和「Users」會列在資料表中的欄位名稱之前:

範例查詢的資料表,其中選取了「訂單建立日期」、「使用者 ID」和「訂單數」欄位。

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

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

探索

探索是使用者可查詢的檢視畫面。您可以將「探索」視為查詢的起點,或以 SQL 術語來說,視為 SQL 陳述式中的 FROM。並非所有觀看次數都是探索,因為並非所有觀看次數都描述感興趣的實體。舉例來說,如果「州」檢視畫面與州名查閱表相符,則不需要使用「探索」,因為業務使用者永遠不需要直接查詢該檢視畫面。另一方面,商業使用者可能想查詢「訂單」檢視畫面,因此定義「訂單」的「探索」功能是合理的做法。如要瞭解使用者如何與探索資料互動來查詢資料,請參閱「在 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 中,欄位會列於「探索」頁面左側的欄位挑選器中。您可以在欄位挑選器中展開檢視畫面,顯示可從該檢視畫面查詢的欄位清單。

按照慣例,欄位會宣告為所屬檢視區塊的一部分,並儲存在檢視區塊檔案中。以下範例顯示多個維度和指標宣告。請注意,我們使用替代運算子 ($) 參照欄位,而不使用完整範圍的 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_pdte_flights_pdt,Looker IDE 就無法修正,因此您必須確定要使用哪個版本。一般來說,命名 LookML 物件時,建議使用小寫字母。

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

Looker IDE 會顯示警告,指出 include 與任何檔案都不相符。