Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BIRのアーキテクチャと データ処理
Search
Jumpei Takiyasu
February 18, 2021
Technology
0
1.3k
BIRのアーキテクチャと データ処理
Jumpei Takiyasu
February 18, 2021
Tweet
Share
More Decks by Jumpei Takiyasu
See All by Jumpei Takiyasu
BIRのアーキテクチャと 技術選定
juntaki
0
790
ROSでSLAMラジコンをつくる
juntaki
0
3.6k
6足歩行ロボットをつくった
juntaki
0
740
GoでAPIサーバをはやくつくる
juntaki
26
13k
Undocumented!? firebase
juntaki
0
310
3Dプリンタと4足歩行プロトタイプ
juntaki
0
6.7k
アンケートの集計システムを作った
juntaki
0
3.7k
Goならわかる Linuxのメモリ管理
juntaki
13
6.2k
社内勉強会の管理ツール Sugoi Meetupをつくった
juntaki
0
830
Other Decks in Technology
See All in Technology
Bedrock AgentCore Evaluationsで学ぶLLM as a judge入門
shichijoyuhi
2
310
Cloud WAN MCP Serverから考える新しいネットワーク運用 / 20251228 Masaki Okuda
shift_evolve
PRO
0
130
チームで安全にClaude Codeを利用するためのプラクティス / team-claude-code-practices
tomoki10
0
700
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
12k
[PR] はじめてのデジタルアイデンティティという本を書きました
ritou
0
720
AIと融ける人間の冒険
pujisi
0
110
BidiAgent と Nova 2 Sonic から考える音声 AI について
yama3133
2
140
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
3
250
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
650
Authlete で実装する MCP OAuth 認可サーバー #CIMD の実装を添えて
watahani
0
360
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.5k
AWS re:Inventre:cap ~AmazonNova 2 Omniのワークショップを体験してきた~
nrinetcom
PRO
0
120
Featured
See All Featured
Google's AI Overviews - The New Search
badams
0
880
Building Applications with DynamoDB
mza
96
6.9k
Six Lessons from altMBA
skipperchong
29
4.1k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
420
WCS-LA-2024
lcolladotor
0
400
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
37
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
Navigating Weather and Climate Data
rabernat
0
61
Typedesign – Prime Four
hannesfritz
42
2.9k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
110
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
0
34
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.2k
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! エムスリーのエンジニア 採用サイトはこちら アンケートはこちら
※現在は終了 しています