Liquid を使用して Looker のユーザー エクスペリエンスをカスタマイズする

ラボ 15分 universal_currency_alt 無料 show_chart 中級
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
このコンテンツはまだモバイル デバイス向けに最適化されていません。
快適にご利用いただくには、メールで送信されたリンクを使用して、デスクトップ パソコンでアクセスしてください。

GSP933

Google Cloud セルフペース ラボのロゴ

概要

Looker は Google Cloud で利用できる最新のデータ プラットフォームで、インタラクティブにデータを分析して可視化できます。Looker を使用すると、詳細なデータ分析、さまざまなデータソース間での分析情報の統合、実用的なデータドリブン ワークフローの構築、独自のデータ アプリケーションの作成を行うことができます。

このラボでは、Liquid の一般的なユースケースを見るとともに、Liquid を使ってディメンションやメジャーをカスタマイズする方法を学びます。

学習内容

このラボでは、次の方法について学びます。

  • Looker における Liquid の一般的なユースケースを挙げる
  • Liquid を使用してディメンションにリンクを追加する(ウェブ検索、Looker のダッシュボードや Explore、その他の社内アプリケーションなど)
  • Liquid を使用して html パラメータでディメンションやメジャーの値をカスタマイズする

前提条件:

LookML に関する知識が必要です。このラボを開始する前に、「Understanding LookML in Looker」コースを修了することをおすすめします。

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボの時間は制限されており、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: すでに個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、このラボでは使用しないでください。アカウントに追加料金が発生する可能性があります。

ラボを開始して Looker にログインする方法

  1. 準備ができたら、[ラボを開始] をクリックします。

    [ラボの詳細] ペインに、このラボで使用する一時的な認証情報が表示されます。

    ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。

    [ラボの詳細] ペインに表示されているラボの認証情報を確認してください(このラボの Looker インスタンスにログインする際に使用します)。

    注: 他の認証情報を使用すると、エラーが表示されたり料金が発生したりします
  2. [Open Looker] をクリックします。

  3. 提供されたユーザー名とパスワードを、[Email] フィールドと [Password] フィールドに入力します。

    ユーザー名:

    {{{looker.developer_username | Username}}}

    パスワード:

    {{{looker.developer_password | Password}}} 重要: このページの [ラボの詳細] ペインに表示されている認証情報を使用する必要があります。Google Cloud Skills Boost の認証情報は使用しないでください。ご自身の Looker アカウントをお持ちの場合でも、このラボでは使用しないでください。
  4. [Log In] をクリックします。

    正常にログインすると、このラボで使用する Looker インスタンスが表示されます。

Liquid とは

Liquid は Shopify が開発したオープンソースのテンプレート言語で、Ruby をベースとしています。Liquid と LookML を併用することで、より柔軟な動的コードを作成できます。

Liquid のコードには、次の 3 つのカテゴリがあります。

  • オブジェクト - ページ上のどこにコンテンツを表示するかを Liquid に指示します。基本的には変数やプレースホルダであり、ランタイムに値が挿入されます。オブジェクト名は二重中括弧で囲まれます(タグ内で参照される場合を除く)。
    • オブジェクトの実例は、e コマースのメールでご覧になったことがあるかもしれません。オンラインで買い物をしたときに、「{{ last_name }} {{ first_name }} 様」で始まる注文確認やプロモーションのメールが届いたことはありませんか?こうしたメール テンプレートの多くは Liquid を使用しており、テンプレートにエラーが含まれていると実際の姓名が入力されず、オブジェクトが見えてしまう場合があります。
  • タグ - テンプレートのロジックと制御フローを作成します。タグはロジックがどのように動作するかを規定します。タグは中括弧とパーセント記号で始まり、パーセント記号と中括弧で終わります。主に if-then ルールの記述に使用されますが、変数の代入などの操作も可能です。
  • フィルタ - Liquid オブジェクトの出力を操作します。フィルタを適用するには、垂直パイプ(|)を入力した後、append などのサポートされているキーワードの名前を入力します。
    • Looker をある程度使用したことはあるものの、Liquid を使用したことがない場合、フィルタはわかりづらく感じるかもしれません。Looker では、「赤い服だけを表示する」「平均評価が 5 点中 4 点以上の商品だけを表示する」など、フィルタを使って検索結果を絞り込めます。

Looker における Liquid の使用

