Share
Embed
Scalable Customer Journey Orchestration (CJO)
Kai Sasaki
April 24, 2024
Transcript
43 slides
-
© 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 -
© 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 -
© 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 選択肢 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 選択肢 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) ユースケースの拡張 ⭕ ❌ ❌ 即時コミュニケーション ⭕ ⭕ ❌ 大規模データ ❌ ❌ ⭕ -
© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算 INTERSECT
(積集合) UNION (和集合) EXCEPT (差集合) -
© 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データベースの特性を生かした分析が可能 - 効率的な一貫性チェック - アプリケーションが要求する一貫性を担保 - サンプルテーブルを使うことで計算量を抑える