Slide 1

Slide 1 text

Data Meetup #1 データ分析基盤を開発・運用する エンジニアリングチームの技術活用とその変遷 @toita

Slide 2

Slide 2 text

01 02 03 04 Agenda | 自己紹介 & チーム紹介 スタディサプリのデータ分析基盤 次世代データ分析基盤構想 まとめ

Slide 3

Slide 3 text

01 自己紹介 & チーム紹介

Slide 4

Slide 4 text

戸井田 明俊 @toita / @toitech ソーシャルゲーム開発会社でオンプレ Hadoop 上に構 築されたデータ分析基盤の開発・運用に従事した後、 2017年に株式会社リクルートマーケティングパートナー ズに入社。 スタディサプリでは各種データ連携の拡充や分析者の 使いやすい環境を目指した基盤整備に加え、データを 活用した機能開発などを担当。 1児の父。趣味で特定のラーメン屋に似たジャンルのお 店を探せる検索エンジン※ を開発中。しかし進捗は芳し くない。 ※ https://yumy.tokyo

Slide 5

Slide 5 text

企画提案 研究開発 実証実験 性能改善 本番実装 本番運用 効果検証 要因分析 施策立案 分析 データサイエンティスト エンジニアリング データエンジニア R&D データリサーチエンジニア

Slide 6

Slide 6 text

➔ データとエンジニアリングでユーザーにより良い学習体験を届ける ➔ データ分析基盤の開発・運用、各種レポーティング、サービス開発など ◆ Treasure Data (Hive / Presto), BigQuery, Embulk, Luigi, Digdag, Jenkins, Python etc... ◆ 8月から3人 => 5人体制に! エンジニアリングチームの役割

Slide 7

Slide 7 text

02 スタディサプリのデータ分析基盤

Slide 8

Slide 8 text

現在のシステム構成 Treasure Data (Hive / Presto) レポーティング 分析 Kinesis Lambda TD SDK クライアントサイドログ サーバーサイドログ マスタデータ

Slide 9

Slide 9 text

➔ レコード数:10億超(動画視聴ログ) ➔ テーブル数:450+ ➔ ジョブ数:80+ / day(Presto)、 10+ / day(Hive) ➔ 利用者:プロダクト・マーケ・経営企画などサービス関係者全般 活用状況

Slide 10

Slide 10 text

利用者別クエリ管理(ワークフロー)の使い分け Luigi + Jenkins Digdag / TD Workflow TD 登録クエリ 開発者・提供元 Spotify OSS (Treasure Data) Treasure Data 利用者 データグループの エンジニアリングチーム データグループの 分析チーム データグループ以外の 組織 エンジニア データ分析者 非エンジニア・分析者 言語・UI Python YAML GUI 利用者の用途やスキルに合わせた実行環境を提供

Slide 11

Slide 11 text

利用者別クエリ管理(ワークフロー)の使い分け Luigi + Jenkins Digdag / TD Workflow TD 登録クエリ 開発者・提供元 Spotify OSS (Treasure Data) Treasure Data 利用者 データグループの エンジニアリングチーム データグループの 分析チーム データグループ以外の 組織 エンジニア データ分析者 非エンジニア・分析者 言語・UI Python YAML GUI 利用者の用途やスキルに合わせた実行環境を提供 リソース分離されていないため、ワイルドクエリ にリソースを占有されてしまう問題 基幹集計処理とユーザーが待ち合わせできず、 遅延した時にデータが更新されない問題

Slide 12

Slide 12 text

施策例 1) 基幹集計処理の実行時間監視 Luigi のハンドラにジョブの実行時間を計測して TD に投げる処理を追加し、ボト ルネックジョブの特定とチューニングを可能にした

Slide 13

Slide 13 text

施策例 2) クエリ警察の設置 定期的に Treasure Data のジョブ状況を監視して Slack に通知 ◯時間もスロットを独占するワイルドなクエリは問答無用で強制終了

Slide 14

Slide 14 text

➔ 増え続けるデータ、テーブル、利用者 ➔ データを必要とするあらゆる業務と利用者に価値を提供してきた ➔ ジョブ監視の強化やチューニングを実施して運用を安定化 この2年半を振り返って

Slide 15

Slide 15 text

03 次世代データ分析基盤構想

Slide 16

Slide 16 text

➔ 潰しきれないワイルドクエリ問題 ➔ 同じプロダクトなのに他国のデータを横串で分析できていない ➔ データから得られた価値をユーザーにもっと直接届けられるはず!! 現在抱えている課題感

Slide 17

Slide 17 text

➔ ワイルドなクエリに負けないロバストな基幹集計処理基盤 ➔ 各国のデータ分析者が使いやすい抽象化とデータマートの提供 ➔ 守りのデータ活用から攻めのデータ活用へ!! データ分析基盤、進化の時

Slide 18

Slide 18 text

進化したデータ分析基盤(予定) Treasure Data (Hive / Presto) レポーティング 分析 Kinesis Lambda BigQuery CRM TD SDK クライアントサイドログ サーバーサイドログ マスタデータ サービス提供 機械学習 モデル構築

Slide 19

Slide 19 text

BigQuery の導入 Treasure Data (Hive / Presto) レポーティング 分析 Kinesis Lambda BigQuery CRM TD SDK クライアントサイドログ サーバーサイドログ マスタデータ サービス提供 機械学習 モデル構築 ・基幹集計は BigQuery で実行 ・行動ログは TD で受けるため一部その中で集計 ・運用維持のために集計結果を BigQuery から TD に連携 ・基幹集計処理の遅延(ワイルドクエリ問題)解消 ・BigQuery に蓄積されている他国データの活用

Slide 20

Slide 20 text

研究開発成果のプロダクト実装 Treasure Data (Hive / Presto) レポーティング 分析 Kinesis Lambda BigQuery CRM TD SDK クライアントサイドログ サーバーサイドログ マスタデータ サービス提供 機械学習 モデル構築 ・ユーザーに直接価値を返すサービス開発(e.g., 講義動画レコメンド) ・R&D チームの研究開発成果を性能担保した上で本番実装 ・プロダクトサイドのマイクロサービス化の動きと連携 ・アドホック分析から定常的な学習・モデル構築へ

Slide 21

Slide 21 text

分析 データサイエンティスト エンジニアリング データエンジニア R&D データリサーチエンジニア R&D チームの開発したプロトタイプを本番環境向 けに再実装(Search API / Logger / デプロイスク リプト etc) コーチングサポートツール開発での連携例

Slide 22

Slide 22 text

きめ細やかなユーザー伴走の実現 Treasure Data (Hive / Presto) レポーティング 分析 Kinesis Lambda BigQuery CRM TD SDK クライアントサイドログ サーバーサイドログ マスタデータ サービス提供 機械学習 モデル構築 MA ツールとの連携を通して、ユーザー属性や学習状況に応じたきめ細や かなコミュニケーションが可能に

Slide 23

Slide 23 text

まとめ 05

Slide 24

Slide 24 text

➔ BigQuery の導入によるロバストな基盤の実現 ➔ グローバル統合によって世界各国のデータ分析者を支える存在へ ➔ R&D チームの研究成果をマイクロサービスとして本番実装 ➔ データとエンジニアリングでユーザーにより良い学習体験を届ける! 次世代データ分析基盤開発プロジェクトが絶賛進行中!

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

Happy Hacking :)