DeltaLake介绍

概述

DeltaLake是DataBricks的一个开源项目,它是带ACID的开源存储层,可为数据湖(data lake)带来可靠性。它和Spark的API完全兼容。

总体架构图

在这里插入图片描述

DeltaLake的关键特点和优势

ACID事务(ACID Transactions)

Data lakes(数据湖)通常具有多个数据管道并发读取和写入数据,并且由于缺少事务,数据工程师必须经过繁琐的过程才能确保数据完整性。Delta Lake将ACID事务引入数据湖。它提供了可序列化性,和最强的隔离级别。

说明:在进行数据读取或写入时经常需要考虑该过程的完整性,而要保证该性质需要多做很多额外的工作,Data lakes把这个过程进行了封装,读取和写入数据事务性。

可伸缩的元数据处理(Scalable Metadata Handling)

在大数据中,元数据本身也可以是“大数据”。Delta Lake将元数据像数据一样对待,利用Spark的分布式处理能力来处理其所有元数据。因此,Delta Lake可以轻松处理具有数十亿个分区和文件的PB级表。

时间回溯(数据版本控制)(Time Travel (data versioning))

Delta Lake提供了数据快照,使开发人员可以访问和还原到较早版本的数据以进行审计,回滚或重现实验。可以在这篇文章中了解更多这方面的信息。

说明:Data lakes可以保留数据集的历史版本,这对于数据处理提供了可靠性的保证。

开放格式(Open Format)

Delta Lake中的所有数据均以Apache Parquet格式存储,从而使Delta Lake能够利用Parquet固有的高效压缩和编码方案。

统一批处理和流源和接收器(Unified Batch and Streaming Source and Sink)

Delta Lake中的表既是批处理表,又是流式数据源的接收器。流数据提取,批处理历史回溯和交互式查询都可以直接使用。

说明:把批和流的数据源的接入进行了抽象,这样可以统一接入流或批处理的多个数据源。

强制表结构(Schema Enforcement)

Delta Lake提供了指定和强制表结构的功能。这有助于确保数据类型正确和存在必需的列,从而防止不良数据导致数据损坏。有关更多信息,请参考:《Delta Lake:表结构实现和演变》。

说明:强制表结构,可以保证数据正确性,特别是为机器学习进行特征计算时,这种强制的特性让特征的计算更加可靠。

表结构演变(Schema Evolution)

大数据在不断变化。Delta Lake使您能够修改可自动应用的表结构,而无需繁琐的DDL。有关更多信息,请参考:《Delta Lake:表结构实现和演变》。

说明:方便对表结构进行自动应用的修改。

历史操作审查(Audit History)

Delta Lake事务日志记录有关数据所做的每项更改的详细信息,从而提供对更改的完整审核跟踪。

更新和删除数据

Delta Lake支持Scala / Java API合并,更新和删除数据集。这使您可以轻松遵守GDPR和CCPA,还可以简化诸如变更数据捕获之类的用例。有关更多信息,请参阅使用Python API在Delta Lake Tables上宣布Delta Lake 0.3.0版本和简单,可靠的更新和删除,其中包括用于合并,更新和删除DML命令的代码段。

说明:可以更加方便的对数据集进行修改和删除。

100%与Apache Spark API兼容

开发人员可以与现有的数据管道一起使用Delta Lake,而只需很少的更改,因为它与常用的大数据处理引擎Spark完全兼容。

说明:可以转成df或rdd,这样就可以使用spark原生态的算子,也可以很容易的转成Data lakes。

总结

本文介绍了Delta Lake数据湖的基本概念和优势。
该数据湖很多的特性都非常有用,对于数据集的管理和数据处理提供了很好的工具。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章