🏷️

【Looker】ラベルのうまい使い分け

2021/04/14に公開

はじめに

皆さん、今日もLooker使ってますかー? ^^

今回は、Lookerのエクスプローラー画面で表示される様々なラベル名に関する
LookMLのナレッジ共有になります。

今回書きたかったこと

LookMLのModelファイルとViewファイルで記述するラベル名について
その記述の組み合わせ方法やラベルの命名規則を工夫することで
エクスプローラーでの表示のされ方に雲泥の差が出ることを経験しました。

Lookerを活用してデータ分析するユーザに使いやすい環境を提供するために
LookMLでのラベルのうまい書き方を伝えたいというのが本投稿の経緯になります。

利用環境

Product version
Looker 21.4.17

ラベルの種類をさらりと紹介

  • 下記はModelファイルに記述するラベル設定になります。
Model
 label・・・❶ 
 explore
  group_label・・・❷ 
  label・・・❸
# 説明 公式サイト
[Explore]タブで一覧表示されるグループの表示名 label (for Models)
❶よりも優先されるグループの表示名 group_label (for Explores)
[Explore]タブで一覧表示されるエクスプローラーの表示名 label (for Explores)
  • 下記はViewファイルに記述できるラベル設定になります。
View
 view
  label・・・❹
  dimension
   group_label・・・❺
   label・・・❻
   group_item_label・・・❼
# 説明 公式サイト
エクスプローラー内で表示されるビューの表示名 label (for Views)
ビュー内のディメンションをまとめたグループの表示名 group_label (for Fields)
ビュー内のディメンションの表示名 label (for Fields)
❻よりも優先されるディメンションの表示名 group_item_label

どんな感じになるかというと...

  1. 下記のようにModelファイルを記述します。
Model_Sample
connection: "xxxxxxxxxxx"
label: "マスターデータ"
include: "*.view.lkml"

explore: test1_master {
  label: "テスト1マスター"
}
explore: test1_1_master {
  group_label: "マスターデータ (開発用)"
  label: "テスト1_1マスター"
}
explore: test1_2_master {
  group_label: "マスターデータ (開発用)"
  label: "テスト1_2マスター"
}
explore: test2_master {
  label: "テスト2マスター"
}

【要件】

  • テスト1マスターテスト2マスターマスターデータというグループに所属させます。
  • テスト1_1マスターテスト1_2マスターマスターデータ (開発用)というグループに所属させます。
  1. LookerのExploreタブを開くと下記のようになります。

【設計する上でのポイント】

  • 同じカテゴリのエクスプローラーは、グループでまとめると可読性を上げることができます。
  • 全体的に共通利用するグループ名は❶で指定し、個別に指定したいグループ名は❷のgroup_labelで指定します。(❷の方が優先されます)
  • ❸のlabelを利用することでexploreで指定したビュー名ではなく、ラベル名で表示させることができて、可読性を上げることができます。
  1. 下記のようにViewファイルを記述します。
View_Sample
view: test2_master {
  label: "テスト2マスター"
  sql_table_name: `project_name.dataset_name.table_name` ;;

  dimension: test1_field {
    group_item_label: "てすとふぃーるど1"
    label: "テストフィールド1"
    type: string
    sql: ${TABLE}.test1_field ;;
  }
  dimension: test2_field {
    label: "テストフィールド2"
    type: string
    sql: ${TABLE}.test2_field ;;
  }
  dimension: test3_field {
    group_label: "テストグループ"
    group_item_label: "てすとふぃーるど3"
    label: "テストフィールド3"
    type: string
    sql: ${TABLE}.test3_field ;;
  }
  dimension: test4_field {
    group_label: "テストグループ"
    label: "テストフィールド4"
    type: string
    sql: ${TABLE}.test4_field ;;
  }
}

【要件】

  • ビュー名はエクスプローラー名と合わせてテスト2マスターとします。
  • ディメンション名について、下記の4パターンの組み合わせを行います。
    (1) ❻のみでディメンション名を設定
    (2) ❻と❼の両方でディメンション名を設定
    (3) ❻のディメンション名と❺のグループ名を設定
    (4) ❻と❼の両方でディメンション名、❺のグループ名を設定
  1. Lookerの[Explore]タブから[テスト2マスター]を開きます。

【設計する上でのポイント】

  • ❹のビュー名は、❸のエクスプローラー名を合わせておくと可読性が上がります。
  • dimensionで指定した名称のままだと可読性が悪い場合は❻や❼で論理名をつけします。
  • ❼はExplore内のディメンション名としてのみ利用できる論理名です。
  • 同じカテゴリのディメンションは、グループでまとめると可読性を上げることができます。
  • ディメンション名において、❻と❼を両方設定すると❼が優先されます。
  • 同じ意味合いのフィールドでも異なる物理名の場合、❻で論理名を揃えることができます。

まとめ

さて、いかがでしたでしょうか?
なるべく分かりやすく動作をお伝えしたかったので、かなりシンプルな内容になっています。

しかし、実際には本番で運用しているとアドホックな分析が進み
色々な部署でダッシュボードが作成され、多くのオブジェクトを運用管理していくことになります。

その際、LookMLの可読性とメンテナンス性とのトレードオフについて
どのポイントでバランス取るか設計していくことになると考えています。
その一助になれば幸いです^^

Discussion