Liquid 変数のリファレンスで説明されているように、Liquid は特定の LookML パラメータでのみ使用できます。特に Liquid 変数の定義の表は非常に便利です。[Usage] の列には、どの LookML パラメータがどの変数タイプをサポートしているかが表示されています。エラーがないはずの Liquid コードが動作しないときは、この表でサポート対象範囲を確認することで、トラブルシューティングにかかる時間を短縮できます。

なお、このページでは appendconcat などのフィルタについては言及していません。これらの詳細については、Shopify の Liquid ドキュメントをご覧ください。ほとんどの Liquid フィルタは、Looker でも使用できます。

厳密に言うと、LookML は以下のように Liquid を使用できる場所が複数あります。

  • action パラメータ
    • action パラメータは、ユーザーが Looker から直接他のツールでフィールド レベルのタスクを行えるようにするデータ アクションを作成します。たとえば、メールを送信したり、他のアプリケーションで値を設定したり、受信サーバー上で構成可能なその他のアクションを実行したりできます。受信サーバーが JSON POST を受け入れるようにする必要があります。
  • html パラメータ
    • html パラメータを使用すると、フィールドに含める HTML を指定できます。Liquid 変数を使って、そのフィールドに本来ある値にアクセスできます。これにより、関連する他の Look へのリンク、外部のウェブサイトへのリンク、画像など、各種の便利な機能を作成できます。
  • フィールドの label パラメータ
    • 操作メニューで表示されるアクション名を指定する文字列です。
  • link パラメータ
    • link パラメータを使用すると、ユーザーが Looker から関連コンテンツに直接簡単に移動できるよう、ディメンションやメジャーにウェブリンクを追加することができます。これについては、このラボで後ほど詳しく説明します。
  • sql で始まるパラメータ: sqlsql_onsql_table_name

Liquid 変数の使用

Liquid 変数の基本的な使い方は簡単です。使用する変数が決まったら、その変数を有効な LookML パラメータに挿入するだけです。個々の LookML パラメータで使用できる Liquid 変数については、Liquid 変数の定義に関するドキュメントに記載があります。

Liquid 変数の使用方法は 2 つあります。

  1. 出力構文: テキストを挿入するために使用します。Looker で Liquid を使用する方法として恐らく最も一般的です。この方法では、Liquid 変数を二重中括弧で囲みます。たとえば、{{ value }} というようにします。
  2. タグ構文: 基本的に、テキストを挿入するためではなく、論理比較などの Liquid 演算に使用します。この方法では、Liquid 変数を一重の中括弧と 1 つのパーセント符号で囲みます。たとえば、{% if value > 10000 %} というようにします。

基本的な例

以下の HTML の例では、<img> タグに商品 ID を挿入することで、商品画像を生成しています。

dimension: product_image { sql: ${product_id} ;; html: <img src="http://www.brettcase.com/product_images/{{ value }}.jpg" /> ;; }

以下の URL の例では、URL にアーティスト名を挿入することで、そのアーティストに関する Google 検索の結果を生成しています。

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

他のフィールドにある変数へのアクセス

Liquid 変数は、その変数が使われているフィールドを基準とするのが基本です。ただし、必要に応じて他のフィールドの値にアクセスすることもできます。

クエリの結果において、同じ行にある他のフィールドにアクセスするには、{{ view_name.field_name._liquid-variable-name }} という形式を使用します。_liquid-variable-name の部分は、Looker の Liquid 変数のいずれかに置き換えます。アンダースコアで始まらない変数名でも、その前に必ずアンダースコアを付けてください。たとえば以下のようにします。

  • {{ view_name.field_name._value }}
  • {{ view_name.field_name._rendered_value }}
  • {{ view_name.field_name._model._name }}

この方法によって、別のフィールドにあるウェブサイトの URL にアクセスする例を以下に示します。

dimension: linked_name { sql: ${name} ;; html: <a href="{{ website.url._value }}" target="_new">{{ value }}</a> ;; }

一般的なユースケース

Looker では、さまざまな方法で Liquid を使用できます。よくあるユースケースとしては、次のようなものがあります。

  • ダイナミック リンクの作成や動的な画像のレンダリング
  • カスタムドリルの設定
  • 使用中のモデルに基づくフィールドのラベルの変更
  • 集計テーブルの自動認識
  • カスタムの条件付きフォーマットの追加
  • テンプレート化されたフィルタとパラメータの統合

link パラメータ

