包含在訊息裏

用量


include: "/views/airports.view"
階層
include

- 或 -

include

- 或 -

include
預設值

接受
包含檔案名稱或模式的字串

定義

include 參數會指定模型、檢視區塊或「探索」可用的 LookML 檔案。如要在其他檔案中使用或參照 LookML 檔案,必須使用 include 參數新增該檔案。

您可以在模型檔案中使用 include 參數、查看檔案和探索檔案。視情況而定,include 參數可參照不同類型的 LookML 檔案。

在模型檔案中,您可以使用 include 參照下列檔案類型:

在檢視畫面檔案中,您可以使用 include 參照下列檔案類型:

在探索檔案中,您可以使用 include 參照下列檔案類型:

您也可以使用 include 從其他專案匯入檔案。如要瞭解如何納入其他專案的檔案,請參閱「從其他專案匯入檔案」說明文件頁面。

使用 include 時,請注意下列事項:

  • 對於非 LookML 檔案類型 (例如說明文件資料檔案),您不需要使用 include
  • 檔案的併入作業是全有或全無,因此所有併檔案的資訊都會新增至併檔案。
  • 您可以在檔案中使用多個 include 參數。
  • 您可以使用 * 萬用字元,指出具有策略性命名慣例或相同副檔名的檔案。舉例來說,您可以使用 "*base.dashboard" 同時比對及納入 "database.dashboard""crunchbase.dashboard"。您可以使用 "*.dashboard" 來表示所有副檔名為 .dashboard 的檔案。
  • 您可以使用 * 萬用字元,納入目錄中的所有檔案。舉例來說,您可以指定 include: "/views/users/*.view",將 views/users/ 目錄中的所有檢視檔案納入其中。如要進一步瞭解如何搭配使用萬用字元與 IDE 資料夾,請參閱 IDE 資料夾說明文件頁面。

在模型檔案中使用 include

您可以在模型檔案中使用 include 參數,納入檢視區塊和資訊主頁探索

包括模型中的檢視區塊和資訊主頁

在模型檔案中使用 include 參數,指定可供該模型使用的資訊主頁和檢視畫面檔案。如要在模型中使用或參照 LookML 檔案,請務必使用 include 參數新增檔案。

include 參數中,檢視檔案使用 .view 副檔名,資訊主頁則使用 .dashboard 副檔名。你可以省略這些副檔名的 .lkml.lookml 部分。

您可以使用 * 萬用字元,指出具有策略性命名慣例或相同副檔名的檔案。您也可以搭配使用 * 萬用字元和目錄路徑來指定多個檔案,詳情請參閱 include 參數頁面的「萬用字元範例」一節。

舉例來說,您可以在模型檔案中使用這些 include 參數:

include: "/**/*.dashboard"
include: "/*/*base.view.lkml"
include: "//e_commerce/views/*.view.lkml"

這些參數包括下列檔案:

  • 專案中任何目錄中的所有資訊主頁檔案
  • 專案任何直接子目錄中,結尾為 base.view.lkml 的任何檢視區塊檔案,例如 /views/database.view.lkml/public/crunchbase.view.lkml
  • 匯入專案/views/ 目錄中,所有名為 e_commerce 的檢視畫面檔案

如果專案有大量檢視畫面檔案,或專案使用持續衍生資料表 (PDT),請避免在模型中納入所有檢視畫面檔案。請改為加入個別檢視畫面檔案,如下所示。以下範例說明如何在專案中加入個別檢視畫面檔案和所有資訊主頁:

include: "/views/order.view"
include: "/views/user.view"
include: "/**/*.dashboard"

在模型中加入模型

您無法加入其他專案的模型檔案。如要跨專案重複使用、調整擴充探索,您可以在匯入的專案中建立獨立的探索檔案,然後將該探索檔案納入其他專案。詳情請參閱「在模型中加入探索」。

在模型中加入探索

通常會在模型檔案中定義探索。不過,有時您需要衍生資料表的獨立探索檔案,或是擴充調整跨模型的探索。

如果您有獨立的探索檔案,則需要在模型檔案中使用 include 參數來納入該檔案。在 include 參數中,使用探索檔案的副檔名 .explore.lkml

以下範例是包含兩個 Explore 的模型檔案:

  • aircraft_new「探索」是在 explores 資料夾中名為 aircraft_new.explore.lkml 的檔案中定義。由於該探索是在自己的檔案中定義,因此您必須在 include 參數中指定探索檔案的路徑。
  • accidents 探索,定義於模型檔案中。由於這是模型檔案本身定義的項目,因此您不需要在模型中使用 include 參數。不過,您需要 include,才能查看 accidents 探索所依據的檢視畫面。
