ラベルでの Liquid の面白い使い方

このページでは、Liquid 変数を受け入れる label サブパラメータの一部を指定して Looker の parameter フィールドを使用する便利な方法に重点を置いて説明します。

このページの例では、Liquid についての理解が必要です。Looker での Liquid の使用については、Liquid 変数リファレンス ドキュメント ページをご覧ください。

動的ビュー名に view_label を使用する

Looker の view_label パラメータは、Explore フィールド ピッカーで、よりコンテキストが明確なわかりやすい名前でディメンションをグループ化するために使用します。ビューラベルの詳細については、(フィールドに関する)view_label ドキュメント ページをご覧ください。

同じ view_label をディメンションに割り当てると、ユーザーに対して Explore が簡素化されます。明確でわかりやすいフィールド グループを使用することで、ユーザーが必要なデータを見つけられます。

例: Liquid view_label による DRY(繰り返しを避ける)コードの書き方

たとえば、[在庫項目] という Explore の view_label財務 & 会計の下に編成されているフィールドがあるとします。

dimension: cost {
  view_label: "Finance & Accounting"
  type: number
  sql: ${TABLE}.COST ;;
}

dimension: cost_ex_vat { view_label: "Finance & Accounting" type: number sql: ${TABLE}.COST_EX_VAT ;; }

dimension: cost_eur { view_label: "Finance & Accounting" type: number sql: ${TABLE}.COST_EUR ;; }

ユーザー向けに view_label財務 & 会計資金ゾーンに変更するとしたらどうでしょうか。Liquid を使用すると、コードを繰り返し書き換えるのを防ぐことができます。

Looker の parameter フィールドを使用して、目的のビュー名に関する一種の疑似変数を作成できます。parameter でビュー名を変更すると、すべてのフィールドが更新されます。

parameter: view_label {
  type: string
  default_value: "The Money Zone"
}

dimension: cost { view_label: "{% parameter view_label %}" type: number sql: ${TABLE}.COST ;; }

dimension: cost_ex_vat { view_label: "{% parameter view_label %}" type: number sql: ${TABLE}.COST_EX_VAT ;; }

dimension: cost_eur { view_label: "{% parameter view_label %}" type: number sql: ${TABLE}.COST_EUR ;; }

ビューラベル「資金ゾーン」の下に編成された費用、費用(ユーロ)、消費税抜き費用が表示されている在庫項目の Explore フィールド ピッカー。

注: メニューに引用符が表示されないようにするには、parametertype:unquoted に設定し、default_value をスペースが含まれていない文字列(例: The_Money_Zoneにする必要があります。パラメータが type:string の場合は、引用符が表示されます。

動的フィールド ラベル

フィールド名の解釈が異なる複数のユーザーのグループが存在する場合があります。たとえば、ユーザーによっては売上総利益を営業利益と呼ぶ場合がありますが、別のユーザーはユースケースに応じて標準利益と呼ぶ場合もあります。

フィールドの名前は、ユーザー属性Liquid 変数の組み合わせによってユーザーごとに異なって表示される場合があります。

例: ユーザー属性ごとに異なるラベル

前の例で推定すると、ビジネス ロジックの違いに対応するため、一部のユーザーには [売上総利益] フィールドが [Standard Margin] として表示され、別のユーザーには [営業利益] として表示されます。次の LookML は、ユーザー属性と Liquid 変数を利用します。

dimension: gross_margin {
  label: "{% dynamic if _user_attributes['customer'] == 'A' %} Standard Margin
    {% elsif _user_attributes['customer'] == 'B' %} Operating Margin
    {% dynamic else %} Gross Margin
    {% dynamic endif %}"
  type: number
  value_format_name: usd
  sql: ${sale_price} - ${inventory_items.cost} ;;
}

LookML に基づいて、[売上総利益] フィールドはユーザー A の Explore フィールド ピッカーには [営業利益] と表示されます。

LookML に基づいて、[売上総利益] フィールドはユーザー B の Explore フィールド ピッカーには [Standard Margin] と表示されます。

また、このパターンを使用して、ユーザーごとに簡単なローカライズを行うこともできます。次の例をご覧ください。

例: 複数の Explore のカスタム フィールド名

この例では、前の例の手法を組み合わせて、ユーザーのリージョンに応じて異なるフィールド ラベルを持つ Explore を作成します。

この例では、Finance East と Finance West という 2 つのリージョン チームが Company Sales という Explore を使用しています。どちらのチームも、レポートで利益総額 measure と総収益 measure を使用する必要があります。

measure: total_profit {
  label: "{{ _explore._name}}: Profit"
  type: sum
  sql: ${profit} ;;
}

measure: total_revenue { label: "{{ _explore._name}}: Revenue" type: sum sql: ${sale_price} ;; value_format_name: usd }

ただし、各チームはフィールド名にチームの地域を反映させたいと考えています。

デベロッパーは、Finance East のユーザーにはある方法で、Finance West のユーザーには別の方法でフィールド名を表示できます。DRY LookML では、次の Liquid パラメータを使用することでこれを実現できます。

  • from パラメータは、Explore のベースになるビューを指定します。
  • explore_label を使用すると、2 つの別名の Explore(「Company Sales」)に同じ名前を表示することで、両方のチームに同じデータ探索のエクスペリエンスを実現できます。
  • measure のラベルは、Explore の名前をキャプチャして表示する {{ _explore._name}} Liquid 変数を使用することで、チームのリージョンに応じて変化します。
  • Explore:

    explore: Finance_East{
      from: order_items
      label: "Company Sales"
      view_label: "The Money Zone"
    }
    

    explore: Finance_West{ from: order_items label: "Company Sales" view_label: "The Money Zone" }

    データ探索時に、Finance East チームには [利益総額] が [Finance_East: Profit] と表示され、[総収益] フィールドが [Finance_East: Revenue] と表示されます。

    データ探索時に、Finance West チームには [利益総額] が [Finance_West: Profit] と表示され、[総収益] フィールドが [Finance_West: Revenue] と表示されます。

    ユーザーへのフィールドの表示方法をカスタマイズするその他の方法については、Explore メニューとフィールド ピッカーの変更のドキュメント ページをご覧ください。