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
1.4k
0
Share
Scalable Customer Journey Orchestration (CJO)
Kai Sasaki
April 24, 2024
More Decks by Kai Sasaki
See All by Kai Sasaki
価値を生み出す CDPを支える データ基盤開発
lewuathe
0
120
Other Decks in Programming
See All in Programming
リセットCSSを1行消したらアクセシビリティが向上した話
pvcresin
4
520
20260514_its_the_context_window_stupid.pdf
heita
0
1k
AgentCore Optimizationを始めよう!
licux
3
240
AlarmKitで明後日起きれるアラームアプリを作る
trickart
0
140
Terraform言語の静的解析 / static analysis of Terraform language
wata727
1
150
エラー処理の温故知新 / history of error handling technic
ryotanakaya
7
1.9k
Sans tests, vos agents ne sont pas fiables
nabondance
0
130
Back to the roots of date
jinroq
0
860
[BalkanRuby 2026] Drop your app/services!
palkan
0
120
How We Practice Exploratory Testing in Iterative Development( #scrumniigata ) / 反復開発の中で、探索的テストをどう実施しているか
teyamagu
PRO
3
840
ローカルLLMでどこまでコードが書けるか / How much code can be written on a local LLM
kishida
2
360
〜バイブコーディングを超えて〜 チームで実験し続けたAI駆動開発
tigertora7571
0
210
Featured
See All Featured
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
GraphQLとの向き合い方2022年版
quramy
50
15k
Paper Plane (Part 1)
katiecoart
PRO
0
7.6k
Crafting Experiences
bethany
1
150
A Modern Web Designer's Workflow
chriscoyier
698
190k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
Documentation Writing (for coders)
carmenintech
77
5.3k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.1k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
[SF Ruby Conf 2025] Rails X
palkan
2
1k
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