用法
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 参数来包含视图和信息中心或 Explore。
在模型中包含视图和信息中心
使用模型文件中的 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 - 导入的项目(名为
e_commerce)的/views/目录中的所有视图文件
如果您的项目包含大量视图文件,或者您的项目使用持久性派生表 (PDT),则应避免在模型中包含所有视图文件。而是应包含如下所示的各个视图文件。以下示例展示了如何包含单个视图文件和项目中的所有信息中心:
include: "/views/order.view"
include: "/views/user.view"
include: "/**/*.dashboard"
在模型中包含模型
您无法包含其他项目中的模型文件。不过,为了在多个项目中重复使用、优化或扩展探索,您可以在导入的项目中创建一个单独的探索文件,然后将该探索文件包含在其他项目中。如需了解详情,请参阅在模型中添加 Explore。
在模型中添加探索
Explore 通常在模型文件中定义。不过,有时您需要为派生表单独创建一个探索文件,或者跨模型扩展或优化探索。
如果您确实有单独的“探索”文件,则需要在模型文件中使用 include 参数来包含该文件。在 include 参数中,使用扩展名 .explore.lkml 表示探索文件。
以下示例是一个包含两个探索的模型文件:
aircraft_new探索,在explores文件夹中名为aircraft_new.explore.lkml的自有文件中定义。由于该探索是在自己的文件中定义的,因此您必须在include参数中指定探索文件的路径。- 在模型文件中定义的
accidents探索。由于它是在模型文件中定义的,因此您无需在模型中使用include参数。不过,您确实需要为accidents探索所基于的视图提供include。
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。不过,在某些情况下,您确实需要将文件包含在视图文件中:
在视图中包含视图(用于扩展或优化)
您还可以将一个视图文件包含在另一个视图文件中,以扩展或优化所包含的视图。
例如,以下是包含 basic_order_fields 视图文件并对其进行扩展的 marketing_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
Explore 通常在模型文件中定义。不过,有时您需要为派生表单独创建一个探索文件,或者跨模型扩展或优化探索。
如果您有单独的“探索”文件,可以使用 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]
将 include 与 IDE 文件夹搭配使用
当您将 LookML 项目文件整理到文件夹中时,需要在 include 语句中提供文件的路径。
您可以在 include 语句中使用绝对路径或相对路径(如需查看示例,请参阅本页面的路径语法部分),还可以使用通配符 * 和 ** 一次性包含多个文件(如需查看示例,请参阅本页面的通配符示例部分)。
例如,假设您的项目中有以下目录结构,其中 views 文件夹的顶级内容如下:
- 包含视图文件
order_facts和order_items的orders文件夹 users文件夹,其中包含视图文件user_with_age_extension、users和users_extended- 个人视图文件
distribution_centers、events、inventory_items和products

以下语句将包含 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 参数数量:
- 将通配符与 IDE 文件夹搭配使用,以包含项目特定目录中的文件。
- 将通配符与文件扩展名搭配使用,以添加特定文件类型的文件。
- 将通配符与策略性文件名搭配使用,以包含文件名中带有特定前缀或后缀的文件。
在开发过程中,当您需要临时修复 LookML 验证警告时,使用通配符可能特别有用,尤其是在将现有项目整理到 IDE 文件夹中时。不过,在 include 语句中使用通配符时,请考虑以下事项:
- Looker 不建议使用通配符来包含项目中的所有视图文件,因为包含所有视图文件可能会影响 LookML 验证的性能,还可能会使数据库架构变得杂乱无章。
- 如果项目包含多个模型文件,Looker 不支持使用通配符来包含项目中的所有文件,因为模型文件不能包含在其他模型文件中。
将通配符与 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 相同。.lkml 部分不会显示在 IDE 中,include 语句也不需要 .lkml 部分。不过,您可以使用通配符来利用文件扩展名的这一共同部分。如需查看项目文件扩展名列表,请参阅 LookML 项目文件文档页面。 |
PATH/*.lkml |
在 PATH 中匹配以 .lkml 结尾的文件。请注意,有多种文件类型都将 .lkml 作为文件扩展名的最后一部分,例如 .view.lkml 和 .model.lkml。.lkml 部分不会显示在 IDE 中,include 语句也不需要 .lkml 部分。不过,您可以使用通配符来利用文件扩展名的这一共同部分。如需查看项目文件扩展名列表,请参阅 LookML 项目文件文档页面。 |
PATH/myfile.* |
通配符匹配 PATH 中名为 myfile 且具有任何扩展类型的文件。 |
PATH/myfile.*.lkml |
通配符匹配 PATH 中名为 myfile 且具有任意 .lkml 扩展名类型的文件。 |
PATH/my*file.view |
在 PATH 中,通配符匹配以 my 开头、以 file.view 结尾的文件。 |
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 的视图文件。