link

使用状況

ビュー: view_name
{
階層
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 は、リンク先の URL です。このページのlink で Liquid 変数を使用するセクションで説明されているように、Liquid 変数を使用してリンクを動的にすることができます。
  • icon_url は、画像ファイルを含む URL であり、ユーザーのブラウザでアクセスできます。これにより、ユーザーはリンク先が一目でわかります。アイコンが必要ない場合、icon_url パラメータは必要ありません。企業ロゴが必要な場合は、http://www.google.com/s2/favicons?domain=[company website of interest] のパターンを使用して Google 検索を実行し、.ico 形式の画像を検索してください。

ある e コマース企業が、過去 1 か月間の保留中の注文を表示する Look など、Looker のコンテンツから倉庫サポートに直接問い合わせられるように従業員に求めている。Look には、オーダー ID と、各注文に関連付けられている顧客のユーザー ID が含まれます。

「オーダー ID」ディメンションへのリンクを追加して、このアクションを Look を閲覧しているユーザーが利用できるようにします。


dimension: id {
  primary_key: yes
  type: number
  sql: ${TABLE}.id ;;
  link: {
    label: "Contact Warehouse Support"
    url: "mailto:warehouse@brettcase.com"
  }
}

その他メニューをクリックすると、リンクメニューのオプションの中にリンクが表示されます。

リンクをクリックすると、リンク先のコンテンツ(この例では、指定したメールアドレス宛ての空白のメールの下書きを含む新しいタブ)に移動します。

上記の例には、sql パラメータが含まれています。sql が未指定の場合、Looker は、基となるテーブルにフィールドと同じ名前の列があると想定します。

ユーザーがリンクをクリックすると、Looker は新しいブラウザタブまたは同じタブ(埋め込みクエリの場合は iframe)でリンクを開きます。

  • https://example.looker.com などの絶対リンクは新しいブラウザタブで開きます。
  • /dashboards/456 などの相対リンクは、同じブラウザタブまたは iframe で開きます。リンクが開いたら、ブラウザで [戻る] をクリックして元のクエリに戻ることができます。

ユーザーがリンクにアクセスするには、explore または see_drill_overlay の権限が必要です。

link パラメータは、Liquid 変数をサポートして、行と値レベルまでのコンテンツのインタラクティブ性を高めます。LookML は、値入力 {{ }} タグと条件付きロジック {% %} タグという 2 種類の Liquid 使用状況タグをサポートしています。

2 つの変数のうち、Liquid 変数value および _filters['view_name.field_name'])と組み合わせて、link で最もよく使用されます。{{ }}これは、{{ }} が URL 内など、値が配置されている場所に直接入力されるためです。

value 変数と _filters['view_name.field_name'] 変数で Liquid {{ }} タグを使用して、link でコンテンツをインタラクティブにする例については、このページの例をご覧ください。

外部コンテンツへのリンク

たとえば、artist_name ディメンションがあり、ユーザーがそのアーティストの Google 検索を Looker から直接実行できるようにしたいとします。valueLiquid 変数を使用して、次のようなディメンションにこのオプションを追加できます。

dimension: artist_name {
  link: {
    label: "Google"
    url: "http://www.google.com/search?q={{ value }}"
    icon_url: "http://google.com/favicon.ico"
  }
}

このディメンション リンクのユーザー エクスペリエンスは次のようになります。

リンクをクリックすると新しいブラウザタブが開き、選択したアーティストの Google 検索が表示されます。選択したアーティスト名は、{{ value }} が配置されている URL に挿入されます。

このパターンは、チケット管理システム、クライアント管理システム、その他のビジネス関連ツールなど、ユーザーのブラウザがアクセスできる他の外部ウェブサイトにも複製して、ウェブ アプリケーション間の移動を容易にできます。

Looker のコンテンツへのリンク

外部サイトに加えて、link パラメータを使用すると、他の関連する Looker Explore、Look、ダッシュボードにユーザーを誘導して、カスタム ドリル エクスペリエンスを実現できます。また、LookML の html パラメータのフィールドにも、同じ例を適用できます。

