Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BIRのアーキテクチャと データ処理
Search
Jumpei Takiyasu
February 18, 2021
Technology
0
1.2k
BIRのアーキテクチャと データ処理
Jumpei Takiyasu
February 18, 2021
Tweet
Share
More Decks by Jumpei Takiyasu
See All by Jumpei Takiyasu
BIRのアーキテクチャと 技術選定
juntaki
0
780
ROSでSLAMラジコンをつくる
juntaki
0
3.6k
6足歩行ロボットをつくった
juntaki
0
740
GoでAPIサーバをはやくつくる
juntaki
26
13k
Undocumented!? firebase
juntaki
0
300
3Dプリンタと4足歩行プロトタイプ
juntaki
0
6.7k
アンケートの集計システムを作った
juntaki
0
3.7k
Goならわかる Linuxのメモリ管理
juntaki
13
6.2k
社内勉強会の管理ツール Sugoi Meetupをつくった
juntaki
0
820
Other Decks in Technology
See All in Technology
初めてのDatabricks AI/BI Genie
taka_aki
0
240
AgentCore BrowserとClaude Codeスキルを活用した 『初手AI』を実現する業務自動化AIエージェント基盤
ruzia
4
130
日本Rubyの会: これまでとこれから
snoozer05
PRO
4
200
特別捜査官等研修会
nomizone
0
170
AI時代の新規LLMプロダクト開発: Findy Insightsを3ヶ月で立ち上げた舞台裏と振り返り
dakuon
0
290
AWSを使う上で最低限知っておきたいセキュリティ研修を社内で実施した話 ~みんなでやるセキュリティ~
maimyyym
2
1.8k
フィッシュボウルのやり方 / How to do a fishbowl
pauli
2
180
アプリにAIを正しく組み込むための アーキテクチャ── 国産LLMの現実と実践
kohju
0
130
2025年 開発生産「可能」性向上報告 サイロ解消からチームが能動性を獲得するまで/ 20251216 Naoki Takahashi
shift_evolve
PRO
2
210
.NET 10の概要
tomokusaba
0
120
SREには開発組織全体で向き合う
koh_naga
0
390
まだ間に合う! Agentic AI on AWSの現在地をやさしく一挙おさらい
minorun365
15
1.5k
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
390
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
160
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
680
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
0
59
Color Theory Basics | Prateek | Gurzu
gurzu
0
140
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Discover your Explorer Soul
emna__ayadi
2
1k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Navigating Weather and Climate Data
rabernat
0
44
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Transcript
BIRのアーキテクチャと データ処理 Jumpei Takiyasu @juntaki M3, Inc.
自己紹介 滝安純平(@juntaki) BIRエンジニアチームリーダー兼BIRカンパニー執行役員 バックエンドとWebフロントエンドエンジニア、兼プロダクトマ ネージャをやっています。 もともと組み込みLinuxのカーネル開発をしていました。最近 はFlutterでなにか作っています。 好きな言語はGoʕ◔ϖ◔ʔ 2
今日話すこと • BIRのビジネスとシステムアーキテクチャ(再) • 回答データの活用方法・Cloud Schedulerを使ったバッチ処理 3
BIRのビジネスと システムアーキテクチャ 4
BIR - ビジネスインテリジェンス&リサーチ 医療従事者の会員向けアンケート(国内最大の医師パネル)をベースに、製薬 会社へのマーケティング支援を提供する事業を行っています。 5
アンケートページ
アンケートビジネスの流れ 1. アンケートを作る 2. 配信・督促をがんばる 3. データを整理する 4. データを可視化する アンケートを集める
データを活用できるよ うにする 7
アンケートシステムのアーキテクチャ 8
アンケートシステムのアーキテクチャ 1.アンケートを作る 2.配信・督促をがんばる 3.データを整理する 4. データを可視化する 9
Tableauとは データ可視化ツール • BigQueryやPostgreSQL、 Excelまで色々なデータに接 続可能 • データ整形、集計、可視化ま で、やりたいことは何でもでき る※すごいツール
※使いこなせば…!
Tableauの活用方法 1. 社内向け指標の可視化 a. アンケートの回答状況 b. 各種配信チャネルの流入状況 c. クラウド環境の課金状況 2.
納品物作成 a. クライアント向けダッシュボード b. データダウンロードツール
アンケートで扱うデータと格納先(概要) 配信に使うデータ • 配信ユーザID • アンケートID • ステータス 回答データ •
ユーザID • アンケートID • 回答内容 M3トップページ並のアクセス量 → Cloud Spanner 各アンケートシステムの 性能要件は一般的なWebアプリ → Cloud SQL / Aurora
可視化したいもの 内部的には… • 回答状況 • 各種KPI 納品物では… • 回答&設問 •
会員属性 配信システムの Spannerにある アンケートシステ ムのDB M3会員基盤 各所にあるデータを集めて可視化しなくては使えない 直接参照すると、可視化による負荷を各々考慮する必要があり設計難度が上がる BigQueryへ集約
バッチ処理 BigQueryにデータを集約させるための処理を Webアプリとは非同期に動かしたい • cronジョブ / SpringBatchなどフレームワークの機能 ◦ バッチ専用インスタンスが必要 ◦
アプリごとに作るので統一した管理が難しい • ワークフローエンジン(Digdag, Airflow, etc..) ◦ 依存関係がほぼ無いのでオーバースペック +失敗したときの復旧が面倒(前日の日次バッチ処理など …)
Cloud Schedulerをつかったバッチ処理 BIR独自の バッチ起動処理 他チームがDigdagから 使っていた処理を流用
バッチ処理起動用サーバ(bir-batch) YAMLファイルでエンドポイントを生成する超シンプル独自フレームワーク (Digdagも検討したが、BIRは処理間の依存がなかったので採用せず) • 指定されたFargateにパラメータを渡して起動(現在日付はクエリパラメータ) • 失敗を検知してリトライ&リトライ失敗で通知 - endpoint: /ibis/update_answer
image: 'ibis-container:latest' cmd: /work/run.sh cpu: 256 memory: 512 env: BQ_KEY: 'credential' PASSWORD: 'password' retryable: true 処理ごとに こんな感じの YAMLを書くだけ
この構成のメリット&デメリット メリット Fargateで都度コンテナを立ち上げるので、リソースを食い合って共倒れない Web APIになっているので、再実行が簡単(?date=20210220とすれば過去分も)Cloud Schedulerのコンソールが優秀 • DBメンテナンスでバッチ全部止めたい→停止ボタンおすだけ • 全部のバッチ処理を俯瞰したい
→されてる! デメリット 複雑な依存関係を考慮できない 保守は自分でがんばる
まとめ • BIRのビジネスとシステムアーキテクチャ • 回答データの活用方法・Cloud Schedulerを使ったバッチ処理 18
タイムテーブル 時間 タイトル スピーカー 19:00 ~ 19:05 オープニング 司会 19:05
~ 19:20 BIRのアーキテクチャとデータ処理 滝安 純平 19:20 ~ 19:40 DatastoreからSpannerへのゼロダウンタイム移行 四方田 貫児 アンケートシステムのデータ可視化 木村 一統 19:40 ~ 19:50 質疑応答・クロージング
アンケートのご協力をお願いします ※BIRで作っているアンケートシステム( Tiger)です! 医療従事者でない方はめったに触る機会がないので、ぜひこの機会にどうぞ We’re hiring! エムスリーのエンジニア 採用サイトはこちら アンケートはこちら
※現在は終了 しています