Delta Lake 0.8.0 发布
作者:Denny Lee
主要功能
我们很高兴地宣布 Delta Lake 0.8.0 版本发布。此版本的主要功能如下。
- Scala、Java 和 Python 中合并操作支持无限个 MATCHED 和 NOT MATCHED 子句 - 合并操作现在支持任意数量的 whenMatched 和 whenNotMatched 子句。此外,无条件删除匹配行的合并查询不再在多个匹配上抛出错误。详见文档。
- MERGE 操作现在支持嵌套列的模式演进 - 嵌套列的模式演进现在与顶层列的语义相同。例如,新的嵌套列可以自动添加到 StructType 列中。详见合并中的自动模式演进。
- MERGE INTO 和 UPDATE 操作现在按名称解析嵌套结构列 - UPDATE 和 MERGE INTO 命令现在按名称解析嵌套结构列。也就是说,当比较或分配 StructType 类型的列时,嵌套列的顺序无关紧要(与顶层列的顺序完全相同)。要恢复按位置解析,请将 Spark 配置
"spark.databricks.delta.resolveMergeUpdateStructsByName.enabled"
设置为"false"
。 - Delta 表上的检查约束 - Delta 现在支持
CHECK
约束。提供后,Delta 会自动验证添加到表中的数据是否满足指定的约束表达式。要添加CHECK
约束,请使用ALTER TABLE ADD CONSTRAINTS
命令。详见文档。 - 从特定版本开始流式传输表 (#474) - 当使用 Delta 作为流式源时,您可以使用
startingTimestamp
或startingVersion
选项从给定版本开始处理表。您还可以将startingVersion
设置为latest
以跳过表中的现有数据并从新传入的数据开始流式传输。详见文档。 - VACUUM 支持并行删除 (#395) - 当使用
VACUUM
时,您可以将会话配置 “spark.databricks.delta.vacuum.parallelDelete.enabled
” 设置为 “true
”,以便使用 Spark 并行删除文件(基于 shuffle 分区的数量)。详见文档。 - 使用 Scala 隐式简化读写 API - 您可以导入
io.delta.implicits._
以使用delta
方法与 Spark 读写 API,例如spark.read.delta("/my/table/path")
。详见文档。
致谢
Adam Binford, Alan Jin, Alex liu, Ali Afroozeh, Andrew Fogarty, Burak Yavuz, David Lewis, Gengliang Wang, HyukjinKwon, Jacek Laskowski, Jose Torres, Kian Ghodoussi, Linhong Liu, Liwen Sun, Mahmoud Mahdi, Maryann Xue, Michael Armbrust, Mike Dias, Pranav Anand, Rahul Mahadev, Scott Sandre, Shixiong Zhu, Stephanie Bodoff, Tathagata Das, Wenchen Fan, Wesley Hoffman, Xiao Li, Yijia Cui, Yuanjian Li, Zach Schuermann, contrun, ekoifman, Yi Wu
感谢您的贡献。
请访问发行说明以了解更多关于此版本的信息。