ほとんどのリンクは、link パラメータを使用してディメンションやメジャーに追加します。link パラメータはカスタムリンクやドリルを作成するものであり、次の 3 つのサブパラメータがあります。

ハイライト表示された link パラメータ

  • label - ドリルメニュー内でこのリンクに付けられる名前と、UI 上でリンク オプションがどのように表示されるかを指定します。
  • url - ターゲット URL を指定するものであり、多くの場合、動的な {{ value }} オブジェクトが含まれます。Liquid 構文に完全対応しています(ただし、HTML 構文には完全対応していません)。
  • icon_url - このリンクのアイコンとして使用する画像の URL を指定します。アイコンが不要な場合、icon_url パラメータを指定する必要はありません。企業ロゴが必要な場合は、http://www.google.com/s2/favicons?domain=[対象となる企業のウェブサイト] というパターンで Google 検索を行うと、ファビコン(.ico)形式の画像を探すことができます。

link パラメータの詳細については、Looker の link パラメータに関するドキュメントをご覧ください。

タスク 1. ウェブ検索の結果へのリンクをディメンションに追加する

このセクションでは、ユーザー インターフェース内でユーザーが都市名をクリックし、その都市の Google 検索の結果にアクセスできるよう、Users ビューの City ディメンションにリンクを追加します。

  1. まず、Looker のユーザー インターフェースの左下にある切り替えボタンをクリックして Development Mode に切り替えます。

  2. [Develop] タブをクリックし、qwiklabs-ecommerce という LookML プロジェクトを選択します。Users ビューファイルに移動します。

  3. Users ビューファイル内で、以下のような City ディメンションを見つけます。

