Customer Data Platform

흩어진 고객 데이터를 통합·세그먼트화해 저지연으로 서빙하는 consent-native 플랫폼


핵심 개념

Customer Data Platform(CDP)은 여러 소스에 흩어진 고객 데이터를 통합해 audience segment(규칙 기반 사용자 식별자 컬렉션)를 정의·계산·서빙하는 플랫폼이다. freshness·저지연·consent 강제·cost·correctness가 동시에 균형을 이뤄야 하며, 대부분 서로 trade-off 관계다.

4-Stage 아키텍처 (Razorpay 사례)

규칙 정의

segment는 JSONB AND/OR/NOT 조건의 named 컬렉션(avg_order_value eq 5000 AND loyalty_enrolled eq false).

Stage 1 — Segmentation DAG

  • Airflow DAG가 JSONB 규칙 트리를 파싱해 참조된 attribute만 추출(targeted load plan) — 수억 행 테이블의 naive join은 Spark 메모리 폭발
  • Spark가 멤버십 리스트 생성 → S3(KMS 암호화)
  • segment 재사용: deterministic hash로 의미 동일 규칙 탐지(canonicalisation — A AND B = B AND A, 연산자 정규화·조건 정렬·중첩 평탄화) → 재계산 회피

Stage 2 — Ingestion (이중 경로)

  • S3-backed(배치): 경량 — 검증·상태 업데이트·Kafka 이벤트, 초 단위 완료
  • DynamoDB-backed(실시간): Temporal workflow(event validation → import → version promotion → lineage, 독립 재시도). zero-downtime refresh: 각 refresh가 새 테이블 버전(vN), 검증 후 포인터 전환(import 실패 시 기존 버전 계속 서빙)

Stage 3 — Serving

  • segment당 1 DynamoDB 테이블(traffic·용량·lifecycle·실패 격리)
  • privacy-preserving 멤버십 체크: partition key = phone의 SHA-256 hash. caller가 pre-hashed ID 전송 → boolean 응답. serving 레이어가 raw phone을 결코 받지 않음

Theta Sketch 추정 엔진

전체 파이프라인 실행 없이 segment 크기를 빠르게 추정:

  • HLL은 union만 효율적이나 intersection/difference에서 inclusion-exclusion 오차가 compound → Theta Sketch가 set 연산을 직접 지원(predictable error bound)
  • attribute-value쌍마다 Theta Sketch 사전 생성(Data Sketches 참조) → 쿼리 시 규칙 트리를 set 연산으로 평가 → 초 단위 추정
  • 효과: multi-hour → sub-second iteration, audience planning 인터랙티브화

핵심 교훈

  1. compute reuse > compute optimization: 30% 빠른 잡은 일회성, 잡을 안 돌리는 것은 영구적. deterministic hash 재사용이 최대 cost lever
  2. hash before you store: privacy-preserving 멤버십 체크는 compliance 기능이자 아키텍처 단순화 — serving 레이어가 보호할 PII를 애초에 안 가짐
  3. approximate가 보통 충분: 대부분 audience planning은 정확한 count가 아닌 confidence interval만 필요

연관 개념


Source: How Razorpay Built Its Customer Data Platform