VisasQ Dev Blog

ビザスク開発ブログ

目的とツールから考えるデータ分析基盤の選び方について by MonotaRO TechTalk

二回目の登場となります.

ビザスクでデータエンジニア兼インフラ等を担当しています, 中川と申します.

Python・エンジニア界隈では「野球の人」と呼ばれています. 詳しくは「Python 野球」で検索してみて下さい.

本エントリーでは,

  • 目的とツールから考える,データ分析基盤の選び方
  • ビザスクにおける活用事例

について,先日株式会社MonotaRO(モノタロウ)様主催のIT勉強会「MonotaRO TechTalk」でお話させて頂いた内容を元に紹介します.

おしながき

  • [資料]Py "Baseball" Data入門〜サービスを支えるデータ分析基盤
  • データ分析の目的とツールの選び方
  • ビザスクにおける,データ分析ツール
  • まとめ&MonotaRO TechTalkについて

[資料]Py "Baseball" Data入門〜サービスを支えるデータ分析基盤

MonotaRO TechTalk #4「データ分析」にて用いたスライドを元に解説いたします.

※このエントリーの主旨の都合上,野球(セイバーメトリクス)については取り扱いません.あしからず.

データ分析の目的とツールの選び方

前回のRe:dashに関するエントリーにおいても紹介させてもらいましたが,私たちビザスクのチームでは,日々の数字やKPIに基づいた,客観的なFactを元に施策を実施しております.

一方,日々の施策とは別に自然言語処理ディープラーニングを元に価値あるプロダクトを開発する目的で開発チーム内で検証・実験を行ったりしています(こちらはちょっと前に村上さんのエントリーで紹介させてもらいました).

これらの事例を元に,データ分析という文脈における,ビザスク(&私)のデータ分析の目的とツールの選び方の考えは以下のとおりです.

何のためにデータを分析するのか?

真っ先に考えるのは, 何のためにデータを分析するのか?, つまり目的です.

この言葉だけを書くと「なんだ当たり前じゃないか」と取られがちですが,

  • Jupyterって奴がイケてるらしいから試してみようかな?
  • 他のサービス・会社さんでもRe:dashってやつを使ってるっぽいので真似してみよう

などなど, いつの間にか 目的(データ分析)から手段(ツールとかライブラリ)の話に移ってしまいます .

新しいモノ・ツールを試したくなるのはエンジニアの性とも言えますが(私もそうです),ここは冷静になってまず目的を整理する所からはじめるようにしています.

具体的には,

  • これからやろうとする施策の主旨・目的をQiita Team上で共有
    • 目的(データ分析の種類)を元に,ツールやライブラリの調査結果をまとめたり,スコープを決定.
    • (データ分析に限りませんが)大きい施策に関してはインセプションデッキやデザインドックなど,目的に合ったフォーマットを活用.
  • 小さめの施策についてはSlackや雑談(口頭)を元に壁打ち
    • スコープ,特にユーザーのニーズやコードの修正方針について言葉のキャッチボールですり合わせ
    • 技術に凝りすぎて,オーバーテクノロジー(技術の無駄遣い)になりすぎないように気をつける.

といった事を行っております.

余談ですが,新技術(一部,技術のムダ遣い含む)については,CTOの花村の方針で,毎週水曜日のエンジニア勉強会にて試した結果を披露&ディスカッションを行うようにしています.

(次の施策のヒントにつなげる&息苦しくならない用にという意味合いもあります)

分析ツールを選ぶ際の考え方(例)

こうした施策の積み重ねの中で,

「おやおや,ツールとライブラリに選ぶパターンがあるぞ!」

という事に気が付き,実際にマップにしてみた所いい感じだったのでまとめてみた絵がこちらです.

data-analytics-map

読み方としては,

  • 左下に近ければ近いほど, 非エンジニア(プランナー・営業・事業開発など)向けなお手軽な手段
  • 右上に近ければ近いほど, エンジニア向け≒PyDataらしい手段(ツールとライブラリ)プログラマブルな世界

となります.

