영향도 분석 (Impact Analysis) 실전 패턴
패턴 1: 스키마 변경 전 전방위 영향도 확인
패턴 2: 모델 영향도 — Feature Table 변경 시
패턴 3: SDP 파이프라인 영향도
리니지 기반 데이터 품질 자동화
리니지 정보를 활용하면 데이터 품질 이슈를 자동으로 추적하고 전파 할 수 있습니다.품질 이슈 전파 알림
리니지 기반 SLA 모니터링
규제 감사에서의 리니지 활용
GDPR / 개인정보보호법 준수
| 규제 요건 | 리니지 활용 방법 |
|---|---|
| 정보 접근권 | 특정 고객 데이터가 어떤 테이블에 존재하는지 컬럼 리니지로 추적 |
| 삭제권 (Right to be Forgotten) | PII 컬럼의 downstream을 추적하여 모든 복사본을 삭제 |
| 처리 목적 제한 | 데이터가 원래 수집 목적 외에 사용되지 않는지 리니지로 검증 |
| 데이터 이전 | 데이터 흐름을 문서화하여 국가 간 데이터 이전 규정 준수 |
PII 전파 추적 대시보드 쿼리
감사 보고서 자동 생성
Edge Case와 주의사항
| 주의사항 | 설명 |
|---|---|
| 리니지 지연 | 리니지 정보는 실시간이 아닙니다. 쿼리 실행 후 system.lineage 테이블에 반영되기까지 수 분 ~ 수 시간이 소요될 수 있습니다 |
| UDF 리니지 제한 | Python/Scala UDF 내부의 컬럼 변환은 추적되지 않습니다. UDF의 입출력만 기록됩니다 |
| Dynamic SQL | 문자열로 조합한 SQL (spark.sql(f"SELECT {cols} FROM ..."))은 리니지 파싱이 불완전할 수 있습니다 |
| 외부 도구 리니지 | JDBC로 접근하는 외부 BI 도구의 쿼리는 SQL Warehouse를 경유해야 리니지가 기록됩니다. 직접 스토리지 접근은 추적 불가합니다 |
| 리니지 보존 기간 | system.lineage 테이블의 데이터는 일정 기간(기본 365일) 동안 보존됩니다. 장기 보존이 필요하면 별도 백업이 필요합니다 |
| 뷰의 리니지 | 뷰를 통한 접근은 뷰의 정의에서 소스 테이블까지 투명하게 추적됩니다 |
정리
| 핵심 개념 | 설명 |
|---|---|
| 리니지 | 데이터의 출처(upstream)와 행선지(downstream)를 추적합니다 |
| 테이블 리니지 | 테이블 간의 데이터 흐름을 추적합니다 |
| 컬럼 리니지 | 컬럼 간의 데이터 흐름을 추적합니다 |
| 자동 추적 | SQL, Spark, SDP 등의 작업에서 자동으로 추적됩니다 |
| 영향도 분석 | 스키마 변경, 데이터 품질 이슈 시 downstream 영향을 파악합니다 |
| 규제 준수 | PII 전파 추적, 감사 보고서 등 규제 요건을 지원합니다 |
| 시스템 테이블 | system.lineage.table_lineage, column_lineage로 SQL 조회가 가능합니다 |