[Looker21.10新機能]テーブル計算でcase/whenが使用出来るようになりました #looker

2021.07.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

さがらです。

先日、Lookerの最新バージョン21.10がリリースされました。

このリリースノート中の「Looker Expressionとして、テーブル計算で case / when が新たにご利用いただけるようになります」について、本ブログでより詳細にまとめてみたいと思います。

テーブル計算とは?

簡単に説明すると、Explore上で選択したフィールドに応じて集計された結果に対して、別の計算式を入れることが出来る機能です。

  • 2つのメジャー列から割合を算出
  • オフセット関数と合わせて、前月比などを算出

といったことが可能な機能ですね。

何が出来るようになったの?

さて、本題のcase/whenが追加されたことによって何が変わったかについて見ていきたいと思います。

まず前提として、今までもifがテーブル計算では使用できたので出来ることが増えたというわけではありません。

しかしifではなくcase/whenを使用することで、記述するテーブル計算の見栄えが段違いに良くなります。

例:売上に応じたランク分け

例えば、下図のようにブランドごとの売上を集計しており、売上の値ごとにランク分けすることを考えてみます。

まず、ifを使用した場合は下図のようになります。

Lookerのテーブル計算のifの構造上、複数のifをネストしないといけなく、正直わかりづらいです。実際私も作成するときに括弧が足りずエラーを出しました。笑

一方で、21.10のアップデートで追加されたcaseを使用した場合は下図のようになります。

先程のifと違ってネストする書き方にならないため、書きやすさも読みやすさも段違いに良くなったかと思います!

でも、テーブル計算使われすぎたらガバナンスが…

こういったテーブル計算の機能を紹介することで「あれ、LookerってLookMLでデータの定義のガバナンスを効かせているから良いんじゃ…?」と思われる方もいるかもしれません。

これはそのとおりで、テーブル計算をユーザーに多用されてしまうと、せっかくLookMLで定めた定義に基づくデータガバナンスが効かなくなってしまいます。

しかし今回の21.10から、System ActivityからCustom Fieldというディメンションを使用することで、ダッシュボード上で使用されているテーブル計算を確認することが出来るようになりました。

Lookerの管理者の方は定期的にこのフィールドを用いてテーブル計算が使われすぎていないかを確認して、もし使用頻度が高いテーブル計算があれば、対象のユーザーに連絡してLookML化を検討することがよいと思います!

最後に

Lookerはほぼ毎月アップデートが入って、かつ何かしら良いなと思える機能が含まれているのがいいなと私自身も感じています。

今後もアップデート情報をチェックして、「これは!」と思える機能があればブログ化していきます。