用法
view: view_name {
dimension: field_name {
link: {
label: "desired label name"
url: "desired_url"
icon_url: "url_of_an_image_file"
}
# Possibly more links
}
}
|
层次结构
link |
可能的字段类型
维度、度量
接受
各种参数
|
定义
link 参数支持您为维度和度量添加网页链接,方便用户直接在 Looker 中跳转至相关内容。link 参数的格式如下:
dimension: field_name {
link: {
label: "desired label name"
url: "desired_url"
icon_url: "url_of_an_image_file"
}
# Possibly more links
}
link 参数有多个子参数:
label是您希望向用户显示的链接的名称。url是您希望链接指向的网址。您可以使用 Liquid 变量使链接成为动态链接,如本页面的 将 Liquid 变量与link搭配使用部分中所述。icon_url是用户浏览器可以访问的网址,其中包含图片文件。这可让用户一目了然地了解链接将指向何处。如果不需要图标,则无需提供icon_url参数。如果需要公司徽标,可以尝试使用http://www.google.com/s2/favicons?domain=[company website of interest]模式运行 Google 搜索,以查找.ico格式的图片。
示例
一家电子商务公司希望员工能够直接通过 Looker 内容(例如显示上个月待处理订单的 Look)与仓库支持人员联系。该 Look 包含订单 ID 和与每个订单关联的客户的用户 ID。

您可以向订单 ID 维度添加链接,以便向查看该 Look 的用户提供此操作:
dimension: id {
primary_key: yes
type: number
sql: ${TABLE}.id ;;
link: {
label: "Contact Warehouse Support"
url: "mailto:warehouse@altostrat.com"
}
}
在该 Look 中,用户会在链接菜单的选项中看到与仓库支持人员联系 链接。用户可以通过点击订单 ID 字段的任何值对应的三点状菜单来访问该链接菜单。

