The Linux Foundation Projects
Delta Lake

Delta Lake 0.7.0 发布

作者:Denny Lee

主要功能

我们很高兴地宣布,Delta Lake 0.7.0 已在 Apache Spark 3.0 上发布。这是 Spark 3.x 上的第一个版本,增加了对元数据存储定义表和 SQL DDL 的支持。此版本中的主要功能如下。

  • 支持在 Hive 元数据存储中定义表 (#85) - 您现在可以在 Hive 元数据存储中定义 Delta 表,并在所有 SQL 操作中使用表名。具体来说,我们增加了对以下功能的支持:
    • SQL DDL 用于创建表插入到表显式更改表模式等。请参阅 ScalaPython 示例以获取详细信息。
    • DataFrame.saveAsTable(tableName)DataFrameWriterV2 APIs (#307)。DeltaTable.forName(tableName) API 用于创建 io.delta.tables.DeltaTable 实例 (#412)。此集成使用 Spark 3.0 中引入的 Catalog API。您必须在启动 SparkSession 时通过设置附加配置来启用 Delta Catalog。请参阅文档以获取详细信息。
  • 支持 SQL Delete、Update 和 Merge - 借助 Spark 3.0,您现在可以使用 SQL DML 操作 DELETEUPDATEMERGE。请参阅文档以获取详细信息。
  • 支持自动和增量 Presto/Athena 清单生成 (#453) - 您现在可以使用 ALTER TABLE SET TBLPROPERTIES 来启用在 Delta 表上的每次操作时自动重新生成 Presto/Athena 清单文件。此重新生成是增量的,即清单文件仅针对已由操作更新的分区进行更新。请参阅文档以获取详细信息。
  • 支持控制表历史记录的保留时间 - 您现在可以使用 ALTER TABLE SET TBLPROPERTIES 来配置 Delta 表中表历史记录和删除文件的维护时间。请参阅文档以获取详细信息。
  • 支持在 Delta 表提交中添加用户定义元数据 - 您现在可以通过任何操作将用户定义元数据作为字符串添加到对 Delta 表的提交中。对于 DataFrame.writeDataFrame.writeStream 操作,您可以设置选项 userMetadata。对于其他操作,您可以设置 SparkSession 配置 spark.databricks.delta.commitInfo.userMetadata。请参阅文档以获取详细信息。
  • 支持 Azure Data Lake Storage Gen2 (#288) - Spark 3.0 支持 Hadoop 3.2 库,这使得支持 Azure Data Lake Storage Gen2 成为可能。请参阅文档以获取有关如何使用正确版本的 Spark 和 Hadoop 库配置 Delta Lake 以支持 Azure 存储系统的详细信息。
  • 改进了对流式一次性触发器的支持 - 借助 Spark 3.0,我们现在确保 一次性触发器(也称为 Trigger.Once)即使在通过 DataStreamReader 选项 maxFilesPerTrigger 设置了速率限制的情况下,也能在单个微批处理中处理 Delta 表中的所有未完成数据。

由于内部发生重大变化,使用 DeltaTable 编程 API 的先前版本的 Delta 上的工作负载可能需要额外更改才能迁移到 0.7.0。请参阅迁移指南以获取详细信息。

致谢

Alan Jin、Alex Ott、Burak Yavuz、Jose Torres、Pranav Anand、QP Hou、Rahul Mahadev、Rob Kelly、Shixiong Zhu、Subhash Burramsetty、Tathagata Das、Wesley Hoffman、Yin Huai、Youngbin Kim、Zach Schuermann、Eric Chang、Herman van Hovell、Mahmoud Mahdi

感谢您的贡献。

请访问发行说明了解有关此版本的更多信息。