Slide 1

Slide 1 text

April 24th, 2024 Scalable Customer Journey Orchestration (CJO) Kai Sasaki (Applications)

Slide 2

Slide 2 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only 自己紹介 • 佐々木海 (ささきかい) • 2015年トレジャーデータ入社 • Hadoop, Prestoなど大規模データのための 分散システムの開発 • 現在はCDPを使ったデジタルマーケティング のためのアプリケーション開発に従事 2

Slide 3

Slide 3 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only トピック • Customer Journey Orchestration (CJO)とは • CDPアプリに求められるスケーラビリティ • ソリューション • SQLを使った関係代数演算 • 集約演算を用いた状態遷移 • サンプリングベースの一貫性チェック • まとめ 3

Slide 4

Slide 4 text

カスタマージャーニー オーケストレーション (CJO)とは Customer Journey Orchestration

Slide 5

Slide 5 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder 5

Slide 6

Slide 6 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder 6

Slide 7

Slide 7 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder 7 stage step goal exit criteria entry criteria

Slide 8

Slide 8 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder 8 stage step goal exit criteria entry criteria Profile

Slide 9

Slide 9 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder 9 stage step goal exit criteria entry criteria

Slide 10

Slide 10 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder 10 stage step goal exit criteria entry criteria

Slide 11

Slide 11 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder 11 stage step goal exit criteria entry criteria

Slide 12

Slide 12 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder 12 stage step goal exit criteria entry criteria

Slide 13

Slide 13 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder 13 stage step goal exit criteria entry criteria

Slide 14

Slide 14 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder 14 stage step goal exit criteria entry criteria

Slide 15

Slide 15 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only Journey Builder 15 stage step goal exit criteria entry criteria

Slide 16

Slide 16 text

求められる スケーラビリティと 技術的選択肢 Technical Options

Slide 17

Slide 17 text

© 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

Slide 18

Slide 18 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only BtoB vs BtoC 18

Slide 19

Slide 19 text

© 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

Slide 20

Slide 20 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only デジタルマーケターの望むもの 20 ペルソナ ターゲット

Slide 21

Slide 21 text

© 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

Slide 22

Slide 22 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only 各選択肢の比較 RDMS KVS OLAP (Plazma) 一貫性 ⭕ (部分的) ❌ ❌ リアルタイム性 ⭕ ⭕ ❌ スループット ❌ ❌ ⭕

Slide 23

Slide 23 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only ユースケースとの対応 RDMS KVS OLAP (Plazma) 一貫性 ⭕ (部分的) ❌ ❌ リアルタイム性 ⭕ ⭕ ❌ スループット ❌ ❌ ⭕ RDMS KVS OLAP (Plazma) ユースケースの拡張 ⭕ ❌ ❌ 即時コミュニケーション ⭕ ⭕ ❌ 大規模データ ❌ ❌ ⭕

Slide 24

Slide 24 text

ソリューション How CJO works under the hood

Slide 25

Slide 25 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算 INTERSECT (積集合) UNION (和集合) EXCEPT (差集合)

Slide 26

Slide 26 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算を使った状態遷移 Audience

Slide 27

Slide 27 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算を使った状態遷移 Audience Goal Goal

Slide 28

Slide 28 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算を使った状態遷移 Audience Goal Goal Stage 1

Slide 29

Slide 29 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算を使った状態遷移 Audience Goal Goal Stage 1 Stage 2

Slide 30

Slide 30 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算を使った状態遷移 Audience Goal Goal Stage 1 Stage 2 Stage 3

Slide 31

Slide 31 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算を使った状態遷移 Audience Goal Goal Stage 1 Stage 2 Stage 3 exit exit

Slide 32

Slide 32 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算を使った状態遷移 Audience Goal Goal Stage 1 Stage 2 Stage 3 exit exit exit exit

Slide 33

Slide 33 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算を使った状態遷移 Stage 1 Stage 2 Stage 3 exit exit Step 1

Slide 34

Slide 34 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算を使った状態遷移 Stage 1 Stage 2 Stage 3 exit exit Step 2 Step 1

Slide 35

Slide 35 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only 集合演算を使った状態遷移 Stage 1 Stage 2 Stage 3 exit exit Step 3 Step 1 Step 2

Slide 36

Slide 36 text

© 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

Slide 37

Slide 37 text

© 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

Slide 38

Slide 38 text

© 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)で計算を続ける

Slide 39

Slide 39 text

© 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

Slide 40

Slide 40 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only 一貫性チェック Aggregation GROUP BY customer_id SELECT COUNT(invalid) FROM journey_1 TABLESAMPLE BERNOULLI (50) WHERE

Slide 41

Slide 41 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only リネームによる一括更新 Old Journey State Table New Journey State Table

Slide 42

Slide 42 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only CJOを支えるスケーラビリティ - 集合演算を使った状態計算 - SQLで計算できる条件が利用可能 - SELECT, INSERTベースで計算できる - とり得る状態を全て含めた疎な状態管理 - 集約関数で更新可能 - 過去の履歴を含むのでOLAPデータベースの特性を生かした分析が可能 - 効率的な一貫性チェック - アプリケーションが要求する一貫性を担保 - サンプルテーブルを使うことで計算量を抑える

Slide 43

Slide 43 text

© 2022 Treasure Data, Inc. Confidential—Internal Use Only 43 Thank you