[レポート]ハンズオン/「Liquid」~Lookerのカスタマイズ入門 – Looker:JOIN 2019 at San Francisco #looker #JOINdata

スネエエエエエエエク!
2019.11.27

現地時間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は奥が深いです。