데이터 거버넌스(Data Governance)는 조직의 데이터 자산을 체계적으로 관리하기 위한 정책, 프로세스, 역할, 기술의 집합이다. 데이터 품질, 보안, 컴플라이언스를 보장한다.
데이터 거버넌스 프레임워크
| 구성 요소 | 설명 |
|---|
| 데이터 카탈로그 | 데이터 자산 발견, 메타데이터 관리 |
| 데이터 계보 | 데이터 출처와 변환 이력 추적 |
| 데이터 품질 | 정확성, 완전성, 일관성 측정 |
| 데이터 스튜어드십 | 도메인별 데이터 책임자 지정 |
| 마스터 데이터 | 핵심 엔티티의 단일 진실 소스 |
| 접근 제어 | 역할 기반 데이터 접근 권한 |
오픈소스 데이터 카탈로그
| 도구 | 특징 |
|---|
| Apache Atlas | Hadoop 생태계, 태그 기반 정책 |
| DataHub (LinkedIn) | 실시간 메타데이터 그래프 |
| OpenMetadata | 통합 플랫폼, API 중심 |
| Amundsen (Lyft) | 검색 중심, 인기도 랭킹 |
DataHub 메타데이터 수집
bash
# DataHub CLI 설치
pip install acryl-datahub
# PostgreSQL 메타데이터 수집
datahub ingest -c postgres_recipe.yaml
# postgres_recipe.yaml
source:
type: postgres
config:
username: admin
password: password
host_port: localhost:5432
database: analytics
sink:
type: datahub-rest
config:
server: http://datahub-gms:8080
데이터 계보 추적
python
# DataHub Python SDK로 계보 등록
from datahub.emitter.mce_builder import make_dataset_urn
from datahub.emitter.rest_emitter import DatahubRestEmitter
emitter = DatahubRestEmitter("http://datahub-gms:8080")
upstream_urn = make_dataset_urn("postgres", "analytics.raw_orders")
downstream_urn = make_dataset_urn("snowflake", "prod.fact_orders")
lineage = DatasetLineageClass(
upstreams=[UpstreamClass(dataset=upstream_urn, type=DatasetLineageTypeClass.TRANSFORMED)]
)
emitter.emit_mcp(MetadataChangeProposalWrapper(
entityUrn=downstream_urn,
aspect=lineage,
))
GDPR/개인정보 태깅
yaml
# 데이터 분류 정책
classification:
PII:
columns: [email, phone, ssn, ip_address]
retention: 3years
encryption: required
access: restricted
FINANCIAL:
columns: [credit_card, bank_account]
retention: 7years
encryption: required
access: finance-team-only