Upgrade to Pro — share decks privately, control downloads, hide ads and more …

FiNCのデータ戦略と​ AWSでのデータプラットフォーム構築​ / Healthcare Data in FiNC

FiNCのデータ戦略と​ AWSでのデータプラットフォーム構築​ / Healthcare Data in FiNC

X-Tech JAWS #3 での登壇資料です
https://xtechjaws.doorkeeper.jp/events/72011

Kenji Suzuki

April 20, 2018
Tweet

More Decks by Kenji Suzuki

Other Decks in Technology

Transcript

  1. Kenji Suzuki • 2010 ~ 2014 DeNA – Infra Engineer

    • 2015 ~ FiNC – Site Reliability Engineer – Security Engineer – Blockchain Engineer 自己紹介
  2. o ໨త o ͓೰ΈʢμΠΤοτɺੜ׆श׳վળɺӡಈෆ଍ղফɺ݈߁ҡ࣋ɺےྗΞοϓɺ ମܕҡ࣋ɺංຬɺ಺ଁࢷ๱ɺΉ͘ΈɺศൿɺੜཧෆॱFUDʣ o ؾʹͳΔ෦Ґʢ༏ઌॱҐʣ o ϑΟδΧϧͷঢ়ଶʢ೥ྸɺੑผɺ਎௕ɺମॏɺମࢷ๱཰ɺے೑ྔɺ࢟੎ͷঢ়گ FUD

    o ਎ମػೳʢےྗɺے೑࣋ٱྗɺॊೈੑɺॠൃྗFUDʣ o ମ಺ػೳʢ݂ѹɺجૅ୅ँɺମԹɺ৺ഥ਺FUDʣ o ӡಈश׳ʢݱࡏɺաڈFUDʣ o ޷͖ͳ৯΂෺ʢڕྉཧɺ࿨৯ɺ໙ྨFUDʣ o طԟྺʢՖค঱ɺෆ຾঱ɺ͏ͭපɺ౶೘පɺߴ݂ѹɺ೘ࢎ஋FUD o ϥΠϑελΠϧʢग़ۈؼ୐࣌ؒɺٳ೔ʣ ౳ アプリ 登録時 データ 検査データ o ݂ӷݕࠪ o Ҩ఻ࢠݕࠪ 食事データ o ৯ࣄ౤ߘσʔλ o ৯඼σʔλϕʔε 身体データ o ମॏ o ਭ຾ o า਺ 基礎データ o ೥ྸɾੑผɾॅॴ౳ FiNCアプリで収集されるデータ群 上記静的データ + アプリ内でのユーザーの行動データを収集している
  3. 前提:システム全体図(マイクロサービス) User Interface Service1 Service2 Service3 Service4 Service5 • 機能単位でのサーバー

    分割 • 一人のユーザーの行動 により生じるログが各 サーバーに散らばる • 効率よくそれらを収集 し、集計しやすい形に 整える必要がある
  4. • あらゆる経路からredshiftにデータを集めている – 各マイクロサービスからfluentd経由で収集されるサーバーログ – 各マイクロサービスからfluentd経由で収集される特定の目的のため に特別に設定されたログ – 各マイクロサービスからAWS DMS経由で収集されるデータベースの特

    定テーブルのスナップショット – モバイルクライアントに仕込まれたfirehose経由で収集されるユー ザーの行動をログ – モバイルクライアントに仕込まれた各種SDKからfirehose経由で収集 されるユーザーの行動ログ • これらのログ・データを効率よく分析するためにサマリー テーブルと呼ばれるテーブルを作成する 集められるデータ
  5. redshift サマリーテーブル例:プッシュ通知 • 各サービス単位で散 らばったログから プッシュ関連の情報 を取ろうとするとか なり複雑なクエリが 必要になる •

    深夜などに定期的に サマリーテーブルを 作成する処理を流す • 集計がよりシンプル に(非エンジニアでも 理解できる) プッシュ通知 サービスログ ユーザー デモグラ情報 ユーザー 各ステータス ユーザー 活動ログ バッチ 処理 プッシュ通知用 サマリーテーブル - どんなユーザーが - いつ - どんな通知を受け取り - 開いたかどうか - 1h後に何をしたか - 1day後に何をしたか
  6. コンテンツのレコメンドシステム • 各マイクロサービスか らレコメンドに必要な データをredshift収集 する • レコメンドのモデルは 機械学習を用いて作成 される(この部分の詳

    細は今回はスキップ) • 当初は既存の分析の流 れを流用してRedshift ベースでレコメンドし ようとしたが。。。 Existing microservices Redshift Model Training recommender API Why I have to make Big data aggregations! Too much!
  7. コンテンツのレコメンドシステム Existing microservices Redshift API Export to CSV file e.g.

    AWS S3 Pre- aggregate data stores AWS Batch Model training Access app services Copy data to analytics DB Scale out blob storage • ユーザーの行動データ は非常に巨大で、 redshift上に全て載せ ることは現実的でない • redshiftに蓄積された データをs3にexport • exportされたデータを 元にAWS Batch上で動 いているモデルのト レーニングプロセスが レコメンドモデルを作 成
  8. 汎用データレイク(構想) DataLake Serve r App Ad for Ad for ML

    Use in app Transform DataStore Source Collect App App App User segmentation Glue(catalog) Serve r Glue(ETL) Lambda Athena
  9. データ活用事例 ユーザークラスタリ ング • 入会時アンケー トによるクラス タリング • 退会アカウント の行動分析と予

    測 ライフログ • 睡眠時間予測 • 生理周期の予測 • BMI値などの データからのオ ススメ記事の設 定 レコメンド • 記事の閲覧履歴 からのレコメン ド • プッシュ通知内 容・時間の最適 化