Delta Lake开源,欲取代传统数据湖
极客时间编辑部
讲述:杜力大小:1.42M时长:03:06
近日,Databricks 宣布开源 Delta Lake 项目。Delta Lake 是一个存储层,为 Apache Spark 和其他大数据引擎提供可伸缩的 ACID 事务,让用户可以基于 HDFS 和云存储构建可靠的数据湖。
Delta Lake 除了可以解决传统数据湖的问题,如对数据湖进行的读写操作不可靠、数据质量较差、更新数据湖中的记录非常困难、随着数据量的增加性能变差等,Delta Lake 还简化了数据湖构建。以下是 Delta Lake 提供的主要功能。
1.ACID 事务
Delta Lake 提供多个写操作之间的 ACID 事务。事务日志会跟踪文件级的写操作,而且使用乐观并发控制。在存在冲突的场景中,Delta Lake 会抛出一个并发修改异常,以便用户处理它们并重试它们的作业。Delta Lake 还提供了强大的序列化隔离级别,允许工程师不断地对目录或表进行写操作,而用户可以不断地从相同的目录或表中读取数据。
2. 模式管理
Delta Lake 会自动验证正在写入的 DataFrame 模式是否与表的模式兼容。表中存在但 DataFrame 中不存在的列会被设置为 null。如果 DataFrame 中有额外的列在表中不存在,那么该操作将抛出异常。Delta Lake 具有可以显式添加新列的 DDL 和自动更新模式的能力。
3. 可伸缩的元数据处理
Delta Lake 将表或目录的元数据信息存储在事务日志中,而不是存储在元存储(metastore)中。这使得 Delta Lake 能够在固定的时间内列出大型目录中的文件,并且在读取数据时非常高效。
4. 数据版本控制和时间旅行
Delta Lake 允许用户读取表或目录先前的快照。当文件在写期间被修改时,Delta Lake 将创建文件的新版本并保存旧版本。当用户希望读取表或目录的旧版本时,他们可以向 Apache Spark 的读操作 API 提供一个时间戳或版本号,Delta Lake 根据事务日志中的信息构建该时间戳或版本的完整快照。这使得用户可以重新进行试验并生成报告,如果需要,还可以将表还原为旧版本。
5. 统一的批处理和流接收(streaming sink)
除了批处理写之外,Delta Lake 还可以使用 Apache Spark 的结构化流作为高效的流接收。再结合 ACID 事务和可伸缩的元数据处理,高效的流接收现在支持许多接近实时的分析用例,而且无需维护复杂的流和批处理管道。
此外,还有两个功能即将到来,一个是记录更新和删除,另一个是 Delta Lake 支持新的 API,用于设置表或目录的数据期望,工程师将能够通过指定布尔条件及调整严重程度来处理数据期望。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论