Delta Lake es un marco de almacenamiento de código abierto que permite construir una arquitectura Lakehouse con motores informáticos que incluyen Spark, PrestoDB, Flink, Trino y Hive y API para Scala, Java, Rust, Ruby y Python.
Las siguientes son algunas de las integraciones de Delta Lake más populares; consulte delta.io/integrations para obtener la lista completa:
Consulte la documentación en línea para conocer la última versión.
La biblioteca independiente Delta es una biblioteca Java de un solo nodo que se puede utilizar para leer y escribir en tablas Delta. Específicamente, esta biblioteca proporciona API para interactuar con los metadatos de una tabla en el registro de transacciones, implementando el Protocolo de registro de transacciones Delta para lograr las garantías transaccionales del formato Delta Lake.
Hay dos tipos de API proporcionadas por el proyecto Delta Lake.
DataFrameReader
/ Writer
(es decir, spark.read
, df.write
, spark.readStream
y df.writeStream
). Las opciones para estas API permanecerán estables en una versión importante de Delta Lake (por ejemplo, 1.xx).Delta Lake garantiza compatibilidad con versiones anteriores de todas las tablas de Delta Lake (es decir, las versiones más nuevas de Delta Lake siempre podrán leer tablas escritas en versiones anteriores de Delta Lake). Sin embargo, nos reservamos el derecho de interrumpir la compatibilidad a medida que se introducen nuevas funciones en el protocolo de transacciones (es decir, es posible que una versión anterior de Delta Lake no pueda leer una tabla producida por una versión más nueva).
Los cambios importantes en el protocolo se indican incrementando la versión mínima del lector/escritor en la acción Protocol
.
El documento Delta Transaction Log Protocol proporciona una especificación del protocolo de transacción.
Las garantías de Delta Lake ACID se basan en las garantías de atomicidad y durabilidad del sistema de almacenamiento. Específicamente, requerimos que el sistema de almacenamiento proporcione lo siguiente.
Consulte la documentación en línea sobre Configuración de almacenamiento para obtener más detalles.
Delta Lake garantiza la serialización para lecturas y escrituras simultáneas. Consulte Control de concurrencia de Delta Lake para obtener más detalles.
Usamos GitHub Issues para rastrear los problemas reportados por la comunidad. También puede ponerse en contacto con la comunidad para obtener respuestas.
Damos la bienvenida a las contribuciones a Delta Lake. Consulte nuestro CONTRIBUTING.md para obtener más detalles.
También cumplimos con el Código de conducta de Delta Lake.
Delta Lake se compila utilizando SBT.
Para compilar, ejecute
build/sbt compile
Para generar artefactos, ejecute
build/sbt package
Para ejecutar pruebas, ejecute
build/sbt test
Para ejecutar un único conjunto de pruebas, ejecute
build/sbt spark/'testOnly org.apache.spark.sql.delta.optimize.OptimizeCompactionSQLSuite'
Para ejecutar una única prueba dentro de un único conjunto de pruebas, ejecute
build/sbt spark/'testOnly *.OptimizeCompactionSQLSuite -- -z "optimize command: on partitioned table - all partitions"'
Consulte los documentos de SBT para obtener más comandos.
IntelliJ es el IDE recomendado para usar al desarrollar Delta Lake. Para importar Delta Lake como un nuevo proyecto:
~/delta
.File
> New Project
> Project from Existing Sources...
y seleccione ~/delta
.Import project from external model
seleccione sbt
. Haga clic Next
.Project JDK
especifique un JDK Java 1.8
válido y opte por utilizar el shell SBT para la recarga y builds
project reload
.Finish
.Después de esperar a que IntelliJ se indexe, verifique su configuración ejecutando un conjunto de pruebas en IntelliJ.
DeltaLogSuite
Run 'DeltaLogSuite'
Si ve errores en el formulario
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)
luego sigue estos pasos:
build/sbt compile
.File
> Project Structure...
> Modules
> delta-spark
.Source Folders
elimine las carpetas target
, por ejemplo, target/scala-2.12/src_managed/main [generated]
Apply
y luego vuelva a ejecutar la prueba. Licencia Apache 2.0, ver LICENCIA.
Hay dos medios de comunicación dentro de la comunidad de Delta Lake.