点击链接名称会将用户带到链接的内容,在本例中,该内容是一个新标签页,其中包含一封空白电子邮件草稿,收件人是指定的电子邮件地址。
链接行为
当用户点击链接时,Looker 会在新浏览器标签页或同一标签页(或嵌入式查询的 iframe)中打开该链接:
- 绝对链接(例如
https://example.looker.com)将在新浏览器标签页中打开。 - 相对链接(例如
/dashboards/456)将在同一浏览器标签页或 iframe 中打开。打开链接后,用户可以点击浏览器中的返回 ,返回到原始查询。
用户必须拥有 explore 或 see_drill_overlay 权限才能访问链接。
将 Liquid 变量与 link 搭配使用
link 参数支持 Liquid 变量,以便在行和值级别使内容更具互动性。LookML 支持两种 Liquid 用法标记:值输入 {{ }} 标记和条件逻辑 {% %} 标记。
在这两种标记中,{{ }} 与 value 和 _filters['view_name.field_name'] Liquid 变量结合使用时,最常与 link 搭配使用。这是因为 {{ }} 标记直接在放置位置(例如网址内)输入值。
如需查看将 Liquid {{ }} 标记与 value 和 _filters['view_name.field_name'] 变量搭配使用以使内容与 link 互动的示例,请参阅本页面的示例。
链接到外部内容
例如,假设您有一个 artist_name 维度,并且希望用户能够直接在 Looker 中选择对该艺术家执行 Google 搜索。您可以使用 value Liquid 变量 将该选项添加到维度,如下所示:
dimension: artist_name {
link: {
label: "Google"
url: "http://www.google.com/search?q={{ value }}"
icon_url: "http://google.com/favicon.ico"
}
}
当用户点击艺术家姓名 字段的值对应的三点状菜单时,Looker 会显示链接 菜单,其中包含在示例 LookML 中创建的链接。该链接会打开一个新浏览器标签页,其中包含对用户所选艺术家的 Google 搜索。所选艺术家姓名会插入到 {{ value }} 所在位置的网址中。
此模式可以复制到用户浏览器可以访问的其他外部网站,例如工单管理系统、客户管理系统和其他业务相关工具,以便在 Web 应用之间轻松导航。
链接到 Looker 中的内容
除了外部网站之外,您还可以使用 link 参数将用户定向到其他相关的 Looker 探索、Look 或信息中心,以获得自定义的 下钻 体验。您还可以将相同的示例应用于 LookML html 参数中字段的链接。
首先,您需要获取要链接到的现有探索、Look 或信息中心的网址。然后,您可以将网址的特定元素(例如过滤条件值和名称)替换为包含 value 和 _filters['view_name.field_name'] 变量的 {{ }} 标记。这些变量会将用户选择的值输入到它们替换的网址元素中。内容网址的基本结构如下:
- 探索:
/explore/YOUR_MODEL_NAME/YOUR_EXPLORE_NAME?fields=view_name.field_name1,view_name.field_name2... - Look:
/looks/YOUR_LOOK_NUMBER- 您可以通过从 Look 页面复制浏览器网址,获取现有 Look 的网址。
- Look 过滤条件将以
f[view_name.field_name]的形式显示在网址中。如需查看示例,请参阅将现有过滤条件值传递给链接的内容部分。
用户定义的信息中心:
/dashboards/YOUR_DASHBOARD_NUMBER?FILTER_NAME_1=VALUE&FILTER_NAME_2=VALUE- 您可以通过从信息中心页面复制浏览器网址,获取现有信息中心的网址。
LookML 信息中心:
/dashboards/YOUR_MODEL::YOUR_DASHBOARD- 您可以通过从信息中心页面复制浏览器网址,获取现有 LookML 信息中心的网址。
用户定义的信息中心和 LookML 信息中心的信息中心过滤条件将以 filter_name 的形式显示在网址中,其中 filter_name 是分配给信息中心上放置的过滤条件的名称。如需查看示例,请参阅将现有过滤条件值传递给链接的内容部分。
网址的元素(例如过滤条件值和名称)使用 特殊字符进行网址编码,例如 ? 表示查询字符串的开头,& 用于分隔元素,%20 表示空格。如需查看示例,请参阅其他比较运算符的网址编码部分。
获得要链接到的内容的网址后,您可以使用 Liquid 将字段的值插入到网址的任何元素中,方法是使用 value 或 _filters['view_name.field_name'] 变量和 {{ }} 标记。如需详细了解查询网址的各个部分,请参阅使用网址和查询参数 Looker 社区帖子。
示例:链接到相关探索
我们有一个名为城市 的维度。我们希望用户能够访问另一个现有探索,其中包含城市指标和城市 过滤条件。我们希望链接的探索按用户选择的城市进行过滤。
为此,请执行以下操作:
- 获取要下钻到的现有探索的网址。
- 向城市 维度添加
link参数:
dimension: city {
type: string
sql: ${TABLE}.city ;;
link: {
label: "City Metrics Explore"
url: "/explore/ecommerce_model/order_items_explore?fields=users.city,orders.count,users.count&f[users.city]=&sorts=orders.count+desc&limit=500"
}
}
在此示例中,网址已缩短为 limit=500,这会将探索结果限制为 500 行,为清晰起见。您可以根据需要添加网址的其余部分,这些部分通常包含可视化设置的网址编码。
- 在您想要将值插入到网址的位置插入 Liquid
{{ value }}标记和变量。在本例中,我们希望将值放置在过滤条件元素f[users.city]=在网址字符串中的位置,以便探索按用户选择的城市进行过滤:
dimension: city {
type: string
sql: ${TABLE}.city ;;
link: {
label: "City Metrics Explore"
url: "/explore/ecommerce_model/order_items_explore?fields=users.city,orders.count,users.count&f[users.city]={{ value }}&sorts=orders.count+desc&limit=500"
}
}
然后,城市 维度将显示一个三点状链接菜单,其中显示城市指标探索 选项。

当用户点击该链接时,系统会将他们重定向到城市指标探索,并按所选城市进行过滤。

