Delta Lake ist ein Open-Source-Speicherframework, das den Aufbau einer Lakehouse-Architektur mit Rechen-Engines wie Spark, PrestoDB, Flink, Trino und Hive sowie APIs für Scala, Java, Rust, Ruby und Python ermöglicht.
Im Folgenden sind einige der beliebtesten Delta-Lake-Integrationen aufgeführt. Die vollständige Liste finden Sie unter delta.io/integrations:
Die neueste Version finden Sie in der Online-Dokumentation.
Die Delta Standalone-Bibliothek ist eine Einzelknoten-Java-Bibliothek, die zum Lesen und Schreiben in Delta-Tabellen verwendet werden kann. Insbesondere stellt diese Bibliothek APIs für die Interaktion mit den Metadaten einer Tabelle im Transaktionsprotokoll bereit und implementiert das Delta Transaction Log Protocol, um die Transaktionsgarantien des Delta Lake-Formats zu erreichen.
Das Delta Lake-Projekt stellt zwei Arten von APIs bereit.
DataFrameReader
/ Writer
lesen (d. h. spark.read
, df.write
, spark.readStream
und df.writeStream
). Die Optionen dieser APIs bleiben innerhalb einer Hauptversion von Delta Lake (z. B. 1.xx) stabil.Delta Lake garantiert Abwärtskompatibilität für alle Delta Lake-Tabellen (dh neuere Versionen von Delta Lake können immer Tabellen lesen, die von älteren Versionen von Delta Lake geschrieben wurden). Wir behalten uns jedoch das Recht vor, die Kompatibilität zu unterbrechen, wenn neue Funktionen in das Transaktionsprotokoll eingeführt werden (z. B. kann eine ältere Version von Delta Lake möglicherweise eine von einer neueren Version erstellte Tabelle nicht lesen).
Wichtige Änderungen im Protokoll werden durch Erhöhen der minimalen Lese-/Schreibversion in der Protocol
angezeigt.
Das Delta Transaction Log Protocol-Dokument enthält eine Spezifikation des Transaktionsprotokolls.
Die ACID-Garantien von Delta Lake basieren auf den Atomizitäts- und Haltbarkeitsgarantien des Speichersystems. Konkret verlangen wir vom Speichersystem Folgendes:
Weitere Informationen finden Sie in der Online-Dokumentation zur Speicherkonfiguration.
Delta Lake stellt die Serialisierbarkeit für gleichzeitige Lese- und Schreibvorgänge sicher. Weitere Informationen finden Sie unter Delta Lake Concurrency Control.
Wir verwenden GitHub Issues, um von der Community gemeldete Probleme zu verfolgen. Sie können sich auch an die Community wenden, um Antworten zu erhalten.
Wir freuen uns über Spenden für Delta Lake. Weitere Informationen finden Sie auf unserer Seite CONTRIBUTING.md.
Wir halten uns außerdem an den Verhaltenskodex von Delta Lake.
Delta Lake wird mit SBT kompiliert.
Zum Kompilieren ausführen
build/sbt compile
Führen Sie Folgendes aus, um Artefakte zu generieren
build/sbt package
Um Tests auszuführen, führen Sie aus
build/sbt test
Um eine einzelne Testsuite auszuführen, führen Sie Folgendes aus:
build/sbt spark/'testOnly org.apache.spark.sql.delta.optimize.OptimizeCompactionSQLSuite'
Um einen einzelnen Test innerhalb einer einzelnen Testsuite auszuführen, führen Sie Folgendes aus
build/sbt spark/'testOnly *.OptimizeCompactionSQLSuite -- -z "optimize command: on partitioned table - all partitions"'
Weitere Befehle finden Sie in der SBT-Dokumentation.
IntelliJ ist die empfohlene IDE für die Entwicklung von Delta Lake. So importieren Sie Delta Lake als neues Projekt:
~/delta
.File
> New Project
> Project from Existing Sources...
und dann ~/delta
aus.Import project from external model
die Option sbt
aus. Klicken Sie auf Next
.Project JDK
ein gültiges Java 1.8
JDK an und entscheiden Sie sich für die Verwendung der SBT-Shell zum erneuten Laden und builds
project reload
.Finish
.Nachdem Sie auf die Indizierung durch IntelliJ gewartet haben, überprüfen Sie Ihr Setup, indem Sie eine Testsuite in IntelliJ ausführen.
DeltaLogSuite
und öffnen Sie esRun 'DeltaLogSuite'
Wenn Sie Fehler im Formular sehen
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)
Folgen Sie dann diesen Schritten:
build/sbt compile
.File
> Project Structure...
> Modules
> delta-spark
.Source Folders
alle target
, z. B. target/scala-2.12/src_managed/main [generated]
Apply
und führen Sie dann Ihren Test erneut aus. Apache-Lizenz 2.0, siehe LIZENZ.
Innerhalb der Delta Lake-Gemeinschaft gibt es zwei Kommunikationsmedien.