오픈소스 분석형 데이터베이스 DuckDB가 SQL과 Parquet(파케이) 파일 형식을 기반으로 하는 새로운 개방형 레이크하우스(Lakehouse) 형식인 'DuckLake'를 공개했습니다. DuckLake는 DuckDB 확장(extension)을 통해 데이터를 직접 읽고 쓸 수 있으며, 메타데이터는 별도의 카탈로그 데이터베이스에, 실제 데이터는 Parquet 파일에 분리하여 저장하는 구조를 가집니다. 이를 통해 사용자는 표준 SQL만으로 테이블 생성, 데이터 삽입, 수정, 조회 등 다양한 데이터 작업을 수행할 수 있습니다.
DuckLake의 핵심 기능으로는 특정 시점의 데이터를 조회할 수 있는 타임 트래블(Time Travel), 기존 테이블에 새로운 열을 추가할 수 있는 스키마 변경(Schema Evolution), 그리고 지정된 스냅샷(snapshot) 범위 내의 변경 이력을 확인할 수 있는 변경 데이터 피드(Change Data Feed) 등이 있습니다. 예를 들어, ATTACH 명령으로 DuckLake 데이터베이스를 연결한 후, `ALTER TABLE ... ADD COLUMN` 구문으로 스키마를 변경하거나, `AT (VERSION => N)` 구문으로 과거 데이터를 조회할 수 있습니다. 변경 데이터 피드는 스냅샷 ID, 행 ID, 변경 유형 등 상세한 변경 내역을 제공하여 데이터 감사(auditing) 및 복구에 유용합니다.
DuckLake는 Apache Iceberg(아이스버그)나 Delta Lake(델타 레이크)와 같은 기존 레이크하우스 형식의 대안으로 주목받고 있습니다. 특히, DuckDB를 필수적으로 요구하지 않는 개방형 명세(specification)로 설계되어, Rust(러스트) 기반의 DataFusion(데이터퓨전)과 같은 다른 데이터 처리 엔진에서도 구현될 수 있습니다. 이는 사용자가 특정 벤더나 기술 스택에 얽매이지 않고 유연하게 데이터 인프라를 구축할 수 있게 하며, 저지연(low-latency) 데이터 처리 요구사항에 더 적합한 경량 솔루션이 될 수 있습니다. 다만, 아직 알파 버전 수준의 소프트웨어이므로 실제 운영 환경에 적용하기 전에 버그 및 성능 이슈를 충분히 검토할 필요가 있습니다.
이러한 DuckLake의 등장은 데이터 레이크하우스 아키텍처의 유연성과 접근성을 한층 더 높일 것으로 기대됩니다. 특히 DuckDB의 경량성과 임베디드(embedded) 특성이 결합되어, 소규모 데이터셋이나 엣지(edge) 환경에서도 강력한 분석 기능을 제공할 수 있습니다. 개발자들은 DuckLake를 활용하여 에이전트 실행 추적 기록과 같은 다양한 유형의 데이터를 효율적으로 관리하고 분석하는 새로운 방법을 모색할 수 있을 것입니다.