您还可以在链接到 Looker 内容时保留现有过滤条件值,如以下示例中所述。
示例:将现有过滤条件值传递给链接的内容
`link` 参数支持的另一个 Liquid 变量是 `_filters['view_name.field_name']`。此变量会获取为过滤条件输入的现有值,并将其传递给链接的探索、信息中心或 Look。
在内容网址中,您可以查看指定过滤条件值的位置,并将其替换为您的 _filters['view_name.field_name'] 变量。如需了解查询网址的各个部分,请参阅使用网址和查询参数 Looker 社区帖子。
以下是一个维度的示例,该维度在其 link 参数中使用 _filters['view_name.field_name'] 变量来传递名为 users.state 的字段的现有过滤条件值:
dimension: name {
link: {
label: "Business Pulse By State Dashboard"
url: "/dashboards/694?State={{ _filters['users.state'] | url_encode }}"
}
}
在此示例中,如果用户按 users.state 维度过滤查询,则链接的信息中心会自动按原始查询中选择的相同状态进行过滤。在此示例中添加 Liquid 过滤条件 url_encode 会将不安全的网址字符串转换为百分比编码的字符串。这可确保包含特殊字符(例如空格或英文逗号)的过滤条件值可以传递给链接的信息中心。
例如,假设用户已按“加利福尼亚州”过滤查询。当用户点击姓名 字段的值旁边的三点状菜单时,链接 菜单会显示指向信息中心按州划分的业务脉搏 的链接。当用户点击此链接时,按州划分的业务脉搏 信息中心将已按“加利福尼亚州”进行过滤。
这同样适用于将过滤条件值传递给链接的 Look 和探索:
dimension: name {
link: {
label: "Average Order Profit Look"
url: "/looks/249?&f[users.state]={{ _filters['users.state'] | url_encode }}"
}
link: {
label: "User Facts Explore Explore"
url: "/explore/ecommerce/users?fields=users.id,users.name&f[users.state]={{ _filters['users.state'] | url_encode }}"
}
}
您可以通过在多个过滤条件之间放置 & 来传递多个过滤条件,例如在以下网址中:
dimension: name {
link: {
label: "Business Pulse By State Dashboard"
url: "/dashboards/694?State={{ _filters['users.state'] | url_encode }}&Date={{ _filters['orders.date'] | url_encode }}"
}
link: {
label: "Average Order Profit Look"
url: "/looks/249?&f[users.state]={{ _filters['users.state'] | url_encode }}&f[orders.date]={{ _filters['orders.date'] | url_encode }}"
}
}
如需了解如何创建信息中心过滤条件,请参阅构建 LookML 信息中心以及添加和修改用户定义的信息中心过滤条件文档页面。
示例:使用 link 自定义深入分析可视化图表
如果 Looker 管理员已启用 可视化深入分析 功能,您可以使用 link 参数和 Liquid 变量自定义探索和 Look 的深入分析叠加层中显示的可视化图表。信息中心支持使用 link 参数进行可视化深入分析,而无需启用 可视化深入分析 功能。
以下是将深入分析可视化图表设置为散点图的示例:
measure: count {
type: count_distinct
sql: ${id} ;;
drill_fields: [created_date, total_sale_price]
link: {
label: "Drill as scatter plot"
url: "
{% assign vis_config = '{\\"type\\": \\"looker_scatter\\"}' %}
\{\{ link \}\}&vis_config=\{\{ vis_config | encode_uri \}\}&toggle=dat,pik,vis&limit=5000"
}
}
如需查看更多自定义深入分析可视化图表的示例,请参阅更强大的数据深入分析最佳实践页面。
链接到 Looker 内容时的注意事项
在某些情况下,您可能需要在链接到 Looker 内容时添加除等于之外的过滤条件比较运算符、添加多个过滤条件或转义英文逗号。以下部分详细介绍了这些用例。
其他比较运算符的网址编码
如果您想在链接的过滤条件中添加除等于 (=) 之外的比较运算符,可以通过对该运算符进行网址编码来实现。
例如,如果您希望链接的 Look 上的 order_id 过滤条件包含小于 (<) 与您点击的值关联的 order_id 字段的值,则需要对运算符字符进行部分编码(在本例中为 %3C),并将其添加到网址中:
f[orders.order_id]=%3C{{ other_orders.order_id._value }}
添加多个过滤条件
您可以使用英文和号 (&) 分隔每个过滤条件,以便将多个过滤条件应用于链接的 Look、信息中心和探索:
dimension: name {
link: {
label: "Drill Look"
url:"/looks/looknumber?&f[users.state]={{ value }}[users.region]={{ users.region._value }}&f[users.age]={{ _filters['users.age'] | url_encode }}"
}
}
转义英文逗号
您可以使用 filterable_value 变量转义链接值中的英文逗号,而通常情况下您可能会使用 value 变量。
以下链接会下钻到探索,该探索将按所选的 users.city 值过滤结果:
dimension: city {
type: string
sql: ${TABLE}.city ;;
link: {
label: "Drill by City"
url: "/explore/model_name/explore_name?fields=users.email,users.id&f[users.city]={{ value }}"
}
}
如果用户点击Santa Cruz, CA 以下钻到按此城市过滤的结果,则下钻结果将返回包含Santa Cruz 或 CA 的所有结果。
如果使用 filterable_value 而不是 value,则英文逗号将被转义:
dimension: city {
type: string
sql: ${TABLE}.city ;;
link: {
label: "Drill by City"
url: "/explore/model_name/explore_name?fields=users.email,users.id&f[users.city]={{ filterable_value }}"
}
}
下钻结果将返回包含整个字符串值 Santa Cruz, CA 的所有结果。
如果您想在下钻网址中硬编码包含英文逗号的过滤条件值,可以通过将该值用英文双引号引起来,然后使用反斜杠 (\) 对其进行转义来转义英文逗号:
dimension: city {
type: string
sql: ${TABLE}.city;;
link: {
label: "Drill by City"
url: "/explore/model_name/explore_name?fields=users.email,users.id&f[users.city]=\"Santa Cruz, CA\"&sorts=users.email"
}
}
其他资源
注意事项
当维度包含引用另一个字段的 link 参数时,该附加字段可能会添加到使用该维度的查询的底层 SQL 中。如果引用的字段未显示在查询的可视化图表中,并且该可视化图表是手动重新排列列的表格图表,则某些下载格式中的列顺序可能会受到影响。