用法
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... - 外观:
/looks/YOUR_LOOK_NUMBER- 您可以从 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 信息中心的网址。
用户定义的信息中心和 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"
}
}
然后,城市维度会显示一个三点状链接菜单,其中包含城市指标探索选项。

当用户点击该链接时,系统会将其重定向到 City Metrics Explore,并按所选城市进行过滤。

您还可以在链接到 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 可将不安全的网址字符串转换为百分号编码字符串。这样可确保包含特殊字符(如空格或英文逗号)的过滤条件值能够传递到关联的仪表板。
例如,假设用户已按“加利福尼亚州”过滤查询。当用户点击 Name 字段值旁边的三点状菜单时,Links 菜单会显示指向信息中心 Business Pulse by State 的链接。当用户点击此链接时,各州的商业脉搏信息中心将已按“加利福尼亚州”进行过滤。
此方法还可用于将过滤条件值传递给关联的 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"
}
}
其他资源
- 如需查看更多高级自定义钻取示例,请参阅更强大的数据钻取功能最佳实践页面。
- 如需查看更多在链接中使用
{{ value }}的示例,请参阅 Liquid 变量文档页面。
注意事项
如果某个维度包含引用其他字段的 link 参数,则该维度所用查询的底层 SQL 中可能会添加该额外字段。如果引用的字段未显示在查询的可视化图表中,并且该可视化图表是手动重新排列列的表格图表,则某些下载格式中的列顺序可能会受到影响。