Delta Lake est 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 pour Scala, Java, Rust, Ruby et Python.
Voici quelques-unes des intégrations Delta Lake les plus populaires. Reportez-vous à delta.io/integrations pour la liste complète :
Consultez la documentation en ligne pour connaître la dernière version.
La bibliothèque Delta Standalone est une bibliothèque Java à nœud unique qui peut être utilisée pour lire et écrire dans les tables Delta. Plus précisément, cette bibliothèque fournit des API pour interagir avec les métadonnées d'une table dans le journal des transactions, en implémentant le protocole Delta Transaction Log pour obtenir les garanties transactionnelles du format Delta Lake.
Il existe deux types d'API fournis par le projet Delta Lake.
DataFrameReader
/ Writer
(c'est-à-dire spark.read
, df.write
, spark.readStream
et df.writeStream
). Les options de ces API resteront stables dans une version majeure de Delta Lake (par exemple, 1.xx).Delta Lake garantit une compatibilité ascendante pour toutes les tables de Delta Lake (c'est-à-dire que les versions plus récentes de Delta Lake pourront toujours lire les tables écrites par des versions plus anciennes de Delta Lake). Cependant, nous nous réservons le droit de modifier la compatibilité à mesure que de nouvelles fonctionnalités sont introduites dans le protocole de transaction (c'est-à-dire qu'une ancienne version de Delta Lake peut ne pas être en mesure de lire un tableau produit par une version plus récente).
Les changements importants dans le protocole sont indiqués en incrémentant la version minimale du lecteur/enregistreur dans l'action Protocol
.
Le document Delta Transaction Log Protocol fournit une spécification du protocole de transaction.
Les garanties Delta Lake ACID reposent sur les garanties d’atomicité et de durabilité du système de stockage. Plus précisément, nous exigeons que le système de stockage fournisse les éléments suivants.
Consultez la documentation en ligne sur la configuration du stockage pour plus de détails.
Delta Lake garantit la sérialisabilité pour les lectures et écritures simultanées. Veuillez consulter le contrôle de concurrence de Delta Lake pour plus de détails.
Nous utilisons les problèmes GitHub pour suivre les problèmes signalés par la communauté. Vous pouvez également contacter la communauté pour obtenir des réponses.
Nous apprécions les contributions à Delta Lake. Consultez notre CONTRIBUTING.md pour plus de détails.
Nous adhérons également au code de conduite de Delta Lake.
Delta Lake est compilé à l'aide de SBT.
Pour compiler, exécutez
build/sbt compile
Pour générer des artefacts, exécutez
build/sbt package
Pour exécuter des tests, exécutez
build/sbt test
Pour exécuter une seule suite de tests, exécutez
build/sbt spark/'testOnly org.apache.spark.sql.delta.optimize.OptimizeCompactionSQLSuite'
Pour exécuter un seul test dans une seule suite de tests, exécutez
build/sbt spark/'testOnly *.OptimizeCompactionSQLSuite -- -z "optimize command: on partitioned table - all partitions"'
Reportez-vous à la documentation SBT pour plus de commandes.
IntelliJ est l'IDE recommandé à utiliser lors du développement de Delta Lake. Pour importer Delta Lake en tant que nouveau projet :
~/delta
.File
> New Project
> Project from Existing Sources...
et sélectionnez ~/delta
.Import project from external model
sélectionnez sbt
. Cliquez sur Next
.Project JDK
spécifiez un JDK Java 1.8
valide et choisissez d'utiliser le shell SBT pour le rechargement et builds
project reload
.Finish
.Après avoir attendu l'indexation d'IntelliJ, vérifiez votre configuration en exécutant une suite de tests dans IntelliJ.
DeltaLogSuite
Run 'DeltaLogSuite'
Si vous voyez des erreurs du formulaire
Error:(46, 28) object DeltaSqlBaseParser is not a member of package io.delta.sql.parser
import io.delta.sql.parser.DeltaSqlBaseParser._
...
Error:(91, 22) not found: type DeltaSqlBaseParser
val parser = new DeltaSqlBaseParser(tokenStream)
puis suivez ces étapes :
build/sbt compile
.File
> Project Structure...
> Modules
> delta-spark
.Source Folders
supprimez tous les dossiers target
, par exemple target/scala-2.12/src_managed/main [generated]
Apply
, puis réexécutez votre test. Licence Apache 2.0, voir LICENCE.
Il existe deux moyens de communication au sein de la communauté de Delta Lake.