include

用量

包含"/views/airports.view"
层次结构
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 参数数量,一次减少多个文件:

如果您需要为 LookML 验证警告创建临时修复,尤其是将现有项目整理到 IDE 文件夹中时,使用通配符在开发期间尤其有用。不过,在 include 语句中使用通配符时,请注意以下几点:

在 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 的视图文件。