핵심 요약
당근이 열 수준 데이터 흐름을 추적하는 데이터 계보를 SQL 파싱으로 구축했습니다.
구현 방법
- sqlglot으로 다양한 다이얼렉트 파싱 및 AST 생성
- Spark로 대량 쿼리 병렬 파싱
- Airflow로 주기 업데이트, BigQuery INFORMATION_SCHEMA.JOBS에서 쿼리 수집
- 데이터는 data_catalog.lineage에 저장하고 MCP 서버로 쿼리 제공
- MCP 서버는 최근 30일 데이터를 기반으로 작동
주요 결과
- 매일 전일 쿼리 분석으로 자동 lineage 추출
- 일일 약 15,000개 테이블, 800,000 열 의존성 추적
- MCP 서버는 수초 내 응답으로 빠른 조회 가능
- 변경 영향 분석으로 운영 안전성 증가