Users ビューファイルに表示された dimension: city {

  1. 既存の city ディメンションの下に、以下のような新しい city_link ディメンションを作成し、link パラメータを追加します。[Save Changes] をクリックします。
dimension: city_link { type: string sql: ${TABLE}.city ;; link: { label: "Search the web" url: "http://www.google.com/search?q={{ value | url_encode }}" icon_url: "http://www.google.com/s2/favicons?domain=www.{{ value | url_encode }}.com" } }

追加した link パラメータでは、サブパラメータが次のように定義されています。

  • label - ここでは「Search the web」という文字列を使用し、リンクのクリックによってどのようなアクションが行われるかを示しています。
  • url - ここでは City ディメンションの値を使用しています。また、URL で安全に使えない文字をパーセント エンコード文字に変換するために、url_encode フィルタを適用しています。
  • icon_url - リンクのアイコンとして使用する画像 URL です。上記の URL では、その都市のウェブサイトにあるファビコン画像が検索されます(該当する場合)。
注: ほとんどの都市では一般的なウェブアイコンが表示されますが(Allentown など)、一部の都市では検索で見つかったカスタム アイコンが表示されます(Abbeville など)。

新しい city_link ディメンションは次のようになります。

Users ビューファイルに表示された dimension: city_link {

  1. [Order Items] の Explore に移動します。

  2. Users ビューで、[City Link] ディメンションを選択します。[Run] をクリックします。

  3. City の値(Abbeville など)の横にあるその他アイコンをクリックします。

City の値メニュー

  1. [Search the web] を選択します。これで、1 つ目のリンクをディメンションに追加することができました。

  2. Users ビューファイルに戻ります。

変更を commit して本番環境にデプロイする

  1. [LookML を検証] をクリックしてから、[Commit Changes & Push] をクリックします。

  2. commit メッセージを追加して、[Commit] をクリックします。

  3. 最後に、[本番環境にデプロイ] をクリックします。

[進行状況を確認] をクリックして、上記のタスクを実行したことを確認します。 ウェブ検索の結果へのリンクをディメンションに追加する

タスク 2. html パラメータを使用して、ディメンションの値をリンクボタンとして表示する

リンク パラメータによって生成されるその他アイコンは、ビジネス ユーザーの好みに合わない可能性もあります。また、フォントのスタイルやリンクの起動方法など、別の要件が求められる場合もあります。このような場合は、html パラメータを使用すると柔軟性が高まります。html パラメータを使用することで、以下のようにドリルやリンクをさらにカスタマイズできます。

  • ディメンションの値を Looker に表示し、ハイパーリンク化する
  • ユーザーが値をクリックすると、html 内で指定されたリンクに移動するようにする
  • ユーザー エクスペリエンスを細かく調整する

html パラメータの詳細については、Looker の html に関するドキュメントをご覧ください。

このセクションでは、新しいディメンションを作成し、その値がボタンとして表示されるようにします。このボタンには、選択したユーザー ID の注文履歴を表示するよう事前構成された Explore へのリンクを設定します。

  1. Users ビューファイルに戻ります。

  2. Users ビュー内で、order_history_button という新しいディメンションを次のように追加します。

dimension: order_history_button { label: "Order History" sql: ${TABLE}.id ;; html: <a href="/explore/training_ecommerce/order_items?fields=order_items.order_item_id, users.first_name, users.last_name, users.id, order_items.order_item_count, order_items.total_revenue&f[users.id]={{ value }}"><button>Order History</button></a> ;; }
  1. [Save Changes] をクリックします。

上記で追加した html パラメータでは、Order History ボタンのディメンションの値は ID ですが、個々の ID を表示してもビジネス ユーザーにとっては意味がない可能性があるため、代わりに「Order History」という単語を表示しています。

これは Ecommerce Training モデルの「Order Items」の Explore にリンクし、特定のフィールドを表示するように指定しています(複数のフィールドのセットを使用して、より簡単に列挙することも可能です)。さらに、選択されたユーザー ID のフィルタを適用しています。また、html パラメータ自体からは、その値にハイパーリンクが含まれていることを示す視覚的な手がかりが生成されないため、<button> タグを使ってボタンとしてのスタイルを設定することで、クリック可能であることを明確にできます。参考: Creating hyperlinked button dimensions

注: 前のセクションと同様に、href パラメータの値を URL の値として使って、リンクを作成することもできます。

ファイルは次のようになります。

users.view

  1. [Order Items] の Explore に移動します。

  2. Users ビューで、[ID]、[First Name]、[Last Name]、[Order History] のディメンションを選択します。[Run] をクリックします。

Users ビュー

  1. 特定のユーザーの [Order History] ボタンを右クリックすると、新しいタブが開きます。たとえば、Sam Aguilar のボタンをクリックすると、過去に 2 件の注文があったことがわかります。これで、値をリンク付きボタンとして表示し、実際に機能するディメンションを作成することができました。

  2. Users ビューに戻ります。

変更を commit して本番環境にデプロイする

  1. [LookML を検証] をクリックしてから、[Commit Changes & Push] をクリックします。

  2. commit メッセージを追加して、[Commit] をクリックします。

  3. 最後に、[本番環境にデプロイ] をクリックします。

[進行状況を確認] をクリックして、上記のタスクを実行したことを確認します。 html パラメータを使用して、ディメンションの値をリンクボタンとして表示する

タスク 3. html パラメータを使用して、メジャーの値の形式をカスタマイズする

Looker のテーブル ビジュアリゼーションでは、条件付き書式を有効にすることで、ヒートマップを作成できますが、この機能ではテーブルのセルをさまざまな色で塗りつぶすことしかできません。フォントの色やサイズなどをより柔軟にカスタマイズするには、html パラメータを使用する必要があります。このパラメータを使用すると、次のようなことができます。

  • ディメンションのラベルやヘッダーの背景にカスタムの色を追加する
  • 表示される値の一部として画像やアイコンを追加する
  • 表示されるテキストのサイズやフォントを変更する
  • テーブルのセルに、カスタムの詳細情報をプルダウン形式で組み込む
  • テーブルのセルに、そのセルの値と目標値を比較する進行状況バーを組み込む

このセクションでは、既存のメジャーに変更を加えて、指定した基準より値が大きいかどうかに応じて値の形式をカスタマイズします。

  1. Order Items ビューファイルに移動します。

  2. Order Items ビューで、total_revenue メジャーを見つけます。

order-items.view

  1. 既存の total_revenue メジャーの下に、以下のように total_revenue_conditional メジャーを作成し、html パラメータを追加します。
measure: total_revenue_conditional { type: sum sql: ${sale_price} ;; value_format_name: usd html: {% if value > 1300.00 %} <p style="color: white; background-color: ##FFC20A; margin: 0; border-radius: 5px; text-align:center">{{ rendered_value }}</p> {% elsif value > 1200.00 %} <p style="color: white; background-color: #0C7BDC; margin: 0; border-radius: 5px; text-align:center">{{ rendered_value }}</p> {% else %} <p style="color: white; background-color: #6D7170; margin: 0; border-radius: 5px; text-align:center">{{ rendered_value }}</p> {% endif %} ;; }
  1. [Save Changes] をクリックします。

追加した html パラメータで、値に応じてメジャーの書式設定がカスタマイズされるようになりました。if-then ロジックを使用して、次のように定義されています。

  • total revenue の値が $1,300 を超える場合は、背景色を黄色にする
  • total revenue の値が $1,200 を超える場合は、背景色を青色にする
  • それ以外(total revenue の値が $1,200 以下)の場合は、背景色を灰色にする

ファイルは次のようになります。

ハイライト表示された total_revenue_conditional の html パラメータが表示された order_items.view

  1. [Order Items] の Explore に移動します。

  2. Users ビューで、[ID]、[First Name]、[Last Name] を選択します。Order Items ビューで、[Total Revenue Conditional] を選択します。[Run] をクリックします。

Users ビュー

これで、total revenue のメジャーで html パラメータを使用し、指定した基準より値が大きいかどうかに応じて値が色分けされるようになりました。

  1. Order Items ビューに戻ります。

変更を commit して本番環境にデプロイする

  1. [LookML を検証] をクリックしてから、[Commit Changes & Push] をクリックします。

  2. commit メッセージを追加して、[Commit] をクリックします。

  3. 最後に、[本番環境にデプロイ] をクリックします。

[進行状況を確認] をクリックして、上記のタスクを実行したことを確認します。 html パラメータを使用して、メジャーの値の形式をカスタマイズする

タスク 4. Liquid を使用した高度なリンク設定

複数の Explore でそれぞれ異なるリンクが必要となる高度なユースケースでは、Liquid タグを使用することでリンクに条件を組み込めます。このセクションでは、Explore の名前を判定する条件をリンクに追加し、ユーザーがどこから操作を開始したかに応じて遷移先のリンクを変えられるようにします。

  1. Users ビューファイルに戻ります。

  2. Users ビューで、state ディメンションを見つけます。

Users ビューに表示された dimension: state {

  1. 既存の state ディメンションの下に、以下のように新しい state_link ディメンションを作成し、html パラメータを追加します。
dimension: state_link { type: string sql: ${TABLE}.state ;; map_layer_name: us_states html: {% if _explore._name == "order_items" %} <a href="/explore/training_ecommerce/order_items?fields=order_items.detail*&f[users.state]= {{ value }}">{{ value }}</a> {% else %} <a href="/explore/training_ecommerce/users?fields=users.detail*&f[users.state]={{ value }}">{{ value }}</a> {% endif %} ;; }
  1. [Save Changes] をクリックします。

これは if-then ロジックに Liquid タグを組み込んだ高度な例です。State ディメンションの値をクリックしたユーザーが現時点で order_items の Explore にいる場合は、同じ Explore にリダイレクトされ、特定のフィールドとフィルタが適用されます。このビューとディメンションを含む他の Explore にいる場合は、Users の Explore にリダイレクトされ、別のフィールドとフィルタが適用されます。参考: Conditional URL Links Depending on Explore

  1. [Order Items] の Explore に移動します。

  2. Users ビューで、[ID]、[First Name]、[Last Name]、[State Link] を選択します。[Run] をクリックします。

  3. state のいずれかをクリックすると、同じ Explore にリダイレクトされ、特定のフィールドとフィルタが適用されます。同じビューとディメンションを含む別の Explore で同様の手順を試し、Liquid ロジックの動作を確認してみましょう。

  4. Order Items ビューに戻ります。

変更を commit して本番環境にデプロイする

  1. [LookML を検証] をクリックしてから、[Commit Changes & Push] をクリックします。

  2. commit メッセージを追加して、[Commit] をクリックします。

  3. 最後に、[本番環境にデプロイ] をクリックします。

[進行状況を確認] をクリックして、上記のタスクを実行したことを確認します。 Liquid を使用した高度なリンク設定

お疲れさまでした

このラボでは、Looker で Liquid を使用してディメンションにリンクを追加し、html パラメータを使用してディメンションの値をリンクボタンとして表示しました。また、メジャーの値の形式をカスタマイズし、リンクに条件を組み込みました。

次のステップと詳細情報

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2026 年 2 月 3 日

ラボの最終テスト日: 2026 年 2 月 3 日

Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボを実行するには、シークレット モードまたはシークレット ブラウジング ウィンドウを使用することをおすすめします。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。