1. SAMUKEI

    No comment

    SAMUKEI
Changes in body
Source | HTML | Preview
@@ -1,62 +1,83 @@
こんにちは![株式会社Diverse](https://diverse-inc.co.jp/)で働いているsamukeiです。
[Diverse Advent Calendar 2018](https://qiita.com/advent-calendar/2018/diverse)
-1日目の記事として、Diverseで導入したLookerの話をします。
+xx日目の記事として、Diverseで導入したLookerの話をします。
# Lookerとは?
日本法人立ち上げが2018年9月と日本ではまだ馴染みが少ないかなというサービスです。 [^1]
後述しますが非常な強力なツールのため、海外のスタートアップでの利用が広がっているなど、日本でも認知され活用されていくと考えています。
[^1]: [無名のBIツール、旬のスタートアップがこぞって採用する理由](https://tech.nikkeibp.co.jp/it/atcl/column/15/061500148/092000129/)
# Diverseの課題
* TreasureDataを利用しているが、分析しにくいテーブル構造
* 集計はスプレッドシート運用
* 分析基盤もベースはスプレッドシート運用
* Kibana/Re:Dashも利用はあるが、一部プロダクトで頑張って用意して放置
* クエリを叩けるのがエンジニアだけで、エンジニアに毎回依頼が来る
* クエリを叩けるのがエンジニア以外いないので、KPIを追うための数値を用意するまでにリソースが必要
* 数値の根拠が属人化しがち
# 知ったきっかけ
[エンジニアを魅了する次世代 BI ツール『Looker』を Quipper が導入した理由(わけ)](https://quipper.hatenablog.com/entry/2018/06/04/080000)
[プロダクトのリリース前から新ダッシュボード「Looker」の導入に踏み切ったわけ](https://tech.mercari.com/entry/2018/08/22/155059)
この2つの記事を見てLookerの存在を知り、現状抱えている課題の一部でも解決ができるのでは!?
・・・と非常に興味がわいてデモの登録を行いました。
-### 恥話
+### 恥話 - ここは読まなくても大丈夫です(^o^)
デモの登録後にデモ版のリンクがくるのかなーと思っていたらLooker社の営業?的な人からメールが来ました。
オンラインMTGを組むから日程を教えてくれ的な文章で、あれ?デモ版使うのにMTG必要なの?と思いつつもチーム内に英語でのオンラインMTG出来るレベルの英語力がない旨を伝えました。
そうしたやり取りをした後、日本語でのフォローもできるよ!と日本の株式会社ルッカーの営業の方と繋いでいただいて、来訪いただきました。
Lookerの機能、優位点などMTGでご説明いただいた後に「これでデモンストレーション」は終わりです。というワードを聞いて初めてデモ版利用ではなく、デモンストレーションの申請をしたことに気づきました(恥)
# 実際に触ってエンジニアとして感動したところ
実際に活用できるまでLookerの方からのトレーニングがあり、まだトレーニング期間中ですが感動する箇所が何箇所もあるので共有します。
-* LookML
+### LookML
-Lookerの特徴といえる、モデル定義をyaml形式で記述できる機能です。
-そこまで学習量は多くないのですが、学習すること
-gitでのバージョニング、Develop Mode/Production Modeによる定義中の利用者への影響させない仕組みなど十分に備わっています。
-dimensionでの
-division
-
+Lookerの特徴といえる、SQLの抽象化のモデリングレイヤです。
+モデル定義をyaml形式で記述できるため、エンジニアであれば抵抗感なく学習することができると思います。
-* Expoler
+各columnを `dimension` として定義でき、ラベリングすることで利用者にわかりやすいワードとして提供することができます。
+以下の例では、利用者(Expoler)からは `member_id` ではなく、 `メンバーID` として表示されます
+
+```
+ dimension: member_id {
+ label: "メンバーID"
+ primary_key: yes
+ type: number
+ sql: ${TABLE}.member_id ;;
+ }
+```
+
+`dimension` で定義した値を変数的に `measure` で参照することができます
+以下の例では、`COUNT(DISTINCT member_id)`と同等の定義となります。
+
+```
+ measure: member_count {
+ label: "メンバー数"
+ type: count_distinct
+ sql: ${member_id} ;;
+ }
+```
+
+また、LookMLのGitでのバージョニング、Develop Modeでの変更はProduction Modeによる定義中の利用者への影響させない仕組みなど必要な機能は十分に備わっています。
+
+### Expoler
BIツールとしての機能も十分に備わっています。UI上でポチポチするだけでグラフ表示が可能です。
Re:DASHではクエリを作る。という点でエンジニア以外の職種が触れなかったのですが、Lookerは他の職種の人が"とっつきやすい"UIを提供しています。
-しかも、Expolerで探索したものをマージできる
-
+しかも、Expoler単体で探索した結果同士をマージ(副問い合わせの結果でJOINするようなイメージ)することができる強力な機能を持っています。
# 俺たちの戦いはこれからだ!
前述したとおり、まだまだトレーニング期間中なので、エンジニア陣 + プロダクトオーナー陣も学習途中です。
ですが、スプレットシートで頑張ってグラフを出すのではなく、出来るだけLookerで追える数字を出すような文化の定着を進めています。
Lookerは強力なツールですが、スプレッドシートの優位性がある部分(スプレッドシートのほうが過去N年での比較などでは使いやすい)など、方針を決めつつツールに振り回されずに有効活用していきたいと思っています。