Delta Lake是一个开源存储框架,可以使用包括Spark,PrestoDB,Flink,Trino和Hive在内的计算引擎以及Scala,Java,Rust,Ruby和Python的API构建Lakehouse架构。
以下是一些比较流行的Delta Lake集成,请参阅 delta.io/integrations 以获取完整列表:
有关最新版本,请参阅联机文档。
增量独立库是一个单节点 Java 库,可用于读取和写入增量表。具体来说,该库提供 API 与事务日志中的表元数据进行交互,实现增量事务日志协议,实现增量湖格式的事务保证。
Delta Lake 项目提供了两种类型的 API。
DataFrameReader
Writer
spark.read
df.write
spark.readStream
df.writeStream
Delta Lake保证了所有Delta Lake表的向后兼容性(即,较新版本的Delta Lake将始终能够读取由旧版本的Delta Lake编写的表)。但是,我们保留在事务协议引入新功能时中断前向兼容性的权利(即,旧版本的Delta Lake可能无法读取较新版本生成的表)。
协议中的重大更改通过增加操作中的最小读取器/写入器版本来指示。
Protocol
增量事务日志协议文档提供了事务协议的规范。
Delta Lake ACID 保证基于存储系统的原子性和持久性保证。具体而言,我们要求存储系统提供以下信息。
有关详细信息,请参阅有关存储配置的联机文档。
Delta Lake 可确保并发读取和写入的可序列化性。有关更多详细信息,请参阅三角洲湖并发控制。
我们使用 GitHub 问题来跟踪社区报告的问题。你也可以联系社区以获取答案。
我们欢迎对三角洲湖的贡献。有关更多详细信息,请参阅我们的 CONTRIBUTING.md。
我们还遵守三角洲湖泊行为准则。
Delta Lake是使用SBT编译的。
要编译,请运行
build/sbt compile
要生成工件,请运行
build/sbt package
要执行测试,请运行
build/sbt test
要执行单个测试套件,请运行
build/sbt 'testOnly org.apache.spark.sql.delta.optimize.OptimizeCompactionSuite'
要在单个测试套件中执行单个测试和单个测试套件,请运行
build/sbt 'testOnly *.OptimizeCompactionSuite -- -z "optimize command: on partitioned table - all partitions"'
有关更多命令,请参阅 SBT 文档。
IntelliJ 是开发 Delta Lake 时推荐使用的 IDE。要将三角洲湖作为新项目导入:
~/delta
File
New Project
Project from Existing Sources...
~/delta
Import project from external model
sbt
Next
Project JDK
1.8
project reload
builds
Finish
等待 IntelliJ 编制索引后,通过在 IntelliJ 中运行测试套件来验证你的设置。
DeltaLogSuite
Run 'DeltaLogSuite'
如果你看到表单的错误
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)
然后按照以下步骤操作:
build/sbt compile
File
Project Structure...
Modules
delta-core
Source Folders
target
target/scala-2.12/src_managed/main [generated]
Apply
Apache License 2.0,请参阅 LICENSE。
三角洲湖社区内有两种沟通媒介。