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
Scalable Customer Journey Orchestration (CJO)
Search
Kai Sasaki
April 24, 2024
Programming
0
1.2k
Scalable Customer Journey Orchestration (CJO)
Kai Sasaki
April 24, 2024
Tweet
Share
More Decks by Kai Sasaki
See All by Kai Sasaki
価値を生み出す CDPを支える データ基盤開発
lewuathe
0
93
Other Decks in Programming
See All in Programming
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
300
Beyond Portability: Live Migration for Evolving WebAssembly Workloads
chikuwait
0
380
FormFlow - Build Stunning Multistep Forms
yceruto
1
180
赤裸々に公開。 TSKaigiのオフシーズン
takezoux2
0
130
Java on Azure で LangGraph!
kohei3110
0
150
Gleamという選択肢
comamoca
6
730
技術懸念に立ち向かい 法改正を穏便に乗り切った話
pop_cashew
0
1.5k
GoのWebAssembly活用パターン紹介
syumai
3
10k
データの民主化を支える、透明性のあるデータ利活用への挑戦 2025-06-25 Database Engineering Meetup#7
y_ken
0
140
エンジニア向け採用ピッチ資料
inusan
0
120
Bytecode Manipulation 으로 생산성 높이기
bigstark
2
360
F#で自在につくる静的ブログサイト - 関数型まつり2025
pizzacat83
0
300
Featured
See All Featured
Gamification - CAS2011
davidbonilla
81
5.3k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
KATA
mclloyd
29
14k
It's Worth the Effort
3n
184
28k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
Rails Girls Zürich Keynote
gr2m
94
14k
Making Projects Easy
brettharned
116
6.2k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.9k
Faster Mobile Websites
deanohume
307
31k
GraphQLとの向き合い方2022年版
quramy
46
14k
Agile that works and the tools we love
rasmusluckow
329
21k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Transcript
April 24th, 2024 Scalable Customer Journey Orchestration (CJO) Kai Sasaki
(Applications)
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 自己紹介 •
佐々木海 (ささきかい) • 2015年トレジャーデータ入社 • Hadoop, Prestoなど大規模データのための 分散システムの開発 • 現在はCDPを使ったデジタルマーケティング のためのアプリケーション開発に従事 2
© 2022 Treasure Data, Inc. Confidential—Internal Use Only トピック •
Customer Journey Orchestration (CJO)とは • CDPアプリに求められるスケーラビリティ • ソリューション • SQLを使った関係代数演算 • 集約演算を用いた状態遷移 • サンプリングベースの一貫性チェック • まとめ 3
カスタマージャーニー オーケストレーション (CJO)とは Customer Journey Orchestration
© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder
5
© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder
6
© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder
7 stage step goal exit criteria entry criteria
© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder
8 stage step goal exit criteria entry criteria Profile
© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder
9 stage step goal exit criteria entry criteria
© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder
10 stage step goal exit criteria entry criteria
© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder
11 stage step goal exit criteria entry criteria
© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder
12 stage step goal exit criteria entry criteria
© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder
13 stage step goal exit criteria entry criteria
© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder
14 stage step goal exit criteria entry criteria
© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder
15 stage step goal exit criteria entry criteria
求められる スケーラビリティと 技術的選択肢 Technical Options
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 選択肢 1
: Relational Database 17 1 2 3 4 5 7 6 8 customer_id position e00f1d60 1 e408be80 5 e8572200 3
© 2022 Treasure Data, Inc. Confidential—Internal Use Only BtoB vs
BtoC 18
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 選択肢 2
: NoSQL (e.g. KVS) 19 e00f1d60 1 e408be80 4 e8572200 3 1 2 3 4 5 7 6 8
© 2022 Treasure Data, Inc. Confidential—Internal Use Only デジタルマーケターの望むもの 20
ペルソナ ターゲット
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 選択肢 3:
OLAP Database (Plazma) 1 2 3 4 5 7 6 8 customer_id time_1 time_2 time_3 e00f1d60 1213421 1413311 1413432 e408be80 1213421 1723421 NULL e8572200 1113421 NULL NULL
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 各選択肢の比較 RDMS
KVS OLAP (Plazma) 一貫性 ⭕ (部分的) ❌ ❌ リアルタイム性 ⭕ ⭕ ❌ スループット ❌ ❌ ⭕
© 2022 Treasure Data, Inc. Confidential—Internal Use Only ユースケースとの対応 RDMS
KVS OLAP (Plazma) 一貫性 ⭕ (部分的) ❌ ❌ リアルタイム性 ⭕ ⭕ ❌ スループット ❌ ❌ ⭕ RDMS KVS OLAP (Plazma) ユースケースの拡張 ⭕ ❌ ❌ 即時コミュニケーション ⭕ ⭕ ❌ 大規模データ ❌ ❌ ⭕
ソリューション How CJO works under the hood
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算 INTERSECT
(積集合) UNION (和集合) EXCEPT (差集合)
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算を使った状態遷移 Audience
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算を使った状態遷移 Audience
Goal Goal
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算を使った状態遷移 Audience
Goal Goal Stage 1
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算を使った状態遷移 Audience
Goal Goal Stage 1 Stage 2
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算を使った状態遷移 Audience
Goal Goal Stage 1 Stage 2 Stage 3
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算を使った状態遷移 Audience
Goal Goal Stage 1 Stage 2 Stage 3 exit exit
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算を使った状態遷移 Audience
Goal Goal Stage 1 Stage 2 Stage 3 exit exit exit exit
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算を使った状態遷移 Stage
1 Stage 2 Stage 3 exit exit Step 1
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算を使った状態遷移 Stage
1 Stage 2 Stage 3 exit exit Step 2 Step 1
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算を使った状態遷移 Stage
1 Stage 2 Stage 3 exit exit Step 3 Step 1 Step 2
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算を使った状態遷移 Stage
1 Stage 2 Stage 3 exit exit Step 3 Step 1 Step 2 Step 4 Step 5
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 疎なテーブル Goal
Stage 1 Stage 2 Stage 3 exit exit exit exit customer_id stage1 stage1_exit_1 stage1_exit_2 stage2 … 1 t1 t1 NULL NULL 2 t1 t1 NULL NULL 3 t1 NULL NULL t2
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 疎なテーブル custom
er_id stage1 stage1_exit_1 stage1_step_1 stage_1_step_2 stage_1_step3 stage_1_step4 stage_1_step_5 … a t1 t1 a t1 t1 a t1 t1 a t1 a t1 t1 一時テーブルへの追加(append)で計算を続ける
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集約演算を使った更新 Goal
Stage 1 Stage 2 Stage 3 exit exit exit exit SELECT min(...) FROM … GROUP BY customer_id
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 一貫性チェック Aggregation
GROUP BY customer_id SELECT COUNT(invalid) FROM journey_1 TABLESAMPLE BERNOULLI (50) WHERE <Invalid Condition>
© 2022 Treasure Data, Inc. Confidential—Internal Use Only リネームによる一括更新 Old
Journey State Table New Journey State Table
© 2022 Treasure Data, Inc. Confidential—Internal Use Only CJOを支えるスケーラビリティ -
集合演算を使った状態計算 - SQLで計算できる条件が利用可能 - SELECT, INSERTベースで計算できる - とり得る状態を全て含めた疎な状態管理 - 集約関数で更新可能 - 過去の履歴を含むのでOLAPデータベースの特性を生かした分析が可能 - 効率的な一貫性チェック - アプリケーションが要求する一貫性を担保 - サンプルテーブルを使うことで計算量を抑える
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 43 Thank
you