connection: "faa"

include: "/explores/aircraft_new.explore.lkml"
include: "/views/accidents.view"

explore: accidents {
  view_name: accidents
  from: accidents
}

在模型中加入資料測試

資料測試可以直接在模型檔案或檢視檔案中定義。不過,如要在專案中的多個位置重複使用資料測試,也可以建立個別的資料測試檔案

如果您有獨立的資料測試檔案,則需要在模型檔案或檢視檔案中使用 include 參數,才能執行資料測試。在 include 參數中,使用 .lkml 副檔名做為資料測試檔案。

舉例來說,以下是模型檔案的摘錄內容,其中包含資料測試檔案:

connection: "faa"

include: "/explores/aircraft_new.explore.lkml"
include: "/views/accidents.view"
include: "/tests/data_tests.lkml"

. . .

將資料測試檔案納入模型檔案後,即可執行資料測試,確認資料測試是否正常運作,以及模型邏輯是否通過測試。

您也可以在檢視檔案中加入資料測試檔案,詳情請參閱本頁的「在檢視畫面中加入資料測試」一節。

在檢視區塊檔案中使用 include

在大部分情況下,您不需要在檢視區塊檔案中使用 include。不過,在某些情況下,您確實會想在檢視檔案中加入檔案:

包括在檢視畫面中檢視 (用於擴充或調整)

您也可以在另一個檢視區塊檔案中加入檢視區塊檔案,藉此擴充調整所含檢視區塊。

舉例來說,以下是 marketing_order_fields 檢視區塊檔案,其中包含 basic_order_fields 檢視區塊檔案,然後擴充該檔案:

include: "/views/basic_order_fields.view"
view: marketing_order_fields {
  extends: [basic_order_fields]  # The file that contains the basic_order_fields
}                                # view should be included

在檢視畫面中加入探索

在大多數情況下,您不需要在檢視畫面中加入「探索」。不過,原生衍生資料表是特例,因為這類資料表是在自有檢視表檔案中定義,且該檔案具有 explore_source 參數。您可以使用 explore_source 參數指定探索,並定義原生衍生資料表的所需資料欄和其他所需特徵。探索通常是在模型檔案中定義,但如果是原生衍生資料表,使用 .explore.lkml 副檔名為探索建立個別檔案可能會更清楚。如果您建立個別的探索檔案,則必須將探索檔案納入原生衍生資料表檢視檔案。

以下是在原生衍生資料表檢視檔案中使用 include 指向「探索」檔案的範例:

include: "/explores/order_items.explore.lkml"

view: user_order_facts {
  derived_table: {
    explore_source: order_items {
      column: user_id {field: order_items.user_id}
      column: lifetime_number_of_orders {field: order_items.order_count}
      column: lifetime_customer_value {field: order_items.total_revenue}
      derived_column: average_customer_order {
        sql:  lifetime_customer_value / lifetime_number_of_orders ;;
      }
    }
  }
  dimension: user_id {hidden: yes}
  dimension: lifetime_number_of_orders {type: number}
  dimension: lifetime_customer_value {type: number}
  dimension: average_customer_order {type: number}
}

如要進一步瞭解原生衍生資料表的探索檔案,請參閱使用 include 陳述式啟用參照欄位的說明文件。

在檢視區塊中加入資料測試

資料測試可以直接在模型檔案或檢視檔案中定義。不過,如要在專案中的多個位置重複使用資料測試,也可以建立個別的資料測試檔案

如果您有獨立的資料測試檔案,則需要在模型檔案或檢視檔案中使用 include 參數,才能執行資料測試。在 include 參數中,使用 .lkml 副檔名做為資料測試檔案。

舉例來說,以下是包含資料測試檔案的檢視區塊檔案摘錄內容:

include: "/tests/data_tests.lkml"

