- 데이터 레이크와 카탈로그 포맷을 통합한 새로운 솔루션
- Parquet 파일과 SQL 데이터베이스를 기반으로 동작하며, 전통적인 레이크하우스보다 간결한 데이터 레이크 구현을 가능하게 함
-
PostgreSQL, SQLite, MySQL, DuckDB 등 여러 데이터베이스 위에서 메타데이터 카탈로그 관리가 가능함
-
스냅샷, 타임 트래블 쿼리, 스키마 변경, 파티셔닝 등 다양한 기능을 지원하면서도 자주 컴팩트하지 않아도 되는 가벼운 스냅샷 처리를 제공함
- 여러 인스턴스가 동시에 데이터를 읽고 쓰는 멀티플레이어 DuckDB 모델을 지원하며, 기본 DuckDB가 지원하지 않는 동시성 처리 모델을 구현함
- DuckLake는 사양, DuckDB 확장, DuckLake 형식으로 저장된 데이터셋을 포괄하는 개념이며, MIT 라이선스로 공개됨
DuckLake 소개
- DuckLake는 DuckDB 팀이 만든 오픈 포맷으로, 복잡한 레이크하우스 없이도 고급 데이터 레이크 기능을 제공함
- SQL 데이터베이스와 Parquet 파일만 있으면 자체 데이터 웨어하우스를 구축할 수 있음.
- 메타데이터 관리를 위해 데이터베이스를 사용 : PostgreSQL, SQLite, MySQL, DuckDB
DuckLake의 주요 기능
-
데이터 레이크 오퍼레이션
-
스냅샷
-
시점 조회 (Time travel)
-
스키마 진화
-
파티셔닝
-
가벼운 스냅샷 처리
- 스냅샷 개수에 제한 없이 생성 가능
-
자주 컴팩트할 필요 없이 동작 가능
-
ACID 트랜잭션
-
멀티 테이블 연산에 대해 동시 접근과 트랜잭션 보장
-
성능 지향 설계
-
필터 푸시다운을 위한 통계 활용
- 대용량 데이터셋에서도 빠른 쿼리 가능
자주 묻는 질문
-
왜 DuckLake를 사용해야 하나요?
-
데이터 레이크와 카탈로그를 통합한 가벼운 솔루션 필요 시 적합
- 여러 DuckDB 인스턴스가 동일 데이터셋을 읽고 쓰는 멀티플레이어 환경 가능
- 이는 기존 DuckDB에서는 지원되지 않는 동시성 모델
- DuckDB만 사용해도 시점 조회, 파티셔닝, 멀티 파일 저장 구조 등의 이점을 누릴 수 있음
-
DuckLake란 무엇인가요?
- DuckLake는 다음 세 가지를 지칭함:
-
DuckLake 포맷의 사양 (specification)
- DuckLake를 지원하는 DuckDB 확장 기능 (ducklake extension)
- DuckLake 포맷으로 저장된 데이터셋 자체
-
DuckLake의 라이선스는?