7.1 주요 데이터 카탈로그 플랫폼 비교
| 플랫폼 | 유형 | 강점 | 적합한 경우 |
|---|---|---|---|
| Apache Atlas | 오픈소스 | Hadoop 에코시스템 | Hadoop/Hive 중심 환경 |
| DataHub | 오픈소스 | 현대적 아키텍처, 확장성 | 클라우드 네이티브, 다양한 소스 |
| Collibra | 상용 | 엔터프라이즈 기능, 거버넌스 | 대기업, 강력한 거버넌스 필요 |
| Amundsen | 오픈소스 | 사용자 친화적 UI | 데이터 디스커버리 중심 |
| Alation | 상용 | 협업, 크라우드소싱 | 데이터 문화 구축 |
7.2 Apache Atlas
개요
Apache Atlas는 Hadoop 에코시스템을 위한 오픈소스 데이터 거버넌스 및 메타데이터 관리 프레임워크입니다.
핵심 기능
- 메타데이터 관리 (Hive, HBase, Kafka)
- 데이터 분류 및 라벨링
- 데이터 계보 추적
- 검색 및 발견
- 보안 및 거버넌스
아키텍처
- Core: 타입 시스템, 그래프 엔진 (JanusGraph)
- Integration: Hive Hook, Sqoop Hook, Kafka Bridge
- Metadata Server: REST API, Kafka 이벤트
- Search: Solr 인덱스
from apache_atlas.client.base_client import AtlasClient
from apache_atlas.model.instance import AtlasEntity
# 클라이언트 초기화
client = AtlasClient('http://atlas:21000', ('admin', 'password'))
# Hive 테이블 엔티티 생성
table = AtlasEntity(
typeName='hive_table',
attributes={
'qualifiedName': 'sales.customers@production',
'name': 'customers',
'description': '고객 정보 테이블',
'owner': 'data-team@company.com'
}
)
# 엔티티 생성
response = client.entity.create_entity(table)
print(f"Created entity: {response.guid}")
장단점
- Hadoop 에코시스템과 긴밀한 통합
- 강력한 타입 시스템
- 오픈소스 (무료)
- 복잡한 설정 및 운영
- UI가 직관적이지 않음
- 클라우드 네이티브 지원 부족
7.3 DataHub
개요
DataHub는 LinkedIn에서 개발한 현대적인 메타데이터 플랫폼으로, 클라우드 네이티브 아키텍처와 확장성을 자랑합니다.
핵심 특징
- 메타데이터 모델: 스키마 기반 (Avro, Protobuf)
- 스트림 우선: Kafka 기반 실시간 처리
- 다양한 소스: 100+ 커넥터
- GraphQL API: 유연한 쿼리
- React 기반 UI: 현대적인 사용자 경험
아키텍처
┌─────────────────┐
│ DataHub UI │ (React, GraphQL)
└────────┬────────┘
│
┌────────▼────────┐
│ Metadata │ (Spring Boot, GraphQL)
│ Service (GMS) │
└────────┬────────┘
│
┌────────▼────────┐
│ MySQL/Postgres │ (Primary Storage)
│ Elasticsearch │ (Search Index)
│ Neo4j │ (Graph, 선택)
└─────────────────┘
from datahub.emitter.mce_builder import make_dataset_urn
from datahub.emitter.rest_emitter import DatahubRestEmitter
from datahub.metadata.schema_classes import DatasetPropertiesClass
# Emitter 초기화
emitter = DatahubRestEmitter('http://datahub-gms:8080')
# Dataset URN 생성
dataset_urn = make_dataset_urn(
platform='postgres',
name='prod_db.public.customers',
env='PROD'
)
# 메타데이터 생성
properties = DatasetPropertiesClass(
description='고객 정보를 저장하는 메인 테이블',
customProperties={
'owner': 'data-team@company.com',
'quality_score': '0.95'
}
)
# 메타데이터 발행
emitter.emit_mcp(
MetadataChangeProposal(
entityUrn=dataset_urn,
aspectName='datasetProperties',
aspect=properties
)
)
장단점
- 현대적이고 확장 가능한 아키텍처
- 활발한 커뮤니티 및 개발
- 클라우드 네이티브
- 풍부한 커넥터
- 상대적으로 신생 프로젝트
- 엔터프라이즈 기능 제한적
- 학습 곡선
7.4 Collibra
개요
Collibra는 엔터프라이즈급 데이터 인텔리전스 플랫폼으로, 데이터 거버넌스, 카탈로그, 품질, 개인정보 보호를 통합 제공합니다.
핵심 기능
- Data Governance: 워크플로우, 정책 관리
- Data Catalog: 자동 수집, 비즈니스 용어집
- Data Quality: 품질 규칙, 모니터링
- Data Privacy: GDPR, CCPA 준수
- Data Lineage: 엔드투엔드 계보
Collibra Operating Model
| 계층 | 구성 요소 |
|---|---|
| 조직 (Organization) | 전체 기업 |
| 커뮤니티 (Community) | 부서, 팀 |
| 도메인 (Domain) | 비즈니스 영역 |
| 자산 (Asset) | 테이블, 리포트, 용어 |
import requests
# API 설정
BASE_URL = 'https://company.collibra.com'
API_KEY = 'your-api-key'
headers = {
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
}
# 자산 생성
asset_data = {
'name': 'customers',
'displayName': 'Customers Table',
'typeId': '00000000-0000-0000-0000-000000031007', # Table type
'domainId': 'customer-domain-id',
'statusId': 'active-status-id'
}
response = requests.post(
f'{BASE_URL}/rest/2.0/assets',
headers=headers,
json=asset_data
)
asset = response.json()
print(f"Created asset: {asset['id']}")
장단점
- 포괄적인 엔터프라이즈 기능
- 강력한 거버넌스 워크플로우
- 전문적인 지원 및 교육
- 규제 준수 기능
- 높은 비용
- 복잡한 초기 설정
- 제한적인 커스터마이징
7.5 플랫폼 선택 가이드
| 시나리오 | 추천 플랫폼 |
|---|---|
| Hadoop/Hive 중심 환경 | Apache Atlas |
| 클라우드 네이티브, 빠른 성장 | DataHub |
| 대기업, 강력한 거버넌스 | Collibra, Alation |
| 스타트업, 제한된 예산 | DataHub, Amundsen |
| 규제 산업 (금융, 헬스케어) | Collibra |
7.6 다음 장 예고
마지막 장에서는 실전 구축 가이드를 다룹니다. 실제로 조직에 데이터 카탈로그를 구축하는 전체 프로세스를 배우게 됩니다.