こんにちは。インフラエンジニアの永井(shnagai)です。
今回は、ここ数ヶ月で進めていたコネヒト社でのデータ民主化について書こうと思います。 ※技術的な話はあまりなく、社内向けプレゼンに使った資料をベースにした内容です。
コネヒト社は、ママリというママ向けのアプリとWebを運営しており、 もちろん様々なデータを持っているのですが、データ活用に関して下記のような課題を抱えていました。
データに関する課題
1. データが色々なところに存在している
BigQuery,Mixpanel,GA,RDS等様々な場所にデータが点在しているので一望する事が難しく、どこに何があるのかも一部の人しかわからない。 tableau経由で様々なデータソースにアクセス出来る環境はありましたが、その一部のメンバにデータ抽出を依頼する事がコストとなっていました。
2. エンジニアやデータに詳しいディレクターに頼まないとデータが出せない
1と少し近いのですが、データの場所も出し方もわからないのでデータ抽出をしたい時はデータ抽出依頼が必要となっていて、気軽に思いつきのデータを出してもらうのは敷居が高い状況でした。 また、データ抽出の得意なディレクタの時間がデータ抽出業務で逼迫されるという状況も起きていました。
3. 抽出データの保存先が多種多様でストックが出来ない
スプレッドシートやそれぞれのデータソースにグラフやデータが点在していました。 新しくジョインしたメンバは、中々データの所在が把握出来ない歯がゆい状態でした。
一緒に、データ民主化を進めていたエンジニアと話していたところ社内で下記のような悪循環が起きているのではという仮説立てをしました。
データとか使って検証できたら良し悪しを判断しやすい! but データ出せないと「高度に詰めて考えなきゃいけない」 but 「データを出す」には、人に依頼しないといけないから、「依頼コストが高い」という悪循環・・・
理想の姿
- データを出すことに対する敷居を下げる↓(データの民主化)
- 各担当領域でのアイデア出し/提案/改善に定量的な側面をもたせやすくして、みんな仕事がしやすくなるといいな
- 非エンジニアがSQLをある程度使いこなせている状態にもっていきたい
「もしデータがかんたんに自分で出せる」と ↓ 「考えまくる前にデータ出してサクッと確かめてみよ」ができるから ↓ 「アタリ」っぽかったら深掘りすればよい!ハズレだったら、すぐ忘れる => データの民主化が達成された世界は素敵!! (&「データで考える」は慣れでしかないので、やっているともっと感じがよくなっていく
Redash
データ民主化の切り札となるBIツールにはRedashを採用しました。 Redashは様々なところで事例も出ていますので詳細は説明しませんが、 下記のような利点から導入を決めました。
データ閲覧のインターフェースを出来るだけ、統一することが一番大事だと思っていて、 よりよいものが出てきたらRedashから乗り換える可能性は大いにあります。
Redashの良いところ
- 出したデータをそのままビジュアライズ出来る
- SQLの再利用が出来る
- URLをそのままシェア出来る
- 通知やCSVエクスポートも可能
- スケジュール機能を使って定期実行も出来る
- 無料!!
技術的な面
- AWSのAMIが提供されている構築コストはほぼゼロ
- Google認証のみにすることでセキュリティを担保出来る
- Pythonデータソースがあるので、エンジニアのアイデア次第で何でも出来る
- 開発も活発で便利な新機能が追加されている
TIPS
簡単にデータソース間のjoinが出来る
データ分析をしていると、例えばマスタDBのデータとアクセスログをjoinしたいというようなケースが頻繁に現れます。 Redashでは、Query Resultsという機能を使うことで簡単にデータソース間のjoinが出来ます。
SELECT a.name, b.count FROM query_123 a JOIN query_456 b ON a.id = b.id
参照: https://redash.io/help/user-guide/querying/query-results-data-source
slack botの活用
Redashは標準で、slackのインテグレーションがあります。 https://redash.io/slack
RedashのクエリURLをslackに貼り付けるとそのままRedashでグラフが表示されます。 これのおかげで、一々画像キャプチャを撮ってslackに貼り付けるといった手間が省略出来ます。 また、slackのリマインド機能と連携することでslack上で簡単に定点観測が出来たりします。
クエリの再利用
Redashの良いところにクエリのフォーク機能があります。 いきなり自分で一からクエリを書くのは敷居が高いですが、 他の人のクエリを見て勉強したりコピペから少し変えてみるといった事ができ気軽に始められます。
現在の状況
ちょうど振り返りのような機会があり、社内で下記のようなフィードバックをもらいました。
- Redashを導入したことで見れる数字がめちゃ増えてる
- 本当にデータが民主化され、職種問わずみな興味を持っている
- データにアクセスしやすくなったので、視野が広がり実務に役立っている
ちなみに、12月にRedashを導入したのですが、現在600クエリ&80ダッシュボードが運用されています。 ひとまずデータを見ることの敷居を下げることはRedashの導入で実現出来たのではないかと思っています。
新しくジョインしたメンバも、Redashにログインすればどのようなデータがあるのかを一望し即座に分析を行うことが出来る状態になりました。
また、社内で有志のSQL勉強会が開かれていて実データを元に日々非エンジニアもSQL力向上を図るという流れも生まれました。
まとめ
今回は、社内でRedashを導入してデータ民主化を実現した話について書きました。 私自身、営業やディレクターが作ったクエリを眺めていると、自分にはない発想に出会ったり気づきがありますし面白いです。 データが、オープンであることはとても大切だなと実感しています。 今後は、ETL周りを整備して、より早くデータを出せるような基盤を作っていこうと思っています。
コネヒトではコンテナ周りの基盤を整備したりサービス改善を行うエンジニアを募集しています。 少しでも興味もたれた方は、是非気軽にオフィスに遊びにきていただけるとうれしいです。