©著作权归作者所有:来自51CTO博客作者臭臭粑粑的原创作品,如需转载,请注明出处,否则将追究法律责任

聊聊Delta Lake - 1_Databricks

什么是Delta Lake?

看看Delta Lake官网给出的定义:

聊聊Delta Lake - 1_delta_02

Delta Lake就是一个开源的存储框架,而且是用来构建Lakehouse架构的存储框架。

这里简单说一下Lakehouse架构这个概念,Databricks应该是在2020年左右提出的,Databricks的联合创始人们2021年1月在CIDR’21线上发表了一篇题为:《Lakehouse: A New Generation of Open Platforms that Unify Data Warehousing and Advanced Analytics》的论文。


Lakehouse: A New Generation of Open Platforms that Unify Data Warehousing and Advanced Analytics


https://www.cidrdb.org/cidr2021/papers/cidr2021_paper17.pdf

简单理解就是Lakehouse架构整合了数据湖和数据仓库的优点,将二者统一到了一起,一个平台架构满足企业对不同格式(结构化,半结构化,非结构化)数据的不同业务需求:数据分析,报表,AI机器学习等。

那构建这个Lakehouse架构,Delta Lake就是基础。顺便说一下,Delta Lake也是Databricks家贡献给开源社区的。

既然Delta Lake是一种存储框架,那跟存储的关系到底是怎么样的呢?来看一下官网给的解释说明图:

聊聊Delta Lake - 1_Databricks_03

个人感觉这个图画的不是很清楚,让初学者不是太理解Delta Lake和存储的具体关系。其实他们在一个框,GOC, HDFS, ADLS, S3, IBM Cloud和ORACLE Cloud这些存储应该是背景图,Delta Lake在上面。Delta Lake推荐使用金银铜牌奖章分层结构。这个以后再详细介绍。

其实Delta Lake和Data Lake都是一个概念。物理表现形式上,跟你现在使用的数据湖唯一的区别就是当你往你的存储里写数据的时候,只要把数据格式声明为:delta格式,那它就是Delta Lake了。

而且需要注意的是,虽然在写数据时你声明是 `delta` 格式,但是保存的文件格式还是:parquet

有的同学可能会问,那delta和普通的parquet到底有什么区别?如何区分呢?具体的区别我们下期再聊。

另外想跟大家分享的是,构建Lakehouse架构呢,底层存储框架不只是有delta lake,目前比较流行的还有:Apache Hudi和Apache Iceberg。一些来自于UC Berkeley,斯坦福大学和Databricks的学者大佬们对目前市面上比较流行的存储框架做了分析对比,写了一篇论文:


Analyzing and Comparing Lakehouse Storage Systems


https://www.cidrdb.org/cidr2023/papers/p92-jain.pdf

聊聊Delta Lake - 1_Spark_04

聊聊Delta Lake - 1_delta_05

从综合的分析对比结果来看,delta还是很不错的,如果你用Databricks,搭配delta效果应该会更好,毕竟delta是Databricks开发的,捐给开源社区的,你懂得。

好了,本次就分享到这里,下期我们接着聊Delta Lake,该上手实操一下了。

点击关注本公众号,解锁更多Databricks知识!

聊聊Delta Lake - 1_delta_06

©著作权归作者所有:来自51CTO博客作者臭臭粑粑的原创作品,如需转载,请注明出处,否则将追究法律责任