[レポート]ハンズオン/「Liquid」~Lookerのカスタマイズ入門 – Looker:JOIN 2019 at San Francisco #looker #JOINdata
現地時間2019年11月05日〜07日の期間、米国サンフランシスコで開催されているLookerの年次カンファレンスイベント『JOIN 2019』。今年2019年のイベントは、弊社から3名のメンバーが現地参戦しました。
参加レポート各種については下記シリーズをご参照ください。
当エントリでは、その中から『Hands-on Lab: Liquid: An Introduction to Customizing Looker (「Liquid」~Lookerのカスタマイズ入門)』の内容について参加レポートをお届けします。
目次
セッション概要
セッションの概要は以下の通りです。
Prasad Pagade氏(Looker社 Sr Consultant)
[セッション情報]:
Hands-on Lab: Liquid: An Introduction to Customizing Looker
(「Liquid」~Lookerのカスタマイズ入門)
Want to bring flexibility and custom experiences to data lovers at your organization? It’s easier than you might think. This session will teach you the basics of working with Liquid, a template language that enables you to customize interactions and workflows within your Looker instance for amazing results.
(組織にいる「data lovers」に柔軟性とカスタムエクスペリエンスを提供したいとお考えですか?思ったより簡単ですよ。このセッションでは、Lookerインスタンス内のインタラクションとワークフローをカスタマイズして驚くべき結果を得ることができるテンプレート言語であるLiquidの操作の基本について学習します。)
セッションレポート
Liquidとは
Liquidは、Shopify社によって作成されたオープンソースかつRubyベースのテンプレート言語です。 LookMLと組み合わせて使用すると、より柔軟で動的なコードを構築できます。
Liquidコードは中括弧{}
で示され、次の3つのカテゴリに分類されます。
- Objects
- 「ページのどこにコンテンツを表示するか」をLiquidに伝えます。
- Tags
- テンプレートのロジックと制御フローの作成
- Filters
- Liquidオブジェクトの出力を変更する
Liquidのメリット
Liquidを使うと下記のようなメリットがあります。
- スマートなワークフロー
- ユーザーエクスペリエンスの向上
- Lookerのポテンシャルを最大限に引き出せる
Liquidを使用するには
LookMLには、Liquidを使用できる場所がいくつかあります。
action
パラメータhtml
パラメータlabel
パラメータlink
パラメータ- SQLで始まるパラメータ
sql
sql_on
sql_table_name
- 詳細は下記
Liquidのパラメータ
カスタムリンク
Lookerコンテンツ間、またはLookerと他の内部リソースまたは外部リソース間でカスタムワークフローを設定します。
- Lookまたはダッシュボードの値から外部Webの関連ページにリンクする
- Lookまたはダッシュボードの値から別の内部システム(内部アプリケーションやイントラネットページなど)の関連ページへのリンク
- ディメンションまたはメジャーへのカスタムドリルパスの設定
ほとんどのリンクは、link
パラメータを使用してディメンションとメジャーに追加されます。
label
は、このリンクのドリルメニューに表示される名前です。url
は、リンクのURLです。このパラメータはLiquid(完全なHTMLではない)をサポートします。icon_url
は、このリンクのアイコンとして使用される画像のURLです。
カスタムリンクを記述することで、Lookやダッシュボードで上記画像のようにリンクを出すことができます(クリックすると出現する)。
ハンズオンしてみた
下記のbrand
というディメンションにカスタムリンクを追加します。
dimension: brand { type: string sql: ${TABLE}.brand ;; }
brand
というディメンションの値をGoogle検索するようにします。
dimension: brand { type: string sql: ${TABLE}.brand ;; link: { label: "Google" url: "http://www.google.com/search?q={{ value }}" icon_url: "http://google.com/favicon.ico" } }
link
パラメータを追加しました。すると、ビジュアライズで下記のようにリンクが出ます。
link
は複数配置することもできます。
カスタムドリル
Lookerコンテンツ間でカスタムワークフローを設定することができます。
- エグゼクティブ用ダッシュボードから詳細ダッシュボードへのリンク
- LookまたはダッシュボードからExploreへのリンク
ハンズオンしてみた
ユーザーがUI上で電子メールをクリックし、選択したユーザーの詳細な顧客参照ダッシュボード(ID=26)にリンクできるようします。
dimension: email { type: string sql: ${TABLE}.email ;; }
メールアドレスが値として入っているディメンションに対してlink
パラメータを追加します。選択したメールアドレスをフィルタの値として持ちつつ別ダッシュボードへ遷移するようにします。
dimension: email { type: string sql: ${TABLE}.email ;; link: { label: "顧客詳細ダッシュボード" url: "/dashboards/26?Email={{value}}" } }
このディメンションを使うと、下記のような動作が可能です。
ハンズオンを受講して
Liquidという機能の「はじめの一歩」的なセッションでした。非常にわかりやすかったです。
他のBIツールだと、こういう機能はGUIの複雑なメニューを何度も行き来して設定するイメージがありますが、LookerはLookMLをサッと一回書くだけで、こういう動作が定義できるのがいいですね。
セッションの名前にもありますが、これはイントロダクション扱いで、別途Liquidアドバンスドセッションもあります。まだまだLiquidは奥が深いです。