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

MeetUP1_大規模データ処理の基盤構築_20220209.pptx.pdf

 MeetUP1_大規模データ処理の基盤構築_20220209.pptx.pdf

BrainPad

March 10, 2022
Tweet

More Decks by BrainPad

Other Decks in Programming

Transcript

  1. Analytics Innovation Company ©BrainPad Inc. Strictly Confidential 1 自己紹介|吉田史也 所属

    • 株式会社ブレインパッド プロダクトビジネス本部 開発部 • リードエンジニア 趣味 • 自転車 • ゲーム(FPS関連)
  2. Analytics Innovation Company ©BrainPad Inc. Strictly Confidential 2 本日お話すること データ基盤をどうやって作ってきたのか

    • プロダクトの立ち上げからプロトタイプの作成、開発にまつわる苦労したこと • 現行のデータ処理基盤の開発について 新規プロダクトの開発にまつわる悩み データ処理基盤構築時に発生したことについてお伝えします。 https://blog.brainpad.co.jp/entry/2021/07/21/111850
  3. Analytics Innovation Company ©BrainPad Inc. Strictly Confidential 3 Rtoaster insight+とは

    データを統合し、顧客のインサイトをつかんでデータから価値を引き出す 柔軟なカスタマーデータプラットフォーム(CDP)
  4. Analytics Innovation Company ©BrainPad Inc. Strictly Confidential 4 Rtoaster insight+とは

    データを統合し、顧客のインサイトをつかんでデータから価値を引き出す 柔軟なカスタマーデータプラットフォーム(CDP) 「システム連携・出力」(ジョブ機能)の開発に ついてお話をします
  5. Analytics Innovation Company ©BrainPad Inc. Strictly Confidential 5 開発のフェーズイメージ •

    開発の始まり - 2019年10月~2019年12月 • β版作成 - 2020年1月~ • リリース案内 - 2020年10月 • GA版提供開始 - 2021年5月~
  6. Analytics Innovation Company ©BrainPad Inc. Strictly Confidential 6 開発の始まり •

    企業がデータを元に意思決定ができるようオンライン・オフライン上のデータを統合するための基盤として CDPである「insight+(仮)」を作ってみよう企画段階 • 何を作って、何を作らないのかを決めている段階でもあった • プロトタイプの作成ではエンジニア内での技術調査込みで実施する  →エンジニア2名がデータ処理の基盤を作る
  7. Analytics Innovation Company ©BrainPad Inc. Strictly Confidential 7 開発の始まり •

    技術スタックを確定させる • データを入出力、ETLの処理ができる基盤作り、検証できる
  8. Analytics Innovation Company ©BrainPad Inc. Strictly Confidential 8 開発の始まり| 技術スタックを確定させる

    新たなプロダクトづくり、部内が持つ技術要素で作る 技術的な挑戦を込みで、プロトタイプを作成する (メンバーはAWSでの環境構築経験のみ)
  9. Analytics Innovation Company ©BrainPad Inc. Strictly Confidential 10 ETLの処理ができる基盤作り •

    データソースは実態のファイルである点 • GAEで構築しようとすると諸々の問題がこの後発生していく 抽出 いろんなデータソースに格納されている 10~100GBなど大量データで読み書きが行われる ファイルのタイプも様々 インメモリでしか扱えない(当時F2インスタンス、256MB程度) Basic scaling で1リクエストデッドラインは24時間 etc... Cloud Run に逃がすなどの可能性はないか検討
  10. Analytics Innovation Company ©BrainPad Inc. Strictly Confidential 11 プロトタイプ •

    Basic scalingでバッチ環境(データ処理基盤)構築 • アプリレイヤーは、NuxtJS+Python3 定期実行
  11. Analytics Innovation Company ©BrainPad Inc. Strictly Confidential 12 苦労した話 •

    データ読み取りはチャンクダウンロードで行う • 10MBごとにBigQueryに書き込みを行っていく処理実装 • そもそもGAEなどのサービス理解がメンバー全員高い状態ではない • このプロトタイプは要求に応えるレベルだったか • (技術的な課題)加工・変換部分での課題 • (機能的な課題)ファイル中身が見えない課題 定期実行
  12. Analytics Innovation Company ©BrainPad Inc. Strictly Confidential 13 苦労した話 •

    データ読み取りはチャンクダウンロードで行う • 10MBごとにBigQueryに書き込みを行っていく処理実装 • そもそもGAEなどのサービス理解がメンバー全員高い状態ではない • このプロトタイプは要求に応えるレベルだったか • (技術的な課題)加工・変換部分での課題 • (機能的な課題)ファイル中身が見えない課題 のちに ・プレビュー機能などに技術転用 定期実行
  13. Analytics Innovation Company ©BrainPad Inc. Strictly Confidential 14 β版作成 •

    メンバーを増やし、プロトタイプで把握できた点を実装する • チャンクダウンロードの問題で発生した諸々の問題から「cliboa」を導入、アーキテクチャを刷新する この開発でやっていたこと 1.テストコードを書いていく 2.ドキュメントを書いていく 3.人を増やしたのは「cliboa」の知見を持つ人、GCP開発を経験した人 4.データ処理基盤のアーキテクチャは部内の知見を活かす、最新技術でサービスは作らない方針
  14. Analytics Innovation Company ©BrainPad Inc. Strictly Confidential 15 β版作成 •

    メンバーを増やし、プロトタイプで把握できた点を実装する • チャンクダウンロードの問題で発生した諸々の問題から「cliboa」を導入、アーキテクチャを刷新する 抽出・書き込み データソース例 抽出・書き込み 加工
  15. Analytics Innovation Company ©BrainPad Inc. Strictly Confidential 16 まとめ|知ってほしいこと •

    データ処理基盤構築でも、同じような開発の悩みを抱えて開発を行っている • プロトタイプの作成から技術的課題、機能的課題を出していくことができた • できること、できないことを取捨選択して、挑戦できる部分は挑戦をすることは大事