Lookerのダッシュボードにおいて、リンク機能を活用してフィルターを設定する方法を紹介します。
まず、前提としてLookerのダッシュボードではURLにフィルターの値が埋め込まれています。
そのため、フィルターの値を設定したURLを開くことでフィルターが設定された状態のダッシュボードを表示できます。
例えばこの↓「顧客指標=&商品中分類=&…」部分がフィルターの項目になっています。
ダッシュボード上でフィルターの値を動的に変更するためのソースコードを実際に書いてみます。
今回はとある小売りの購買データを使用します。
使用したダッシュボードは以下です。
では、実際にフィルターを制御するコードを書いていきたいと思います。
今回はHTMLパラメータを使用します。
dimensionの「item_name」にフィルターの値が入力されたURLを設定します。
これでダッシュボード上で「Item Name」を選択した際に商品名でフィルターをかけることができるようになります。
重要な点は、異なるビューに設定されたフィルターの値も保持しながらリンク先に移動することができることです。
_filters['view_name.field_name']
この「_filters
」はLookerでのテンプレート変数の一つで、ダッシュボード等に適用されているフィルターの値を取得する時に使用します。
こちらを使用して、設定済みのフィルターについて値を保持したリンクを作成します。
実際に記述したものが以下になります。
グラフ横軸の「Item Name」を選択します。
⇓
このようにすでに入力されているフィルター「顧客指標」と「商品中分類」の値を保持したまま「商品名ごと」に値を設定することができます。
注意が必要なのが、Exploreの宣言です。
ここで私は躓きました……
私が実際に経験したエラー(警告)の内容とその時のModelファイルに記述したソースコードがこちらです。
これは、Modelファイル内で今回使用したExploreに結合しているViewファイルを他のExploreとしても定義していたためであり、「そのExploreを使用する場合にリンクが機能しない可能性があります。(意訳)」という警告文でした。
今回はどれも不要なエクスプローラーだったため、削除しました。
これでエラー(警告)が消えました!
設定済みのフィルター値を保持できないままリンク先に飛んでしまうため、フィルターを上書きしてしまう結果になったソースコードです。
「item_name」という名前のdimensionにリンク機能が設定されているというところは同じです。
ただし「item_name」(商品ごと)フィルターは設定されますが、他のフィルターが空欄になってしまいます。
簡単にソースコードの説明をすると、
この設定でグラフ横軸の「Item Name」を選択してみると、
⇓
このように「商品名ごと」に値を設定することはできます。
ですが、画像を見てもらうとわかる通り「_filters」なしでソースコードを書いてしまうと、すでに選択されているフィルターの保持ができず、すでに入力されていたフィルター「顧客指標」と「商品中分類」の値が空欄となる結果になってしまいました。
今回はHTMLパラメータを使用してフィルターの制御をしました。
LINKパラメータでも同じ記述の仕方でフィルターの制御ができます!
また「はじめに」で紹介したリンク機能の記事にあるようにそれぞれの特徴がありますので、
要件に沿って使い分けていきましょう!
ご一読いただきありがとうございます。
【Google公式のヘルプページ】
HTMLパラメータ
https://cloud.google.com/looker/docs/reference/param-field-html