非エンジニア向けのデータ分析基盤

主なツール・ライブラリ

沢山あるので漏れがあるかもしれません.

特徴

  • 日々のKPI分析に向いている
    • マッチングの数や率
    • ユーザーの傾向分析
  • 導入が楽
    • 初期構築のみでほぼ全ての機能が使える
    • クラウド・オンプレ両方選択可能
  • プログラミングが不要

エンジニア向けのデータ分析基盤

主なツール・ライブラリ

同じく,沢山あるので漏れがあるかもしれません.

特徴

  • 実験的(R&Dに近い)分析に強い!
    • その場でクエリーを書いて可視化
    • 機械学習等のライブラリを回して分析
    • 上記だとGrafanaやKibana以外がその特徴を持つ
  • ミドルウェア・インフラに近いレイヤーの監視に強い
    • Grafana, Kibanaなど
    • アクセスログなどを集めた結果を可視化してドン!みたいな目的に最適
  • エンジニアの道具としての使いやすさ
    • Githubやライブラリ管理(pipなど),Dockerイメージを元に構築可能
    • 手元(PC)で動かす・オンプレやクラウドで運用するなど弾力的に運用可能
  • プログラミングorエンジニア的な知識・ノウハウが必須

結論としては,

ユーザーがエンジニアのみか非エンジニアも含むのか,分析が日常的なのかそれとも実験的なのかによってツールを使い分けるのがベストかと思います!

現実的には投入できるリソース(人×時間)もあるかと思いますが,その際はクラウドサービス(PythonicなRe:dashやJupyterもクラウドサービスがあります)を活用するなどして実際に運用するまでの構築コストを圧縮できるかと思います.

なお,エクセル(又はスプレッドシート)形式のモノは, 「プログラマブルじゃないけど自由」という聖域でした(小声)

ビザスクにおける,データ分析ツール

参考までに,ビザスクではデータ分析のツールとして以下を活用しています.

日々のKPI監視・分析

実験的なタスク・分析など

  • Jupyter

エンジニアチームは全員Pythonを書いていることもあり,日々のKPIはRe:dashに,機械学習自然言語処理といったものはJupyterに寄せられれば!

...と私は思っていますが,最近はAirBnb謹製のSuperset(このエントリーで知りました&こちらもPython製)といった新種やクラウドサービスなどもあるので,再び目的に合わせて選び直す!などもアリかなとも思っています.

まとめ&MonotaRO TechTalkについて

まとめ

データ分析基盤は,

  • 分析の主旨・目的を明確に(日常的な監視なのか実験なのか)
  • ユーザー視点で選ぶ(非エンジニアなのかエンジニアなのか)
  • (なんやかんやで)この分野はPythonが強い

という事かな?と思いました.

ビザスクの成長と共に,これらの基盤や手段も変わってくると思いますので,日々の情報収集と勉強・実践を続けていけるように精進したいと思います!

【おまけ】MonotaRO Tech Talk

最後になりましたが, MonotaRO TechTalkの様子と感想を少しだけご紹介します.

発表当日(11/25)の様子

当日は寒い中15人のゲスト+10〜20人ちかくのモノタロウ様メンバー(エンジニアメンバーが多数いました!)の満員御礼でした!

※写真は株式会社MonotaRO(モノタロウ)様より提供いただきました,ありがとうございます!

monotaro-tech

感想

  • テーマの「データ分析」および「PyData」への関心が高かったのか,大勢の人が集まっていた(感激)
  • データ分析基盤の話の他,野球統計学を例にした分析の推論・仮説に関する質問がいくつかあった(最近のトレンドや考え方など)
  • pandas(Pythonのデータフレームライブラリ)を駆使して業務改善ができました!など実際の業務に関連したノウハウの交換もあった
  • ビアバッシュは学生さんの飛び入りLT「サッカーデータ分析」の話で盛り上がった
  • なお,野球ファンは参加者全体の1割程度でした(小声)

最後までお読みいただき,ありがとうございました.

データ分析&可視化に強いPythonで知見のデータベースを共に作りませんか?