データファースト開発
TRANSCRIPT
データファースト開発
2015.10.14 @ Developers Summit 2015 Autumn
開発チームのためのデータ分析環境の構築と 継続的改善の仕組み
Presented By: Katsunori Kanda(@potix2) CyberAgent Inc.
自己紹介神田勝規(かんだかつのり) 株式会社サイバーエージェント アドテク本部 AMoAd所属 サーバーサイドエンジニア(OS/分散システムが専門) !
potix2@twitter/github ※1 毎月LispMeetup(shibuya.lisp)を開催してます
※2 SparkのMeetupや勉強会を開催してます
やったこと• データ分析の専用ログを出力するようにした • データ分析基盤の構築 • 計算エンジン: BigQuery + Spark(オンプレ) • ストレージ: Google Cloud Storage • UI: Apache Zeppelin + Jupyter
どうしてこの構成になったのか?• 応答性を重視 • BigQueryではIndex的なものの定義が不要 • アドホック分析にはBigQueryを使うのがベスト
• 用途/データソースによって環境を使い分ける • 機械学習を使いたいときはSparkやscikit-learn • 分析ログに含まれないデータを調べたいときはSpark
応答性を重視する理由• フィーリングは重要 • 直感は、案外正しい • 根拠がない直感はダメ
• 結果を得るのに時間がかかると • 調査コストと得られるメリットを天秤にかけてしまい、遊びのある調査ができない
• 思いついてから10分以内には結果を見たい
「使い方」を共有するために
• チュートリアルを開催 • BigQueryハンズオン
• ドキュメント化 • QiitaチームにTipsを共有
• ノートブックを活用 • 他の人が分析した手順がノートブックとして残っているので、参考にしやすい
結局、エンジニアは データ分析基盤を何に使うのか?• 開発項目の選定 • 現状をより正確に把握 • 開発すべき根拠を導出
• システム改善の事前・事後の評価 • 改善施策の効果を客観的に評価
• 運用フローの改善
絶賛試行錯誤中
これからの課題• データの評価/分析のレベルをあげる • 得られた結果から何が言えるのか?読み取る力をあげる。(統計学の基礎知識など)
• 可視化 • 可視化されることで新たな知見が得られる
• ワークフローの自動化 • 手順が複雑になるとデータ分析が属人化する • ノートブックを定期実行ジョブ化したい