×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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 :)