この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
さがらです。
Lookerではdimension group
を使うことで、月や日など、時間系のフィールドを簡単かつまとめて作成することが出来ます。
しかし、dimension group
で作られるフィールドは英語表記であり、馴染みのないビジネスユーザーからすると「MonthとMonth Numって何が違うの?」となってしまう可能性も0ではないと思います。
そこで、時間系のフィールドの表記をどうにか変更できないか試してみたので、本エントリでまとめてみます。
通常のdimension group
まず振り返りも兼ねて、通常のdimension groupの場合はどう作られるのか確認します。
下記のようにdimension_groupというパラメータで定義して、timeframes
パラメータ内で必要な粒度の名称を書くだけで、時間系のフィールドがまとめて定義が出来るものですね。
dimension_group: created {
type: time
timeframes: [
raw,
time,
hour_of_day,
date,
day_of_week,
day_of_week_index,
day_of_month,
day_of_year,
week,
week_of_year,
month,
month_name,
month_num,
quarter,
year
]
sql: ${TABLE}.created_at ;;
convert_tz: no
}
どうやってdimension groupの表記を変更するのか?
さて本題です。どうやってdimension group
の各フィールドの表記を変えるのか?
…方法は、「自力で定義する」しかありません。
ということで自力で時間系のdimension group
を定義する方法を説明します。
自力で定義する方法
直球ですが下記LookMLのように、書けばOKです。サンプルとして、2つのdimensionを定義しています。
dimension: created_month{
group_label: "created_お手製"
group_item_label: "年月(YYYY-MM)"
type: date_month
sql: ${TABLE}.created_at ;;
}
dimension: created_month_num{
group_label: "created_お手製"
group_item_label: "月(MM)"
type: date_month_num
sql: ${TABLE}.created_at ;;
}
ポイントとしては、以下4点が挙げられます。
group_label
パラメータで関連する時間系フィールドに共通する名称をつけること(例:レコード更新時刻、など)group_item_label
パラメータで、対象のExploreを使用するユーザーにとってわかりやすい名称をつけることtype
パラメータで、必要な値だけを取得できるようなtypeを指定すること- typeについては公式Docも参考にしてください。基本的にdimension_groupで定義できるtimeframesと同じものは一通りあるはずです。
- (※任意)各dimensionの名称は、
created_month_num
のようにdimension_groupで定義するtimeframesと同じものとすること- これにより通常のdimension_groupと同じように置換演算子で参照できます。
最後に
デフォルトの英語表記そのままの方がLookMLの記述量も減りますし可読性の向上にも繋がるのですが、Lookerを使う上ではビジネスユーザーに疑問を抱くことなくスムーズにExplore使ってほしい、と私は考えています!
全Lookerユーザーに推奨するような内容ではないですが、ビジネスユーザーから「使い方がわからん」と投げ出されてしまうくらいならば、こういった方法でフォローしてあげることも1つの手かと思います。
少しでも参考になれば幸いです。