DBT를 활용해 준실시간으로 클라이언트 Journey 파악하기
백엔드
DBT를 활용해 준실시간으로 클라이언트 Journey 파악하기
두줄요약
DBT와 CDC, Airflow로 클라이언트 여정을 추적하는 `data_logs` 테이블 구축 사례를 소개했습니다.복잡한 조인과 스캔 비용을 줄이기 위해 증분 모델링과 파티션 최적화를 적용했습니다.
핵심 내용
- DBT와 CDC, Airflow를 활용해 클라이언트의 발자취를 준실시간으로 추적하는
data_logs테이블 구축 사례 - 여러 원천 테이블을 조인해야 하던 복잡한 조회 문제를, 클라이언트 ID와 추가 식별자를 묶은 단일 데이터 마트로 단순화
- Base/Core/Access 레이어와 스타 스키마, 매크로, 증분 모델을 적용해 유지보수성과 실행 성능을 개선
구조와 흐름
- CDC 테이블의 변경 이벤트를 원천 데이터로 사용해 DBT에서 모델링 후 데이터 웨어하우스에 적재
- 비즈니스 기능별 테이블을 탐색해 액티비티 흐름을 파악하고, sequence diagram으로 DB 변경 문맥을 정리
- data_logs에
table_name,log_at,description,pay_load,binlog_filename_position,dt등을 포함해 조회성과 추적성 확보
성능/운영 포인트
- 무거운 단일 쿼리를 베이스 테이블 분리와 스타 스키마로 정리해 중복 스캔과 조인 비용 축소
- full refresh 대신 append, insert_overwrite 증분 전략을 적용해 하루 단위에서 시간 단위 파티션으로 세분화
- 파티션 프루닝과 병렬 실행, 중복 로직 매크로화를 통해 스캔량과 빌드 시간을 감소
