-
[metastore] 하이브 메타스토어 VS 유니티 메타스토어 비교하기개발지식 아카이브/Data - ETC 2025. 2. 12. 07:00
Apache Hive VS Databricks Unity 데이터 카탈로그 솔루션 비교
데이터 카탈로그는 메타데이터를 사용하여 조직의 데이터 자산을 관리하는 플랫폼을 말한다. 데이터 카탈로그를 통해서 데이터 자산을 중복을 피하고 재사용할 수 있으며, 데이터 검색과 액세스를 효율적으로 해결할 수 있다. 예를 들어 Spark는 Spark Catalog API를 통해 메타스토어에서 얻은 스키마를 통해, Spark SQL으로 데이터에 접근할 수 있어진다. (쿼리 계획도 개선할 수 있고!)
Hive 메타스토어와 Unity 메타스토어는 데이터 레이크에서 사용할 수 있는 데이터 카탈로그 솔루션이다.
이 둘을 비교해 보자..!
1. 메타데이터 관리 및 거버넌스
기능 Hive Unity 메타데이터 관리 - 테이블, 파티션 등 기본 메타데이터 관리
- Hadoop 에코시스템에 특화- 다양한 오픈 테이블 포맷(Iceberg, Delta, Hudi 등)을 하나의 중앙 저장소에서 관리
- 여러 엔진(Spark, Flink, Presto 등)과 통합된 관리데이터 리니지 및 감사 - 변경 이력 관리 기능이 제한적 - 테이블 변경 내역, 스키마 진화 이력, 접근 기록 등 거버넌스 및 감사 기능 강화 Hive Metastore는 Hadoop 생태계 전반에서 기본 메타데이터 관리 역할을 수행하지만, 거버넌스 측면에서 세밀한 감사나 변경 이력 관리가 부족할 수 있습니다. Unity Metastore는 데이터의 변경 이력과 접근 로그를 체계적으로 관리하여 컴플라이언스를 강화할 수 있습니다.
2. 스키마 진화 및 트랜잭션 지원
기능 Hive Unity 스키마 진화 - 기본적인 스키마 변경(컬럼 추가/삭제) 지원
- 복잡한 스키마 진화는 어려움- 유연한 스키마 진화 지원 (Iceberg와 연계해 안정적인 컬럼 추가/변경/삭제 지원) ACID 트랜잭션 지원 - 일부 지원하지만, ACID 보장이 완벽하지 않고 주로 배치 작업 중심 - ACID 트랜잭션 및 스냅샷 격리 지원을 통해 동시 다발적인 변경 상황에서도 데이터 정합성 유지 Hive Metastore는 기본적인 스키마 변경은 지원하지만, 복잡한 스키마 진화나 실시간 트랜잭션 관리 측면에서는 한계가 있습니다. 반면, Unity Metastore는 (Iceberg와 같은 오픈 테이블 포맷과 함께 사용될 때) 보다 강력한 스키마 Evolution과 ACID 트랜잭션 지원을 제공하여 데이터의 일관성을 유지할 수 있습니다.
3. 보안 및 접근 제어
기능 Hive Unity 권한 관리 - 테이블 및 파티션 수준의 기본적인 권한 관리 - 사용자, 그룹, 심지어 컬럼 단위까지 세밀한 접근 제어 지원 통합 인증 및 정책 - 기본적인 인증 방식에 의존 (Kerberos 등 Hadoop 환경에 맞춤) - 다양한 데이터 소스와 엔진에 대해 일관된 인증 및 인가 정책 관리 제공 Hive Metastore는 Hadoop 보안 체계(예: Kerberos)와 연동되어 기본적인 테이블/파티션 권한 관리를 제공하지만, 세밀한 권한 제어나 정책 관리 기능은 부족합니다. Unity Metastore는 보다 정교한 보안 정책과 접근 제어를 지원하여 민감 데이터 보호 및 기업 내 보안 정책 적용에 유리합니다.
4. 메타데이터 성능 및 확장성기능 Hive Unity 메타데이터 조회 성능 - 대규모 파티션이나 테이블 수가 많을 경우 메타데이터 조회가 병목될 수 있음 - 최적화된 메타데이터 쿼리 엔진을 통해 대규모 환경에서도 빠른 조회 성능 제공 확장성 - 클러스터 확장 시 메타데이터 관리에 한계가 있을 수 있음 - 분산 환경 및 대규모 사용자 요청을 효율적으로 처리할 수 있도록 설계됨 하이브 메타스토어는 오랜 기간 사용되면서 안정적이지만, 메타데이터 양이 많아지면 조회 성능이나 확장성에서 한계가 나타날 수 있습니다. 유니티 메타스토어는 이러한 문제를 개선하기 위해 설계되어, 대규모 데이터셋과 다수의 사용자 요청을 보다 원활하게 처리할 수 있습니다.
이러한 문제는 하이브 메타스토어는 보통 MySQL, PostgreSQL과 같은 전통적인 중앙 집중식 관계형 데이터베이스(RDBMS)를 백엔드로 사용하고 있기 때문에 나타납니다. 반면 유니티는 분산 아키텍처를 통해 수평 확장이 가능한 구조를 택하고 있기 때문에 성능면에서 조금 더 자유롭습니다. (예: 오브젝트 스토리지)
5. 다중 엔진 통합 및 상호 운용성기능 Hive Unity 통합 지원 엔진 - 주로 Hadoop 기반 엔진(Spark, Hive 등)과 연동에 초점 - Spark 3.3, Flink, Presto, Trino 등 다양한 최신 데이터 처리 엔진과의 원활한 통합 지원 오픈 테이블 포맷 지원 - Hive 포맷 위주로 관리하며, 오픈 테이블 포맷과의 통합에 한계가 있음 - Iceberg, Delta Lake, Hudi 등 오픈 테이블 포맷과 긴밀하게 연계되어 상호 운용성 극대화 유니티 메타스토어는 최신 오픈 테이블 포맷을 한 곳에서 관리하도록 설계되어, 여러 데이터 처리 도구 간의 통합을 한층 쉽게 만들어 줍니다.
Unity 메타스토어 도입시 어떤 득을 얻을 수 있는지 따져보았습니다!
'개발지식 아카이브 > Data - ETC' 카테고리의 다른 글
데이터 레이크하우스 아키텍처 (3) 2024.12.10 [Hive] 하이브 핵심정리 (1) 2023.10.19 Zeppelin 과 Notebook 비교, 어떤 것을 고를까? (1) 2023.05.18 [Streamlit] 설치 단계에서 발생한 이슈와 해결방법 정리 (0) 2023.04.16 [R 회귀분석 예제] 야구선수 연봉에 영향을 미치는 요인 (Linear Regression) (3) 2020.06.21