Delta Lake : une implémentation de framework de stockage ouvert
Aperçu du projet : Un framework de stockage open source qui permet de créer une architecture Lakehouse avec des moteurs de calcul tels que Spark, PrestoDB, Flink, Trino et Hive et des API.
En bref
- De quoi s’agit-il ?
- delta-io/delta est l'implémentation de référence du format Delta Lake, avec des connecteurs pour Spark, Flink, Trino et d'autres moteurs.
- À qui s’adresse-t-il ?
- Le README présente Delta Lake comme un framework de stockage ouvert dont le cœur est un protocole de journal de transactions et des intégrations avec plusieurs moteurs de calcul. Les détails de version, la configuration complète du stockage et les détails de concurrence sont renvoyés à la documentation externe ; cet article ne couvre que ce que le README déclare.
- Puis-je l’utiliser commercialement ?
- Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Le dépôt a reçu de nouveaux commits au cours des dernières 24 heures.
- En quel langage est-il écrit ?
- Principalement Scala, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Positionnement et portée du dépôt
delta-io/delta est un framework de stockage open source écrit en Scala. Le README le décrit comme permettant une architecture Lakehouse avec des moteurs de calcul comme Spark, PrestoDB, Flink, Trino et Hive, et des API pour Scala, Java, Rust, Ruby et Python. Le dépôt fait partie de plusieurs projets sous l'organisation delta-io, aux côtés de delta-rs, delta-sharing, kafka-delta-ingest et du dépôt du site web. Le README ne définit pas lui-même l'architecture Lakehouse ; il renvoie à un article externe et à la documentation Delta Lake.
Compatibilité : API et données des tables
Le README distingue deux types d'API. API directes Java, Scala et Python : les classes et méthodes documentées dans les docs API sont des API publiques stables ; tout le reste accessible dans le code est interne et peut changer entre les versions. API basées sur Spark : lecture et écriture via DataFrameReader/Writer et les variantes de streaming (spark.read, df.write, spark.readStream, df.writeStream) avec des options stables au sein d'une version majeure comme 1.x.x. Pour les données de tables, Delta Lake garantit la rétrocompatibilité : les versions plus récentes peuvent toujours lire les tables écrites par des versions plus anciennes. La compatibilité ascendante peut être rompue, c'est-à-dire qu'une version plus ancienne peut ne pas lire une table produite par une version plus récente. Les changements de protocole sont indiqués en incrémentant les versions minimales de lecteur/écrivain dans l'action Protocol.
Protocole de journal de transactions et prérequis de stockage
Les garanties ACID de Delta Lake dépendent de l'atomicité et de la durabilité du système de stockage sous-jacent. Le README énumère trois exigences : visibilité atomique (un fichier est soit entièrement visible, soit pas visible du tout), exclusion mutuelle (un seul écrivain peut créer ou renommer un fichier à sa destination finale) et listage cohérent (une fois qu'un fichier est écrit dans un répertoire, tous les listages futurs de ce répertoire doivent renvoyer ce fichier). Le protocole de journal de transactions lui-même est spécifié dans PROTOCOL.md, mais le README n'en résume pas le contenu.
Affirmations sur le contrôle de concurrence
Le README déclare que Delta Lake assure la sérialisabilité pour les lectures et écritures concurrentes et renvoie à la documentation sur le contrôle de concurrence de Delta Lake. Il n'explique pas le mécanisme ni les conditions dans lesquelles la garantie s'applique. Les lecteurs qui ont besoin des niveaux d'isolation, de la gestion des conflits ou des implications de performance devraient consulter cette documentation liée plutôt que de se fier à ce README.
Construction et développement local
Le projet se construit avec SBT. Le README exige Java 17 ou supérieur pour la compilation. Les commandes documentées sont build/sbt compile, build/sbt package et build/sbt test, avec un exemple plus spécifique pour exécuter une suite de tests unique. Pour les tests Python, le README demande de créer un environnement Conda à partir de python/environment.yml, de définir JAVA_HOME sur JDK 11 et d'exécuter python3 <delta-root>/python/run-tests.py. IntelliJ est l'IDE recommandé, avec un guide d'installation qui suppose également Java 11. Le README ne couvre pas d'autres outils de construction ou systèmes d'exploitation.
Intégrations nommées dans le README
Le README liste plusieurs intégrations populaires et renvoie à delta.io/integrations pour la liste complète. Apache Spark peut lire et écrire. Apache Flink est marqué comme aperçu et peut écrire. PrestoDB peut lire. Trino peut lire et écrire. Delta Standalone offre un accès en lecture et écriture aux projets Scala et Java. Apache Hive peut lire. L'API Delta Rust offre un accès de bas niveau aux tables Delta avec des liaisons Python et Ruby. Ces déclarations proviennent directement du README ; il ne donne pas de numéros de version, d'étapes d'installation ou de détails sur la maturité de production pour ces connecteurs.
Licence, communauté et canaux de contribution
Les métadonnées du dépôt indiquent la licence Apache-2.0 et le README mentionne Apache License 2.0, avec un lien vers un fichier LICENSE. Le matériel fourni ne contient pas le texte de la licence, donc cet article ne peut pas citer de termes spécifiques de garantie ou de licence. Le README fournit des canaux communautaires : inscription et connexion Slack, une page LinkedIn, une chaîne YouTube et une liste de diffusion publique. Les problèmes sont suivis via GitHub Issues, et les contributeurs sont dirigés vers CONTRIBUTING.md et le Code de conduite Delta Lake.
Conclusion éditoriale
Le README présente Delta Lake comme un framework de stockage ouvert dont le cœur est un protocole de journal de transactions et des intégrations avec plusieurs moteurs de calcul. Les détails de version, la configuration complète du stockage et les détails de concurrence sont renvoyés à la documentation externe ; cet article ne couvre que ce que le README déclare.
Notes de la communauté