Ducklake
Format de fichier bigdata créé par duckdb
From Wikipedia, the free encyclopedia
DuckLake est un format de fichier dédié aux datalake open source conçu pour stocker et interroger des données analytiques sur des systèmes de stockage objet, tout en utilisant une base de données SQL standard pour gérer les métadonnées. Il est développé par les créateurs de DuckDB et vise à simplifier l’architecture des data lakes modernes.
| Développé par | Mark Raasveldt (d) et Hannes Mühleisen (d) |
|---|---|
| Première version | [1] |
| Dernière version | 1.0 ()[2] |
| Dépôt | github.com/duckdb/ducklake |
| Type | Format de fichier (en) |
| Licence | Licence MIT |
| Documentation | ducklake.select/docs/stable |
| Site web | ducklake.select |
Histoire
Ducklake est présenté en mai 2025 dans le DuckLake Manifesto[3], qui expose les motivations et principes du projet. En avril 2026, DuckLake atteint la version 1.0[4], marquant une version dite « prête pour la production », accompagnée d’une spécification stable et d’une implémentation de référence sous forme d’extension pour DuckDB.
Philosophie
Le DuckLake Manifesto repose sur plusieurs constats concernant les architectures modernes de data lakes :
- La séparation entre stockage et calcul est désormais standard et bénéfique.
- Les formats ouverts (comme Parquet) sont essentiels pour éviter l’enfermement propriétaire.
- Les formats actuels complexifient la gestion des métadonnées en les distribuant sous forme de fichiers.
DuckLake propose donc une approche alternative :
Fonctionnalités
DuckLake reprend plusieurs fonctionnalités clés des formats lakehouse modernes :
- transactions ACID ;
- gestion de versions (time travel) ;
- évolution de schéma ;
- séparation stockage/calcul.
Il introduit également des optimisations spécifiques, comme la notion "Data inlining"; Afin d'éviter la prolifération de petits fichiers ,améliorer les performances des charges de travail en streaming et réduire les besoins en opérations de maintenance (comme la compaction). DuckLake proposer stocker directement les petites modifications (insertions, suppressions, mises à jour) dans le catalogue SQL au lieu de créer immédiatement des fichiers de données.