LookML 项目是一组 LookML 文件,用于告知 Looker 如何连接到您的数据库、如何查询数据以及如何控制界面的行为。您可以从 Looker 的开发部分或通过界面访问 LookML 项目文件,如访问 LookML 项目文件文档页面中所述。
项目文件由 Looker 开发者使用 IDE 中的文件夹整理。
LookML 项目包含至少一个模型文件和至少一个视图文件,还可能包含本页介绍的一些其他类型的文件。所有项目文件都有扩展名,但如果您未为 IDE 中的文件夹启用项目,那么这些扩展名会隐藏在 IDE 列表中。
请选择以下链接,详细了解可在 LookML 项目中使用的各种文件类型:
- 扩展名为
.model.lkml
的模型文件 - 查看扩展名为
.view.lkml
的文件 - 扩展名为
.dashboard.lookml
的信息中心文件 - 扩展名为
.topojson
、.geojson
或.json
的数据文件 - 扩展名为
.md
的文档文件 - 始终命名为
manifest.lkml
的项目清单文件 - 扩展名为
.lkml
的清单锁定文件 - 扩展名为
.strings.json
的语言区域字符串文件 - 浏览扩展名为
.explore.lkml
的文件 - 扩展名为
.lkml
的数据测试文件 - 优化扩展名为
.lkml
的文件 - 包含之前未列出的文件扩展名的其他文件
创建 LookML 项目后,您可以使用 Looker IDE 访问项目文件以及向项目添加新文件和文件夹。
模型文件
模型文件指定数据库连接以及使用该连接的一组探索。模型文件还定义了探索本身以及探索与其他视图的关系。“探索”是查询数据的起点。在 SQL 术语中,“探索”是指查询的 FROM
子句。用户在查看 Looker 的探索菜单时,会看到您在模型中定义的探索。
换言之,您可以在模型文件中定义应使用的数据表(作为包含的视图),以及在必要时应如何联接这些数据表。
如需了解如何创建 LookML 项目文件(包括模型文件),请参阅管理 LookML 文件和文件夹文档页面。
结构和常规语法
在探索的大括号 { }
中,您可以定义探索的参数。您可以使用 join
参数在模型文件中将其他视图与探索联接起来。
在以下示例中,示例模型文件中的 LookML 定义了一个名为 inventory_items
的探索及其联接视图:
connection: "thelook_events"
explore: inventory_items {
join: products {
type: left_outer
sql_on: ${inventory_items.product_id} = ${products.id} ;;
relationship: many_to_one
}
join: distribution_centers {
type: left_outer
sql_on: ${products.distribution_center_id} = ${distribution_center.id} ;;
relationship: many_to_one
}
}
此 LookML 定义会使 Inventory Item 显示在 Looker 导航的“探索”部分中,并将 products
和 distribution_centers
视图中的数据联接到 inventory_items
视图。
如需详细了解模型文件中的 LookML 结构,请参阅 LookML 术语和概念文档页面。
阅读模型参数、探索参数和联接参数文档页面,详细了解模型文件中的 LookML 参数。
查看文件
视图文件通常定义 Looker 中的单个“视图”。一个视图对应于数据库中的单个表或单个派生表。视图文件会指定要查询的表以及要在该表中添加的字段(维度和测量值),以便用户在 Looker 界面中使用这些字段创建查询。
如需了解如何创建 LookML 项目文件(包括视图文件),请参阅管理 LookML 文件和文件夹文档页面。
结构和常规语法
在每个视图的大括号中,{ }
是字段定义,通常对应于底层表中的列或 Looker 中的计算。Looker 将大多数维度归类为“维度”或“测量”。
在下面的视图文件示例中,orders.view
文件包含 id
、status
和 user_id
维度、created
维度组以及 count
测量的定义:
view: orders {
sql_table_name: demo_db.orders ;;
drill_fields: [id]
dimension: id {
primary_key: yes
type: number
sql: ${TABLE}.id ;;
}
dimension: status {
type: string
sql: ${TABLE}.status ;;
}
dimension: user_id {
type: number
# hidden: yes
sql: ${TABLE}.user_id ;;
}
dimension_group: created {
type: time
timeframes: [
raw,
time,
date,
week,
month,
quarter,
year
]
sql: ${TABLE}.created_at ;;
}
measure: count {
type: count
drill_fields: [id, users.id, users.first_name, users.last_name, order_items.count]
}
}
在 orders
视图中,这些字段的定义会显示订单探索的字段选择器中的创建日期、ID、状态、用户 ID 和数量字段。
有权访问订单探索的用户可以通过选择这些字段并进行过滤,来查询订单探索。
除了维度和测量以外,您还可以使用维度组一次创建多个基于时间的维度,或者使用过滤器字段为用户指定过滤条件。请访问查看参数文档页面,详细了解视图文件中的 LookML 参数,并访问字段参数文档页面,了解用于在 LookML 中定义维度、测量值、维度组和过滤条件字段的 LookML 参数。
信息中心文件
Looker 支持两种类型的信息中心:
- 用户定义的信息中心,可由非开发者用户创建,而无需使用 LookML。如需了解详情,请参阅创建用户定义的信息中心文档页面。
- LookML 信息中心:存储为与项目关联的有版本控制的文件。
如果您的项目包含 LookML 信息中心,则这些信息中心将在 IDE 的专用信息中心文件(扩展名为 .dashboard.lookml
)中定义。
如需详细了解 LookML 信息中心,请参阅创建 LookML 信息中心文档页面。
文档文件
借助 Looker 文档文件,您可以使用 GitHub 风格的 Markdown 撰写有关 Looker 数据模型的文档或其他备注。这有助于用户熟悉贵组织如何使用 Looker。
如需了解如何创建 LookML 项目文件(包括文档文件),请参阅管理 LookML 文件和文件夹文档页面。
在 IDE 外部查看文档
如需在 IDE 外部查看文档(您需要执行该操作以利用本页所述的导航功能),请从文档文件的查看文件操作菜单中选择查看文档选项:
您可以将结果页面的网址分发给其他用户,这样他们就无需浏览 Looker 的开发者部分即可访问该页面。
向文档添加导航结构
您可以为文档文件添加边栏,以便用户轻松查看信息的结构并在文档之间导航。
要为文档添加边栏导航,请创建一个从文档的第一行开始的导航部分。用三个短划线 (---
) 标记导航部分的开始和结束。
您可以在导航部分中使用以下参数:
navigation
您可以在文档文件中使用 navigation: true
向该文档添加导航边栏。例如,您可以将以下代码添加到 Markdown 文件的顶部:
---
navigation: true
---
此代码会向文档添加一个导航边栏,其中包含指向所有项目文档的链接。如果您在文档中仅包含 navigation: true
,则该文档的边栏会按文件名的字母顺序列出项目的所有文档。
此外,您可能会发现按字母顺序的文件名进行整理并不理想,或者有些文档可能不希望显示在导航中:
在本示例中,您可能希望按数字顺序(而非字母顺序)列出文档“文档一”“文档二”“文档二”“文档三”和“文档四”,并在导航边栏中隐藏文档。
要更改导航边栏中文档的顺序,或者仅显示边栏中的部分文档,您可以使用以下格式:
---
navigation:
- document_one
- document_two
- document_three
- document_four
---
现在,导航将仅显示您要显示的文档文件,并且它们将以更具逻辑的顺序显示:
title
默认情况下,边栏会显示文档的标题(如果文档以标题开头);如果文件中没有标题,则边栏显示文档的文件名。您可以在文档顶部添加 title
参数,以更改文档在导航边栏中的显示方式:
---
title: New Title for Users
---
除非您在文档的导航部分指定了其他 label
,否则此标题将用作所有文档的导航边栏中的链接文本。
label
如果要更改文档在导航边栏中列出的方式,可以使用 document
和 label
参数,如下所示:
---
navigation:
- document_one
- document: document_two
label: Customized Label for Document Two
- document_three
- document_four
---
label
值定义了文档在文档边栏导航中的显示方式,即使它所引用的文档有自己的 title
参数也是如此。
在文档边栏中,上面的示例如下所示:
section
如果您想将导航边栏分成几个部分,可以使用 section
参数,如下所示:
---
navigation:
- document_one
- document_two
- section: My Section Name
- document_three
- document_four
---
在此示例中,section
参数会将分节符和文本标题 My section Name 添加到边栏中。
文本标题本身不是链接;它不引用任何文档文件。
数据文件
数据文件是文件扩展名为 .json
、.topojson
或 .geojson
的 JSON 文件。
通过 map_layer
参数,您可以将 JSON 文件用作自定义地图,然后该地图可用于在 Looker 中绘制您的数据。
然后,您可以将 map_layer_name 参数与维度一起使用,以便将数据值(如“巴黎”)与自定义地图上的地理区域相关联。
您可以在 LookML IDE 中修改 JSON 文件,然后选择保存。
对于调试,您可以通过选择文件名旁边的查看文件操作菜单来选择查看原始格式,以查看原始格式的文件。如果您有正确的扩展程序可以在浏览器中查看 JSON,那么您还可以选择以 Parsed 格式查看文件。
如需了解如何将 JSON 文件上传到 LookML 项目,请参阅管理 LookML 文件和文件夹文档页面。
项目清单文件
您的项目可能包含项目清单文件,该文件用于以下任务:
每个项目只能有一个清单文件,且其必须命名为 manifest.lkml
,并位于项目目录结构的根目录下以及 Git 代码库中。
如需了解如何创建 LookML 项目文件(包括项目清单文件),请参阅管理 LookML 文件和文件夹文档页面。
清单锁定文件
将远程依赖项添加到项目清单文件时,系统会自动创建清单锁定文件。Looker 使用清单锁定文件来跟踪清单文件中指定的远程项目的版本。清单锁定文件列在 Looker IDE 的文件浏览器面板中,文件名为 manifest_lock.lkml
。
Looker 开发者无需创建或修改清单锁定文件,因为锁定文件由 Looker 自动管理。
如需了解详情,请参阅从其他项目导入文件文档页面。
语言区域字符串文件
如果要将数据模型本地化,您需要为要本地化的每个语言区域创建语言区域字符串文件,包括您的默认语言区域(例如,美国通常为英语)。
语言区域字符串文件会列出您要在模型中本地化的每个标签和说明的键值对。每个语言区域的字符串文件应为每个标签或说明提供该语言区域的翻译。如需详细了解如何创建语言区域字符串文件,请参阅将 LookML 模型本地化文档页面。
如需了解如何创建 LookML 项目文件(包括语言区域字符串文件),请参阅管理 LookML 文件和文件夹文档页面。
浏览文件
“探索”是用户可以查询的视图。探索是查询的起点,用 SQL 术语来说,就是 SQL 语句中的 FROM
。请参阅在 Looker 中查看探索并与之互动文档页面,了解用户如何与“探索”互动以查询您的数据。
探索通常在模型文件中定义。但是,有时您需要为派生表使用单独的“探索”文件,或者跨模型扩展或优化“探索”部分。
如需了解如何创建 LookML 项目文件(包括“探索”文件),请参阅管理 LookML 文件和文件夹文档页面。
数据测试文件
您的项目可能包含用于验证 LookML 模型的逻辑的数据测试文件。数据测试可包含在模型文件或视图文件中,但如果您的开发者想要在多个不同的模型中使用相同的数据测试,将数据测试保存在各自的专用文件中可能会有所帮助。
如需了解如何创建 LookML 项目文件(包括数据测试文件),请参阅管理 LookML 文件和文件夹文档页面。
优化文件
您的项目可能包含用于 LookML 优化的文件。借助 LookML 优化,您可以调整现有视图或探索,而无需修改包含该视图或探索的 LookML 文件。LookML 优化可包含在模型、视图或探索文件中,也可包含在各自的专用文件中。
如需了解如何创建 LookML 项目文件(包括优化文件),请参阅管理 LookML 文件和文件夹文档页面。
其他文件
许多 LookML 元素可存储在项目中的不同文件中,也可存储在各自的专属文件中。例如,数据测试可以存储在模型文件、视图文件或各自的专用 .lkml
文件中。