Apache Gravitino 소개
Source: Dev.to
작성자: shaofeng shi
최종 업데이트: 2025‑12‑29
개요
빅 데이터 시대에 기업들은 종종 멀티‑클라우드, 멀티‑도메인 및 이기종 데이터 소스(예: Apache Hive, MySQL, PostgreSQL, Iceberg, Lance, S3, GCS 등)에서 메타데이터를 관리해야 합니다. AI 모델 학습 및 추론의 급속한 도입으로 방대한 멀티모달 데이터와 모델 메타데이터 역시 통합 관리 솔루션이 필요합니다.
전통적인 접근 방식은 각 소스별로 메타데이터를 별도로 관리하여 운영 복잡성을 높이고 데이터 사일로를 만들게 됩니다. Apache Gravitino—고성능, 지리적으로 분산된 연합 메타데이터 레이크—는 멀티‑소스 메타데이터 관리를 위한 통합 솔루션을 제공합니다.
프로젝트 이력
| 이정표 | 날짜 |
|---|---|
| **Datastrato Inc.**에 의해 시작 및 설립 | – |
| 오픈소스화 | 2023 |
| Apache 인큐베이터에 기부 | 2024 |
| Apache 최상위 프로젝트로 승격 | 2025년 5월 |
Xiaomi, Tencent, Zhihu, Uber, Pinterest 등과 같은 기업에서 프로덕션에 배포되었습니다.
Apache Gravitino란?
고성능, 지리적으로 분산된, 연합 메타데이터 레이크 관리 시스템으로, 통합된 데이터 및 AI 자산 관리 플랫폼을 제공합니다. 다음과 같은 기능을 갖추고 있습니다:
- 통합 메타데이터 관리 – 다양한 데이터 소스를 위한 통합 모델 및 API.
- 직접 메타데이터 관리 – 변경 사항이 실시간으로 하위 시스템에 반영됩니다.
- 다중 엔진 지원 – Trino, Spark, Flink 등과 연동됩니다.
- 지리적으로 분산된 배포 – 지역 간, 클라우드 간 아키텍처를 지원합니다.
- AI 자산 관리 – 데이터 자산과 AI/ML 모델 메타데이터를 모두 관리합니다.
핵심 개념
| 개념 | 설명 |
|---|---|
| Metalake | 메타데이터를 위한 컨테이너/테넌트; 일반적으로 하나의 조직 ↔ 하나의 metalake. |
| Catalog | 특정 소스에서 가져온 메타데이터의 컬렉션. |
| Schema | 두 번째 수준 네임스페이스(데이터베이스 스키마와 동등). |
| Table | 구체적인 데이터 테이블을 나타내는 최하위 객체. |
지원되는 데이터 소스
| 카테고리 | 유형 |
|---|---|
| 관계형 데이터베이스 | MySQL, PostgreSQL, OceanBase, Apache Doris, StarRocks, … |
| 빅‑데이터 스토리지 | Apache Hive, Apache Iceberg, Apache Hudi, Apache Paimon, Delta Lake (개발 중) |
| 메시지 큐 | Apache Kafka |
| 파일 시스템 | HDFS, S3, GCS, Azure Blob Storage, Alibaba Cloud OSS |
| AI/ML 데이터 포맷 | Lance (AI/ML 워크로드에 최적화된 컬럼형 포맷) |
REST API 서비스
Gravitino Core REST API
- 모든 메타데이터 객체(메탈레이크, 카탈로그, 스키마, 테이블, …)에 대한 전체 CRUD
- 사용자, 그룹, 역할 및 권한 관리
- 고급 기능: 태그, 정책, 모델 등
- 인증: Simple, OAuth2, Kerberos
Iceberg REST 서비스
- Apache Iceberg REST API 사양 구현
- Hive, JDBC 및 맞춤형 백엔드를 스토리지로 지원
- S3, HDFS, GCS, Azure 등에서 테이블 관리 및 쿼리 기능 제공
Lance REST 서비스
- Lance REST API 사양 구현
- AI/ML 워크로드에 최적화(벡터 데이터 저장 및 검색)
- 네임스페이스 및 테이블 관리
Direct Metadata Management
- Real‑time Synchronization – 메타데이터 변경을 기본 소스에 즉시 전파.
- Bidirectional Synchronization – Gravitino → 소스 및 소스 → Gravitino 양방향 동기화.
- Transaction Support – 메타데이터 작업의 원자성 및 일관성 보장.
- Version Management – 메타데이터 버전 관리 및 이력 추적.
통합 권한 관리
| 기능 | 설명 |
|---|---|
| RBAC | 사용자, 그룹 및 역할에 대한 유연한 권한 관리. |
| 소유권 모델 | 모든 메타데이터 객체는 명확한 소유자를 가집니다. |
| 권한 상속 | Metalake에서 테이블까지 계층적 상속. |
| 세분화된 제어 | 다중 수준 권한 (Metalake → Catalog → Schema → Table). |
지원되는 권한 유형
- 사용자 및 그룹 관리
- 카탈로그 및 스키마 생성
- 테이블, 토픽, 파일셋에 대한 읽기/쓰기
- 모델 등록 및 버전 관리
- 태그 및 정책 적용
Data Lineage (OpenLineage)
- Automatic Lineage Collection – Spark 플러그인을 통해 자동 라인리지 수집.
- Unified Identifiers – 소스 전반에 걸친 식별자를 Gravitino ID로 정규화.
- Multi‑Source Support – Hive, Iceberg, JDBC, 파일 시스템 등.
배포 모드
- Single‑node – 개발 및 테스트.
- Cluster – 고가용성 및 로드 밸런싱.
- Kubernetes – 자동 스케일링이 가능한 컨테이너 배포.
- Docker – 공식 Docker 이미지 제공.
스토리지 백엔드
- 관계형 DB: MySQL, PostgreSQL, …
- 분산 스토리지 시스템(플러그 가능).
인증 방법
- 단순(사용자명/비밀번호)
- OAuth2
- Kerberos (Hive 백엔드용)
자격 증명 관리
- 클라우드 스토리지 자격 증명 제공(S3, GCS, Azure, …)
- 동적 자격 증명 갱신
- 보안 자격 증명 전달 메커니즘
Compute 엔진과의 통합
Gravitino는 주요 컴퓨트 엔진 및 데이터‑처리 프레임워크와 깊게 통합되어 통합된 데이터‑접근 경험을 제공합니다.
- Apache Spark – 메타데이터 동기화와 라인리지 추적이 원활합니다.
- (Trino, Flink 등 다른 엔진도 지원됩니다.)
Apache Gravitino의 통합 기능
Gravitino는 풍부한 커넥터와 SDK를 제공하여 최소한의 노력으로 기존 데이터 인프라에 연결할 수 있습니다. 아래 섹션에서는 각 통합 포인트와 주요 기능을 설명합니다.
🌟 Gravitino Spark Connector
Spark SQL 및 DataFrame API 지원
- 자동 데이터 라인리지 수집 및 추적
- 여러 데이터 소스에 대한 통합 접근
🔎 Trino Connector
Gravitino Trino Connector 서비스를 통한 통합
- 이기종 데이터 소스 간 연합 쿼리
- 고성능 분석 쿼리 기능
⚡ Apache Flink Connector
Gravitino Flink Connector 서비스를 통한 통합
- 스트림‑배치 통합 데이터 처리
- 실시간 데이터 처리 및 분석
🐍 PyIceberg
Python 환경을 위한 Iceberg 테이블 접근
- Gravitino Iceberg REST 서비스에 연결
- 데이터 과학 및 머신러닝 워크플로 지원
- Pandas와 호환되는 데이터 인터페이스 제공
🚀 Daft
현대적인 분산 데이터 처리 프레임워크
- AI/ML 작업에 최적화
- 멀티모달 데이터 처리 지원
- Gravitino 메타데이터 관리와 통합
☸️ Kubernetes
Kubernetes 클러스터에 대한 네이티브 배포
- 손쉬운 설치를 위한 Helm 차트 및 Operator
- 자동 스케일링 및 장애 복구 기능
- 클라우드 네이티브 모니터링·로깅 시스템과 통합
🌐 REST API
메타데이터 관리를 위한 완전한 RESTful 인터페이스
- 카탈로그, 스키마, 테이블 등 모든 CRUD 작업 지원
- 표준화된 HTTP 엔드포인트
- 다양한 인증 방식 지원(예: 토큰, OAuth)
☕ Java SDK
네이티브 Java 클라이언트 라이브러리
- 타입‑안전 API
- 내장된 커넥션 풀링 및 재시도 메커니즘
- 포괄적인 예외 처리
🐍 Python SDK
Python 클라이언트 라이브러리
- 비동기 작업 지원
- Jupyter 노트북과 원활한 통합
- 데이터 과학 워크플로에 맞춤화
왜 이러한 통합이 중요한가
이 기능들은 Gravitino가 기존 데이터 생태계에 원활하게 통합될 수 있게 하여, 사용자에게 통합되고 효율적인 데이터 관리 경험을 제공합니다. 향후 기사에서는 각 구성 요소의 설정 및 사용 패턴을 더 깊이 다룰 예정이니 기대해 주세요!
👉 계속 읽기: Setup Guide
⭐️ 프로젝트 팔로우 및 스타: Apache Gravitino Repository
Note: This article reflects the features of Apache Gravitino v1.1.0. For the latest updates, consult the official documentation or open an issue on GitHub.