view: orders {
  sql_table_name: looker.orders ;;

  dimension: id {
    primary_key: yes
    type: number
    sql: ${TABLE}.id ;;
  }

. . .

將資料測試檔案納入檢視檔案後,即可執行資料測試,確認資料測試是否正常運作,以及檢視的邏輯是否通過測試。

您也可以在模型檔案中加入資料測試檔案,如本頁「在模型中加入資料測試」一節所述。

在「探索」檔案中使用 include

通常會在模型檔案中定義探索。不過,有時您需要衍生資料表的獨立探索檔案,或是擴充調整跨模型的探索。

如果您有獨立的探索檔案,可以使用 include 參數納入檢視區塊或其他探索

包括「探索」中的檢視畫面

如果您有獨立的探索檔案,則必須納入探索使用的所有檢視畫面。請使用 .view 檔案副檔名查看檔案。您可以省略副檔名的 .lkml 部分。以下是範例「探索」檔案,其中包含使用的兩個檢視畫面:

include: "/views/aircraft.view"
include: "/views/aircraft_types.view"

explore: aircraft {
  join: aircraft_types {
    type: left_outer
    sql_on: ${aircraft.aircraft_type_id} = ${aircraft_types.aircraft_type_id} ;;
    relationship: many_to_one
  }
}

在探索中加入探索

您可以在一個探索檔案中加入另一個探索檔案,例如擴充調整探索時。使用 include 參數並新增副檔名 .explore.lkml

以下是探索檔案範例,其中包含另一個探索檔案,然後擴充探索:

include: "/explores/base.explore.lkml"

explore: aircraft_information {
  extends: [aircraft]

搭配 IDE 資料夾使用 include

將 LookML 專案檔案整理到資料夾中時,您需要在 include 陳述式中提供檔案路徑。

您可以在 include 陳述式中使用絕對或相對路徑 (如需範例,請參閱本頁的「路徑語法」一節),並使用萬用字元 *** 一次納入多個檔案 (如需範例,請參閱本頁的「萬用字元範例」一節)。

舉例來說,假設您專案中的目錄結構如下,且 views 資料夾的頂層內容如下:

  • orders 資料夾,內含檢視畫面檔案 order_factsorder_items
  • users 資料夾,內含檢視區塊檔案 user_with_age_extensionusersusers_extended
  • 個別檢視檔案 distribution_centerseventsinventory_itemsproducts

範例目錄結構,包含「探索」、「模型」和「檢視畫面」的資料夾。

下列陳述式會包含 products 檢視區塊、order_facts 檢視區塊,以及 /views/users/ 目錄中的所有檢視區塊:

include: "/views/products.view"
include: "/views/orders/order_facts.view"
include: "/views/users/*.view"

變更檔案路徑時,請務必更新專案中的所有 include 陳述式,以符合檔案的新路徑。如果舊的 include 陳述式不再參照現有檔案或檔案路徑,您可能會看到 LookML 驗證警告。此外,如果參照的物件檔案路徑已變更,您可能會看到 LookML 驗證錯誤,因為系統找不到這些物件。

路徑語法

以下列舉幾個可用的檔案納入語法範例:

語法 說明
PATH 從目前檔案位置開始的相對路徑。
./PATH 從目前檔案位置開始的相對路徑。這個範例指向的檔案與上一個範例相同:PATH
../PATH 從目前檔案的上層目錄開始的相對路徑。
/PATH 從目前專案的根目錄開始的絕對路徑。
//PROJECT_NAME/PATH PROJECT_NAME 命名的匯入專案根目錄開始的絕對路徑。

使用萬用字元

如果專案只需要管理幾個檔案,您可以像這樣在各自的 include 參數中列出每個檔案:

include: "/dashboards/user_info.dashboard"
include: "/views/users.view"

如果專案包含許多要納入的檔案,您可以使用萬用字元一次納入多個檔案,減少需要編寫的 include 參數數量:

在開發期間,如果需要暫時修正 LookML 驗證警告,使用萬用字元可能特別有幫助,尤其是在將現有專案整理到 IDE 資料夾時。不過,在 include 陳述式中使用萬用字元時,請注意下列事項:

搭配 IDE 資料夾使用萬用字元

您可以搭配使用萬用字元和 IDE 資料夾,在 LookML 專案中納入特定目錄的檔案。

舉例來說,這個 include 陳述式會參照 LookML 專案 /explores/ 目錄中的所有檔案:

include: "/explores/*"

使用萬用字元指定特定檔案類型

您可以使用萬用字元參照特定類型的所有檔案。舉例來說,這項 include 陳述式會參照 LookML 專案中的所有「探索」檔案:

include: "/**/*.explore.lkml"

如需 LookML 檔案類型及其副檔名的清單,請參閱「瞭解 LookML 專案檔案」說明文件頁面的「LookML 專案中的檔案類型」一節。

使用萬用字元搭配策略性命名模式

您也可以搭配策略性檔案命名使用萬用字元,進一步最佳化 include 陳述式。舉例來說,請勿使用下列檔案名稱:

/views/apple.view
/views/banana.view
/views/cherry.view
/views/orange.view
/views/celery.view

您可以在檔案名稱中加入策略性前置字串或後置字串,例如:

/views/apple.fruit.view
/views/banana.fruit.view
/views/cherry.fruit.view
/views/orange.fruit.view
/views/celery.vegetable.view

然後使用萬用字元,只參照.fruit後置字串,方法是使用這個 include

include: "/views/*.fruit.view"

萬用字元範例

以下是使用萬用字元的範例 (請注意,您可以將 PATH 換成上表中的路徑語法):

語法 說明
PATH/*.view PATH 中比對結尾為 .view 的檔案。
PATH/*.view.lkml PATH 中比對結尾為 .view.lkml 的檔案。

由於檢視檔案的副檔名為 .view.lkml,因此這個範例指定的檔案與上一個範例相同,都是 PATH/*.view。IDE 中不會顯示 .lkml 部分,include 陳述式也不需要 .lkml 部分。不過,您可以使用萬用字元來運用檔案副檔名的這個常見部分。如需專案檔案副檔名清單,請參閱「LookML 專案檔案」說明文件頁面。
PATH/*.lkml PATH 中比對結尾為 .lkml 的檔案。

請注意,有幾種檔案類型共用 .lkml 做為副檔名的最後一部分,例如 .view.lkml.model.lkml。IDE 中不會顯示 .lkml 部分,include 陳述式也不需要 .lkml 部分。不過,您可以使用萬用字元來運用檔案副檔名的這個常見部分。如需專案檔案副檔名清單,請參閱「LookML 專案檔案」說明文件頁面。
PATH/myfile.* PATH 中,萬用字元會比對名為 myfile 的檔案,以及任何副檔名類型。
PATH/myfile.*.lkml PATH 中,比對名為 myfile 且副檔名為 .lkml 的檔案。
PATH/my*file.view 萬用字元比對:開頭為 my,結尾為 file.view 的檔案 (位於 PATH)。
PATH/my*fi*le.view 萬用字元會比對以 my 開頭的檔案,後面接著一些字元、fi、一些額外字元,並以 le.view 結尾 (位於 PATH)。
PATH/*/myfile.lkml 資料夾名稱萬用字元 (僅符合單一層級的巢狀結構)。比對 PATH 任何直接子目錄中的所有 myfile.lkml 檔案。
PATH/**/my_file.view 遞迴萬用字元比對 (比對任意數量的巢狀結構),適用於 PATH 和所有子目錄中名為 my_file.view.lkml 的所有檔案。
PATH/**/*.view 遞迴萬用字元,比對 PATH 子目錄中結尾為 .view.lkml 的所有檔案。
PATH/**/my_folder/myfile.view 遞迴萬用字元,比對 PATH 底下任何深度的子路徑 /my_folder/myfile.view

範例

如需在模型檔案檢視檔案探索檔案中使用 include 的範例,請參閱前幾節。

注意事項

納入所有檢視檔案可能會影響 LookML 驗證效能

如果專案有大量檢視檔案,且您將所有檔案納入模型檔案,可能會影響 LookML 驗證器的效能。由於 LookML 驗證器會檢查模型中包含的所有檢視檔案,因此您應只在模型檔案的 include 參數中納入必要的檢視檔案。

請考慮為檢視區塊檔案採用策略性命名慣例,以便在模型中輕鬆納入檢視區塊群組 (請參閱本頁「搭配策略性命名模式使用萬用字元」一節中的範例)。或者,您也可以使用 IDE 資料夾,將檢視畫面整理到資料夾中。接著,您可以使用 * 萬用字元,將所有檢視畫面納入單一資料夾,而不必將所有檢視畫面納入專案。詳情請參閱「使用 include 和 IDE 資料夾」一節。

包括所有檢視檔案可能會導致資料庫結構定義雜亂

如果專案使用永久衍生資料表 (PDT),您可以在模型檔案中加入 PDT 的檢視檔案。不過,每個包含 PDT 檢視檔案的模型檔案,都會在資料庫的暫存結構定義中建立 PDT 的副本。如果您有多個模型檔案,且模型檔案中包含所有檢視檔案,可能會在資料庫暫存架構中加入不必要的雜亂內容。因此,請務必只在需要 PDT 的模型檔案中加入 PDT 的檢視檔案。