随着数据技术的不断发展,见证了数据平台架构的演变。本文将带了解“Lakehouse”——一种新兴的数据平台构建方法,以及其背后的技术“Delta Lake”,它为Lakehouse提供了动力。
在90年代末至21世纪初,企业数据仓库的出现标志着数据存储和管理方式的一次重大变革。这些仓库能够通过标准化、集成和清洗数据,将不同源系统的数据存储起来。企业开始意识到,拥有一个中央数据存储比维护部门特定的数据库孤岛更具优势。很快,仓库成为了组织运行重型BI工作负载的默认数据存储。
然而,那是几十年前的事情了。到了2022年,正在讨论基于“数据网格”核心原则构建数据平台——尝试去中心化数据的存储、维护和管理方式。正在尝试实施领域驱动的数据平台,采用联合治理,每个业务单元都应遵循,以实现数据责任、创建数据产品并获得自助服务能力。
Lakehouse可以在这些现代架构中发挥重要作用——无论是基于数据网格原则构建的,还是集中管理的平台。
在当今世界,技术变化迅速,使得存储更便宜、计算引擎更强大。数据平台也应相应变化,利用这些变化构建更经济、更高效的数据生态系统。Lakehouse就是这样一种技术,它可以改变存储和管理数据的方式。它有可能提供仓库提供的所有功能,同时帮助实现数据湖的成本效益。
顾名思义,“Lakehouse”结合了“湖”和“仓库”的优势。它主要是一个使用云数据存储构建的数据湖,如AWS S3、Azure ADLS或Google Cloud存储。它拥有云存储的所有优点——成本更低、高可用性和持久性、支持非结构化数据等。
除了这些,Lakehouse还享有云仓库独有的特性,如ACID支持、时间旅行能力和更好的性能。
Lakehouse如何获得所有这些好处?秘诀发生在存储层面——不是数据存储的位置,而是数据存储的方式。
Delta Lake是Lakehouse背后的领先技术之一,它使Lakehouse符合ACID规范,并且比普通数据湖表现得更好。
Delta Lake是一个存储框架,帮助构建一个值得信赖的基于Lakehouse的数据平台。Delta Lake不是一个存储层也不是计算引擎。不应将其与S3、ADLS或Google Cloud Storage等对象存储进行比较。它是一个框架,位于这些对象存储之上。
如果想将其与任何现有技术进行比较(因为这是学习和理解任何新技术的最简单方式),可以将其与Hive表格式(而不是查询引擎)进行比较。就像Hive在HDFS存储之上提供了表格式一样,Delta在存储对象(如parquet文件)之上为提供了元数据。
那么,为什么应该关注Delta Lake呢?它是所有数据平台的未来吗?让首先解释Delta Lake提供的所有关键好处。
开源、社区驱动的框架:Delta Lake是一个开源框架,与其他一些领先的云仓库中使用的专有存储不同。它最初由Databricks创建,并在Linux基金会下开源。任何人都可以使用Delta Lake并为扩展其集成生态系统做出贡献。
与大多数广泛采用的计算引擎集成:它可以与Apache Spark、Presto、Trino、Kafka和Hive等计算引擎集成。它还支持Snowflake、Redshift和Synapse等领先的云仓库作为计算引擎来分析Delta Lake中的数据。
支持存储与计算分离的架构:真正的Lakehouse具有独立的存储和计算,并且可以启用任何外部计算引擎来分析Lakehouse内的数据。Delta Lake通过提供开放式存储框架与各种计算引擎集成来支持此功能。
支持统一的批处理和流处理工作负载:Delta Lake还可以帮助通过单一流程实现批处理和近实时用例来实现“Kappa”架构。Delta Lake支持低延迟(秒级)获取数据。
支持ACID和时间旅行:Delta Lake支持ACID特性,如仓库。不必担心数据损坏或处理并发写入和读取。它还支持时间旅行以从以前的时间和版本恢复数据。
支持模式演变和执行:它具有内置功能,可以验证需要加载到Delta Lake中的文件的模式。它还支持模式演变,在模式变化的情况下捕获额外的属性。
那么Delta是如何实现所有这些好处的呢?它如何为数据湖带来ACID能力?秘诀发生在存储层!
快速提示:对于大多数现代平台,性能提升是因为它们的存储方法,而不是计算引擎。无论是Snowflake、Redshift、Apache Hudi还是Delta——尝试了解它们如何存储数据,就会知道它们如何提供所有这些酷功能。
让尝试了解Delta如何存储数据。当创建一个Delta Lake并创建任何delta表时,它在存储层有两个主要部分:
dataset – 实际的数据文件作为parquet文件
delta log – 维护所有更改的事务日志。
Delta Lake如何存储数据和事务日志
Delta Log – Delta Lake的大脑
正是delta日志使Delta Lake如此强大和高效。它使ACID、时间旅行、扩展元数据等功能成为可能。
那么Delta日志做了什么?Delta日志保存了从创建delta表开始的delta表上每个事务的有序记录
。它记录了一切——新增文件、删除文件、元数据更改、提交和时间戳。