■ 기본적인 구성요소

■ Apache Nessie 소개
Apache Nessie는 시간 여행을 지원하는 분산형 데이터 저장소.
간단히 말해, Apache Nessie는:
- 데이터의 과거 버전을 추적하고 복원 가능.
시간 여행을 하듯이, 특정 시점의 데이터 상태로 복귀. - 여러 사용자가 동시에 데이터를 읽고 쓰는 분산 환경에서도 안정적으로 작동.
- 데이터의 무결성을 보장하고, 효율적인 데이터 관리.
Apache Nessie의 주요 특징:
- 시간 여행: 특정 시점의 데이터 상태로 돌아가거나, 데이터의 변경 이력을 추적 가능.
- 분산 시스템: 여러 노드에 데이터를 분산하여 저장하고, 높은 가용성과 확장성을 제공.
- ACID 특성: 데이터베이스의 ACID(Atomicity, Consistency, Isolation, Durability) 특성을 만족하여 안정적인 데이터 관리를 보장.
- Git과 유사한 모델: Git과 유사한 커밋 기반 모델을 사용하여 데이터의 변경 이력을 관리.
- 다양한 데이터 형식 지원: JSON, Avro 등 다양한 데이터 형식을 지원.
■ Dremio 소개
Dremio는 데이터를 더욱 효율적으로 처리하고 분석하기 위해 고안된 현대적인 데이터 엔진. 특히 클라우드 환경에서 대규모 데이터를 빠르게 탐색하고 시각화하는 데 뛰어난 성능을 보임.
Dremio의 주요 특징:
- 빠른 쿼리 실행: 복잡한 쿼리도 실시간에 가깝게 처리하여 빠른 의사 결정을 지원.
- 자유로운 데이터 접근: 다양한 데이터 소스(관계형 데이터베이스, NoSQL, 클라우드 스토리지 등)를 통합하여 단일 인터페이스에서 관리.
- 스키마 온 리드: 데이터를 로드할 때 스키마를 정의하여 유연한 데이터 모델링.
- 자동 최적화: 쿼리 실행 계획을 자동으로 최적화하여 성능을 향상.
- 확장성: 데이터 증가에 따라 시스템을 쉽게 확장.
Dremio가 유용한 경우:
- 대규모 데이터 분석: 페타바이트급 데이터를 빠르게 분석해야 할 때.
- 다양한 데이터 소스 통합: 여러 데이터 소스를 연결하여 단일 분석 환경을 구축해야 할 때.
- 셀프 서비스 분석: 비즈니스 사용자가 직접 데이터를 탐색하고 분석해야 할 때.
- 클라우드 환경에서의 데이터 분석: AWS, Azure, GCP 등 클라우드 환경에서 데이터를 분석해야 할 때.
■ Apache Iceberg 소개
Apache Iceberg는 대규모 데이터 레이크 환경에서 테이블 형식을 관리하고 진화시키기 위한 오픈 소스 프로젝트. 기존 데이터베이스 시스템에서 사용하던 테이블 개념을 확장하여, 대규모 데이터를 효율적으로 관리하고 분석할 수 있도록 지원.
왜 Apache Iceberg:
- 대규모 데이터 처리: 페타바이트 이상의 데이터를 처리해야 하는 데이터 레이크 환경에서 기존 데이터베이스 시스템의 한계를 극복.
- 테이블 형식 관리: 데이터 레이크에서도 테이블 형식을 정의하고 관리하여 데이터의 의미를 명확하게 하고, 다양한 분석 쿼리 지원.
- 시간 여행: 데이터의 과거 상태를 조회하고 복원할 수 있는 시간 여행 기능을 제공하여 데이터 분석의 유연성 향상.
- 스키마 진화: 데이터 스키마가 변경되더라도 데이터 손실 없이 테이블을 진화.
- 다양한 저장소 지원: S3, HDFS 등 다양한 저장소를 지원하여 기존 시스템과의 통합 용이.
Apache Iceberg의 주요 기능:
- 테이블 형식: 파티션, 프로젝션, 부분 업데이트 등 다양한 테이블 형식 지원.
- 스키마 진화: 데이터 스키마를 변경하더라도 기존 데이터를 유지하면서 새로운 스키마 적용.
- 시간 여행: 특정 시점의 데이터를 조회하고 복원.
- 트랜잭션: 데이터 변경 시 원자성, 일관성, 고립성, 내구성(ACID)을 보장하는 트랜잭션 지원.
- 압축: 데이터 압축을 통해 저장 공간을 절약하고 쿼리 성능 향상.
- 파티셔닝: 데이터를 파티션으로 나누어 관리하여 쿼리 성능 향상.
■ Minio 소개
Minio는 오픈 소스 분산형 객체 저장소. 클라우드 스토리지 서비스와 비슷한 기능을 제공하는 소프트웨어. 아마존 S3와 호환되는 API를 제공하기 때문에, S3를 사용하는 기존 애플리케이션을 Minio로 쉽게 마이그레이션할 수 있다는 장점.
Minio의 주요 특징:
- 오픈 소스: 누구나 자유롭게 사용, 수정, 배포 가능.
- S3 호환: 아마존 S3와 동일한 API를 사용하여 편리하게 데이터를 관리.
- 분산 저장: 여러 서버에 데이터를 분산 저장하여 안정성과 확장성.
- 고성능: 병렬 처리를 통해 빠른 데이터 처리 속도를 제공.
- 다양한 기능: 버킷 관리, 객체 버전 관리, 라이프 사이클 관리 등 다양한 기능을 제공.
Minio를 사용하는 이유:
- 클라우드 종속성 탈피: 자체 데이터 센터에 Minio를 설치하여 클라우드 서비스에 대한 종속성 줄임.
- 비용 절감: 클라우드 스토리지 비용을 절감하고, 데이터 주권을 확보.
- 유연성: 필요에 따라 스토리지 용량을 쉽게 확장.
- 개발 편의성: S3 호환 API를 사용하여 개발 생산성 향상.
※ Referneces
- hackernoon.com