데이터 가공 과정에서 테이블 간 종속성이 꼬여 있었습니다. 어떤 테이블이 어떤 테이블을 참조하는지 파악하려면 코드를 모두 뒤져봐야 했고, 같은 지표가 다른 소스를 참조하여 동일 지표인데 다른 숫자가 나오는 상황이 발생했습니다.
종속성이 한 방향으로만 흐르는 구조와 지표의 Single Source of Truth가 필요했습니다.
기존 Hive 테이블은 DROP 후 CTAS로 전체 리프레시하거나, 파티션 삭제 후 INSERT INTO로 업데이트하는 방식이었습니다. 하루라도 꼬이면 중복이나 누락이 발생했습니다.
Iceberg의 MERGE INTO(upsert)로 이 문제를 구조적으로 해결했습니다.
기존에는 테이블 하나를 관리하는 데 MERGE INTO, CTAS, DROP TABLE 세 개의 Airflow DAG가 필요했습니다.
4단계 메달리온 아키텍처를 설계했습니다.
MetricFlow semantic model과 metrics로 SSOT 구현을 시도했으나 AWS Athena가 미지원하여 향후 과제로 남겨두었습니다.
iron/bronze 단계는 완료했고, silver 설계를 위한 리서치를 진행 중입니다. Redash 최근 30일 쿼리에서 지표를 추출하고, bronze 칼럼을 역추적하여 silver 설계 근거를 확보하고 있습니다.