まず、リンクする既存の Explore、Look、ダッシュボードの URL を取得する必要があります。URL の特定の要素(フィルタの値や名前など)を、value 変数と _filters['view_name.field_name'] 変数を含む {{ }} タグに置き換えることができます。この変数により、ユーザーが選択した値が、置き換える URL 要素に入力されます。コンテンツ URL の基本的な構造は次のとおりです。

  • データ探索: https://instance_name.looker.com/explore/YOUR_MODEL_NAME/YOUR_EXPLORE_NAME?fields=view_name.field_name1,view_name.field_name2...
    • 既存の Explore の Explore URL を取得するには、展開された URL の歯車アイコン オプションを選択します。
    • Explore フィルタは URL で f[view_name.field_name] として表示されます。例については、関連する Explore へのリンクのセクションをご覧ください。
  • 参照: https://instance_name.looker.com/Looks/YOUR_LOOK_NUMBER
  • ユーザー定義のダッシュボード: https://instance_name.looker.com/dashboards/YOUR_DASHBOARD_NUMBER?FILTER_NAME_1=VALUE&FILTER_NAME_2=VALUE
    • 既存のダッシュボードの URL を取得するには、ダッシュボード ページからブラウザの URL をコピーします。
    • 従来のダッシュボードを使用している場合、URL は URL 形式の dashboards の代わりに dashboards-legacy を使用します。
  • LookML ダッシュボード: https://instance_name.looker.com/dashboards/YOUR_MODEL::YOUR_DASHBOARD
    • 既存の LookML ダッシュボードの URL を取得するには、ダッシュボード ページからブラウザの URL をコピーします。

ユーザー定義ダッシュボードと LookML ダッシュボードのダッシュボード フィルタは、filter_name として URL に表示されます。ここで、filter_name はダッシュボードに配置されたフィルタの名前です。例については、既存のフィルタ値をリンクされたコンテンツに渡すをご覧ください。

フィルタの値や名前などの URL 要素は、URL エンコードされます。たとえば、クエリ文字列の先頭を示す ? や、区切る要素を表す &、スペースを表す %20 などです。例については、他の比較演算子の URL エンコードをご覧ください。

リンク先コンテンツの URL を取得したら、value 変数または _filters['view_name.field_name'] 変数と {{ }} タグを使用して Liquid を使用し、URL の任意の要素にフィールドの値を挿入できます。クエリ URL の各部分の詳細については、Looker コミュニティの URL とクエリ パラメータの使用をご覧ください。

ディメンションは「市区町村」です。Google は、都市の指標と都市フィルタを使用して、ユーザーが既存の別の Explore にアクセスできるようにしたいと考えています。リンクされた Explore をユーザーが選択した都市でフィルタリングできるようにします。

手順は次のとおりです。

  1. ドリルダウンする既存の Explore の URL を取得します。
  2. City ディメンションに link パラメータを追加します。
  dimension: city {
  type: string
  sql: ${TABLE}.city ;;
  link: {
    label: "City Metrics Explore"
    url: "https://instance_name.looker.com/explore/ecommerce_model/order_items_explore?fields=users.city,orders.count,users.count&f[users.city]=&sorts=orders.count+desc&limit=500"
  }
  }

ここでは、URL を limit=500 に短縮しています。これは、すなわち Explore の結果が 500 行に制限され、

  1. URL に値を挿入する場所に Liquid {{ value }} タグと変数を挿入します。この例では、フィルタの要素 f[users.city]= が、ユーザーが選択した都市でフィルタする Explore の URL 文字列にある値を記述します。
dimension: city {
  type: string
  sql: ${TABLE}.city ;;
  link: {
    label: "City Metrics Explore"
    url: "https://instance_name.looker.com/explore/ecommerce_model/order_items_explore?fields=users.city,orders.count,users.count&f[users.city]={{ value }}&sorts=orders.count+desc&limit=500"
  }
}

「都市」ディメンションには、3 つのドットのリンク メニューが表示され、[都市の指標の探索] オプションが表示されます。

ユーザーがリンクをクリックすると、選択した都市でフィルタされた City Metrics Explore にリダイレクトされます。

次の例で説明するように、Looker コンテンツにリンクするときに既存のフィルタ値を保持することもできます。

例: 既存のフィルタ値をリンクされたコンテンツに渡す

link パラメータでサポートされている別の Liquid 変数は _filters['view_name.field_name'] です。この変数は、フィルタに入力された既存の値を取得し、リンクされた Explore、ダッシュボード、Look に渡します。

ダッシュボードからフィルタを渡す場合は、ダッシュボード LookML または従来のダッシュボード ユーザー インターフェースで設定されているフィールド タイプのフィルタを参照する必要があります。_filters['view_name.field_name']

コンテンツ URL では、フィルタ値が指定されている場所を確認し、_filters['view_name.field_name'] 変数に置き換えることができます。クエリ URL の各部分については、Looker コミュニティの URL とクエリ パラメータの使用をご覧ください。

