link

用法

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 中打开。打开链接后,用户可以点击浏览器中的返回 ,返回到原始查询。

用户必须拥有 exploresee_drill_overlay 权限才能访问链接。

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...
    • 您可以通过选择展开后的网址 齿轮图标选项,获取现有探索的探索网址。
    • 探索过滤条件将以 f[view_name.field_name] 的形式显示在网址中。如需查看示例,请参阅链接到相关探索部分。
  • Look/looks/YOUR_LOOK_NUMBER
  • 用户定义的信息中心: /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 社区帖子。

我们有一个名为城市 的维度。我们希望用户能够访问另一个现有探索,其中包含城市指标和城市 过滤条件。我们希望链接的探索按用户选择的城市进行过滤。

为此,请执行以下操作:

  1. 获取要下钻到的现有探索的网址
  2. 城市 维度添加 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 行,为清晰起见。您可以根据需要添加网址的其余部分,这些部分通常包含可视化设置的网址编码。

  1. 在您想要将值插入到网址的位置插入 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 信息中心以及添加和修改用户定义的信息中心过滤条件文档页面。

如果 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 CruzCA 的所有结果。

如果使用 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 中。如果引用的字段未显示在查询的可视化图表中,并且该可视化图表是手动重新排列列的表格图表,则某些下载格式中的列顺序可能会受到影响。