用量
层次结构
include - 或 - include - 或 - include |
默认值
无接受
包含文件名或格式的字符串
|
定义
include
参数指定可供模型、视图或探索使用的 LookML 文件。如果您想在另一个文件中使用或引用 LookML 文件,必须使用 include
参数添加该文件。
您可以在模型文件、视图文件和探索文件中使用 include
参数。include
参数可以引用不同类型的 LookML 文件,具体取决于上下文。
在模型文件中,您可以使用 include
进行引用:
在视图文件中,您可以使用 include
进行引用:
在“探索”文件中,您可以使用 include
进行引用:
您还可以使用 include
导入其他项目中的文件。如需了解如何包含来自其他项目的文件,请参阅从其他项目导入文件文档页面。如需从本地 LookML 项目导入文件,您必须启用本地项目导入实验室功能。
使用 include
时,请注意以下事项:
- 对于非 LookML 文件类型(例如文档文件或数据文件),无需使用
include
。 - 添加文件要么一刀切,要么将所有文件信息添加到包含文件中。
- 您可以在一个文件中使用多个
include
参数。 - 您可以使用
*
通配符指示具有策略命名惯例或扩展名相同的文件。例如,您可以使用"*base.dashboard"
来匹配"database.dashboard"
和"crunchbase.dashboard"
。您可以使用"*.dashboard"
表示扩展名为.dashboard
的所有文件。 - 您可以使用
*
通配符将目录中的所有文件都包括在内。例如,您可以通过指定include: "/views/users/*.view"
来添加views/users/
目录中的所有视图文件。如需详细了解如何将通配符与 IDE 文件夹搭配使用,请参阅 IDE 文件夹文档页面。
实用提示:使用通配符时,您可以将鼠标悬停在文件中的行号图标上,或者点击
include
语句并查找快速帮助,从而查看要将哪些文件包含在内:
Handy Tip:您可以从 Looker IDE 中文件的三点状菜单中选择复制文件路径来复制文件的路径:
在模型文件中使用 include
您可以在模型文件中使用 include
参数添加视图和信息中心或探索。
在模型中添加视图和信息中心
请在模型文件中使用 include
参数指定信息中心以及查看该模型可用的文件。如果您想在模型中使用或引用 LookML 文件,必须使用 include
参数添加该文件。
在 include
参数中,对视图文件使用扩展程序 .view
,对信息中心使用扩展程序 .dashboard
。您可以省略这些附加信息的 .lkml
和 .lookml
部分。
您可以使用 *
通配符指示具有策略命名惯例或扩展名相同的文件。您还可以将 *
通配符与目录路径结合使用来指定多个文件,如 IDE 文件夹文档页面的通配符示例部分所述。
例如,您可以在模型文件中使用以下 include
参数:
include: "/**/*.dashboard"
include: "/*/*base.view.lkml"
include: "//e_commerce/views/*.view.lkml"
这些参数包括以下文件:
- 项目任何目录中的所有信息中心文件
- 项目的任何直接子目录(例如
/views/database.view.lkml
或/public/crunchbase.view.lkml
)中以base.view.lkml
结尾的任何视图文件 - 导入的项目的
/views/
目录中名为e_commerce
的所有视图文件
如果您的项目有大量视图文件或您的项目使用了永久性派生表 (PDT),则您应避免在模型中包含所有视图文件。而应添加如下所示的单个视图文件。以下是在项目中添加各个视图文件和所有信息中心的示例:
include: "/views/order.view"
include: "/views/user.view"
include: "/**/*.dashboard"
在模型中添加模型
不能包含来自其他项目的模型文件。相反,为了跨项目重复使用、优化或扩展“探索”,您可以在导入的项目中创建一个单独的“探索”文件,然后将“探索”文件添加到其他项目中。如需了解详情,请参阅在模型中添加探索。
在模型中添加探索
探索文件会监听其所属的模型的连接。当您将模型添加到所配置模型的探索不同于“探索”文件的父模型时,请考虑这一点。如果包含模型的连接架构与父模型连接的架构不同,则可能会导致查询错误。
探索通常在模型文件中定义。不过,有时您需要为派生表格使用单独的探索文件,或者需要扩展或优化“跨模型探索”。
如果您有单独的探索文件,则需要在模型文件中使用 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
探索通常在模型文件中定义。不过,有时您需要为派生表格使用单独的探索文件,或者需要扩展或优化“跨模型探索”。
如果您有单独的探索文件,则可以使用 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
的示例,请参阅前面的部分。
注意事项
使用通配符
对于只需要管理少数文件的项目,您可以在每个文件的 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 项目文件文档的项目文件类型部分。
Looker 不建议使用通配符来包含项目中的所有视图文件,因为包含所有视图文件可能会影响 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
然后,使用此 include
通过通配符仅引用 .fruit
后缀:
include: "/views/*.fruit.view"
包含所有视图文件可能会影响 LookML 验证的性能
如果您的项目有大量视图文件,并且您将它们全部添加到模型文件中,这可能会影响 LookML 验证器的性能。由于 LookML 验证器会检查模型中包含的所有视图文件,因此您应该仅在模型文件的 include
参数中包含所需的视图文件。
考虑为视图文件使用策略命名惯例,以便在模型中轻松包含视图组(请参阅本页面将通配符与策略命名模式结合使用中的示例)。或者,您也可以使用 IDE 文件夹将视图整理到文件夹中。然后,您可以使用 *
通配符将所有视图包含在单个文件夹中,而不是包含项目中的所有视图。如需了解相关信息,请参阅有关将 include
与 IDE 文件夹搭配使用的文档。
包含所有视图文件可能会使数据库架构变得杂乱
对于使用永久性派生表 (PDT) 的项目,您可以在模型文件中添加 PDT 的视图文件。不过,每个包含 PDT 视图文件的模型文件都会在数据库的暂存架构中创建一份 PDT 副本。如果您有多个模型文件,并在模型文件中包含所有视图文件,则可能会导致数据库暂存架构出现不必要的混乱。因此,请确保仅在需要使用 PDT 的模型文件中添加 PDT 的视图文件。