link パラメータで _filters['view_name.field_name'] 変数を使用して、users.state というフィールドの既存のフィルタ値を渡すディメンションの例を次に示します。

dimension: name {
  link: {
    label: "Business Pulse By State Dashboard"
    url: "https://instance_name.looker.com/dashboards/694?State={{ _filters['users.state'] | url_encode }}"
  }
}

この例では、ユーザーが users.state ディメンションでクエリをフィルタリングすると、リンクされたダッシュボードは、元のクエリで選択したものと同じ状態で自動的にフィルタされます。この例に Liquid フィルタ url_encode を含めると、URL 安全でない文字列がパーセント エンコードされた文字列に変換されます。これにより、特殊文字(スペースやカンマなど)を含むフィルタ値をリンク先のダッシュボードに渡すことができます。

次の例では、ユーザーが州「カリフォルニア州」でクエリをフィルタしています。リンクをクリックすると、カリフォルニア州ですでにフィルタリングされたダッシュボードが開きます。

これは、リンクされた Look と Explore にフィルタ値を渡す場合にも使用できます。

dimension: name {
    link: {
      label: "Average Order Profit Look"
      url: "https://instance_name.looker.com/looks/249?&f[users.state]={{ _filters['users.state'] | url_encode }}"
    }
    link: {
      label: "User Facts Explore Explore"
      url: "https://instance_name.looker.com/explore/ecommerce/users?fields=users.id,users.name&f[users.state]={{ _filters['users.state'] | url_encode }}"
    }
  }

複数の URL でフィルタを渡すには、次のように複数の URL を & で囲みます。

dimension: name {
  link: {
    label: "Business Pulse By State Dashboard"
    url: "https://instance_name.looker.com/dashboards/694?State={{ _filters['users.state'] | url_encode }}&Date={{ _filters['orders.date'] | url_encode }}"
  }
  link: {
    label: "Average Order Profit Look"
    url: "https://instance_name.looker.com/looks/249?&f[users.state]={{ _filters['users.state'] | url_encode }}&f[orders.date]={{ _filters['orders.date'] | url_encode }}"
  }
}

ダッシュボードと Look へのリンク: リンクされたダッシュボードまたは Look は、指定したフィルタ値を受け入れるフィルタで構成する必要があります。上記の例では、リンクされた Business Pulse by State ダッシュボードに users.state という State というフィルタが構成され、_filters['users.state'] フィルタ値をダッシュボードに渡すことができます。渡された値を使用できるフィルタがダッシュボードや Look にない場合、リンクは機能しますが、フィルタの値はダッシュボードに適用されません。

ダッシュボード フィルタの作成方法については、LookML ダッシュボードの構築と、ユーザー定義のダッシュボード フィルタの追加と編集に関するドキュメント ページをご覧ください。

Looker 管理者が Visual Drilling Labs 機能を有効にしている場合、link パラメータと Liquid 変数を使用して、Explore、Look、従来のダッシュボードのドリル オーバーレイに表示される可視化をカスタマイズできます。新しいダッシュボードでは、ビジュアル ドリル Labs 機能を有効化することなく、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 コンテンツへのリンクで、等しい以外にもフィルタ比較演算子を含めたり、複数のフィルタを含めたり、カンマをエスケープしたりすることが必要な場合があります。以降のセクションでは、これらのユースケースについて詳しく説明します。

URL エンコードの他の比較演算子

等しい」(=)以外の比較フィルタをリンクフィルタに含めるには、演算子を URL エンコードします。

たとえば、リンクされた Look に対する order_id フィルタに、クリックする値に関連する order_id フィールド(<)より小さい値を含める場合は、演算子文字(この場合は %3E)を部分的にエンコードして URL に追加します。

f[orders.order_id]=%3E{{ other_orders.order_id._value }}
複数のフィルタを含める

アンパサンド(&)を使って各フィルタを区切ることで、リンクされた Look、ダッシュボード、Explore に複数のフィルタを適用できます。

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 }}"
  }
}
カンマのエスケープ

通常は value 変数を使用できる filterable_value 変数を使用して、リンクされた値のカンマをエスケープできます。

次のリンクは、選択された users.city 値で結果をフィルタする Explore にドリルダウンします。

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 を含むすべての結果が返されます。

value の代わりに filterable_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 という文字列値全体を含むすべての結果が返されます。

ドリル URL にカンマを含むフィルタ値をハードコードする場合は、値を二重引用符で囲んでスラッシュ(/)でエスケープすることで、カンマをエスケープできます。

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 変数のドキュメント ページをご覧ください。