7편 · 약 20분
Governance, Catalog, Lineage, Data Quality
이 세션의 목표
데이터 플랫폼이 커지면 저장과 처리보다 “믿을 수 있는가”가 더 중요해진다. 이때 나오는 용어가 Governance, Catalog, Lineage, Data Quality다.
- Governance: 데이터 사용과 관리의 규칙
- Catalog: 데이터셋을 찾고 이해하기 위한 목록
- Lineage: 데이터가 어디서 와서 어디로 갔는지의 흐름
- Data Quality: 데이터가 기대 조건을 만족하는지의 검증
Data Governance
Governance는 “누가 어떤 데이터를 어떤 목적으로 어떻게 써도 되는가”를 정하는 체계다.
DBA에게 governance는 권한 관리와 비슷하지만 더 넓다.
| 항목 | 예시 |
|---|---|
| Ownership | 이 테이블의 책임자는 누구인가 |
| Access Control | 누가 읽고 쓸 수 있는가 |
| Privacy | 개인정보, 민감정보, masking 기준 |
| Retention | 얼마나 오래 보관하고 언제 삭제하는가 |
| Definition | 지표와 컬럼의 의미는 무엇인가 |
| Change Process | schema 변경을 어떻게 공지하고 검증하는가 |
Data Catalog
Catalog는 데이터셋의 위치와 의미를 찾는 시스템이다. 단순 파일 목록이 아니라 metadata hub에 가깝다.
좋은 catalog에는 다음 정보가 들어간다.
- table/file 위치
- schema와 column 설명
- owner와 steward
- freshness
- quality score
- lineage
- access policy
- sample query
- deprecation 여부
Catalog가 없으면 사람들은 Slack에서 “이 테이블 써도 돼요?”라고 묻는다. 그 질문이 반복되면 플랫폼의 검색성이 낮다는 신호다.
Lineage
Lineage는 데이터 흐름의 족보다.
mysql.orders
→
bronze.orders_raw
→
silver.orders_clean
→
mart.sales_daily
→
BI 매출 대시보드
Lineage가 있으면 다음 질문에 답할 수 있다.
- source column 변경이 어떤 dashboard를 깨뜨리는가?
- 이 지표는 어떤 원본에서 왔는가?
- 품질 오류가 downstream 어디까지 전파됐는가?
- 특정 개인정보가 어떤 dataset에 복제되어 있는가?
Data Quality
Data Quality는 데이터가 기대 조건을 만족하는지 검증하는 것이다. DB 제약조건과 비슷하지만, pipeline과 비즈니스 의미까지 포함한다.
| 검증 유형 | 예시 |
|---|---|
| Completeness | 필수 컬럼이 NULL이면 안 된다 |
| Uniqueness | package/version/source 조합은 중복되면 안 된다 |
| Validity | 날짜 형식, enum 값이 허용 범위여야 한다 |
| Consistency | 취약점 fixed_version은 version range와 모순되면 안 된다 |
| Freshness | 최근 24시간 안에 수집된 데이터가 있어야 한다 |
| Volume | 평소 대비 row 수가 90% 줄면 이상으로 본다 |
| Referential Integrity | fact의 dimension key가 존재해야 한다 |
Quality Gate 설계
Quality check는 어디에 넣느냐가 중요하다.
| 위치 | 목적 |
|---|---|
| Ingestion 직후 | 원본 schema drift와 수집량 급변 감지 |
| Silver 전환 | 중복, 타입, key, join 정합성 검증 |
| Gold/Mart 전환 | 지표 정의와 business rule 검증 |
| Serving 직전 | dashboard/API에 잘못된 값 노출 방지 |
실패 row를 바로 버리면 원인 분석이 어렵다. 가능하면 quarantine table이나 error bucket으로 격리하고, 실패 이유와 batch id를 남긴다.
DBA가 익숙한 개념과 연결하기
| DBA 세계 | 데이터 플랫폼 세계 |
|---|---|
| information_schema | catalog metadata |
| foreign key | referential quality check |
| audit log | lineage / access log |
| slow query log | warehouse query history |
| backup retention | data retention policy |
| schema migration | data contract / schema evolution |
| replication lag | pipeline freshness / CDC lag |
세션 과제
중요한 mart 하나를 골라 quality rule을 5개 작성해보자.
| Rule | 실패 시 처리 |
|---|---|
| warn / fail / quarantine | |
| warn / fail / quarantine | |
| warn / fail / quarantine | |
| warn / fail / quarantine | |
| warn / fail / quarantine |
References
- https://www.ibm.com/think/topics/data-governance
- https://www.ibm.com/think/topics/data-catalog
- https://www.ibm.com/think/topics/data-lineage
- https://docs.greatexpectations.io/docs/core/introduction/
- https://openlineage.io/docs/