1. 引入

在Databricks的过去几年中,我们看到了一种新的数据管理范式,该范式出现在许多客户和案例中:LakeHouse。在这篇文章中,我们将描述这种新范式及其相对于先前方案的优势。

数据仓库技术自1980诞生以来一直在发展,其在决策支持和商业智能应用方面拥有悠久的历史,而MPP体系结构使得系统能够处理更大数据量。但是,虽然数据仓库非常适合结构化数据,但许多现代企业必须处理非结构化数据、半结构化数据以及具有高多样性,高速度和高容量的数据。数据仓库不适用于许多此类场景,并且也不是最具成本效益的。

随着公司开始从许多不同源收集大量数据,架构师开始构想一个单一的系统来容纳不同分析产品和工作负载的数据。大约十年前,公司开始构建数据湖:各种格式原始数据的存储库。数据湖虽然适合存储数据,但缺少一些关键功能:不支持事务、无法提高数据质量、缺乏一致性/隔离性,导致几乎不可能混合处理追加(append)和读取,批处理和流处理作业。由于这些原因,数据湖之前的许多承诺尚未实现,在许多情况下还会失去数据仓库的许多好处。

公司对灵活、高性能系统的需求并未减少,如需要各类数据应用程序包括SQL分析、实时监控、数据科学和机器学习的系统。人工智能的大部分最新进展是有可用于更好处理非结构化数据(文本,图像,视频,音频)的模型,这些恰恰是数据仓库未针对优化的数据类型。一种常见的解决方案是使用多个系统,即一个数据湖、几个数据仓库以及其他专用系统(如流、时间序列、图形和图像数据库系统)。维护大量系统会引入额外的复杂性,更重要的是会带来延迟,因为数据专业人员需要在不同系统间移动或复制数据。

2. 什么是LakeHouse?

解决数据湖限制的新系统开始出现,LakeHouse是一种结合了数据湖和数据仓库优势的新范式。LakeHouse使用新的系统设计:直接在用于数据湖的低成本存储上实现与数据仓库中类似的数据结构和数据管理功能。如果你现在需要重新设计数据仓库,鉴于现在存储(以对象存储的形式)廉价且高可靠,不妨可以使用LakeHouse。

LakeHouse有如下关键特性:

事务支持:企业内部许多数据管道通常会并发读写数据。对ACID事务支持确保了多方可使用SQL并发读写数据。•模式执行和治理(Schema enforcement and governance):LakeHouse应该有一种可以支持模式执行和演进、支持DW模式的范式(如star/snowflake-schemas)。该系统应该能够推理数据完整性,并具有健壮的治理和审计机制。•BI支持:LakeHouse可以直接在源数据上使用BI工具。这样可以提高数据新鲜度,减少等待时间,降低必须同时在数据湖和数据仓库中操作两个数据副本的成本。•存储与计算分离:这意味着存储和计算使用单独的集群,因此这些系统能够支持更多用户并发和更大数据量。一些现代数据仓库也具有此属性。•开放性:使用的存储格式(如Parquet)是开放式和标准化的,并提供API以便各类工具和引擎(包括机器学习和Python / R库)可以直接有效地访问数据。•支持从非结构化数据到结构化数据的多种数据类型:LakeHouse可用于存储、优化、分析和访问许多数据应用所需的包括图像、视频、音频、半结构化数据和文本等数据类型。•支持各种工作负载:包括数据科学、机器学习以及SQL和分析。可能需要多种工具来支持这些工作负载,但它们底层都依赖同一数据存储库。•端到端流:实时报表是许多企业中的标准应用。对流的支持消除了需要构建单独系统来专门用于服务实时数据应用的需求。

以上是LakeHouse的关键特性,企业级系统可能还需要其他功能特性,如安全和访问控制工具是基本要求,尤其是根据最近的隐私法规,包括审核、保留和沿袭(lineage)在内的数据治理功能变得至关重要。可能还需要使用数据发现( data discovery )工具,例如数据目录(catalog)和数据使用指标。使用LakeHouse,那么就只需为单个系统实施、测试和管理此类企业功能。

3. 早期示例

Databricks平台具有LakeHouse的特性。微软的Azure Synapse Analytics服务与Azure Databricks集成,可实现类似LakeHouse模式,其他托管服务(例如BigQuery和Redshift Spectrum)具有上面列出的一些LakeHouse功能特性,但它们是主要针对BI和其他SQL应用。企业若想构建系统,可参考适合于构建LakeHouse的开源文件格式(Delta Lake,Apache Iceberg,Apache Hudi)。

将数据湖和数据仓库合并至一个系统意味着数据团队可以更快地移动,因为他们无需访问多个系统便可使用数据。在早期的LakeHouse中,SQL与BI工具的集成通常足以满足大多数企业数据仓库的需求。虽然可以使用物化视图和存储过程,但用户可能需要采用其他机制,这些机制与传统数据仓库中的机制不同。后者对于“lift and shift scenarios”尤为重要,“lift and shift scenarios”要求系统所具有的语义与旧的商业数据仓库的语义几乎相同。

LakeHouse对其他类型数据应用的支持又如何呢?LakeHouse的用户可以使用各种标准工具(Spark,Python,R,机器学习库)来处理如数据科学和机器学习等非BI工作负载。数据探索和加工是许多分析和数据科学应用程序的标准。Delta Lake可以让用户逐步改进LakeHouse的数据质量,直到可以使用为止。

尽管分布式文件系统可以用于存储层,但对象存储在LakeHouse中更为常见。对象存储提供低成本、高可用的存储,在大规模并发读取方面表现出色,这是现代数据仓库的基本要求。

4. 从BI到AI

LakeHouse是一种新的数据管理范式,从根本上简化了企业数据基础架构,并且有望在机器学习已渗透到每个行业的时代加速创新。过去公司产品或决策中涉及的大多数数据都是来自操作系统的结构化数据,而如今,许多产品都以计算机视觉和语音模型、文本挖掘等形式集成了AI。而为什么要使用LakeHouse而不是数据湖来进行AI?是因为LakeHouse可以提供数据版本控制、治理、安全性和ACID属性,即使对于非结构化数据也是如此。

当前LakeHouse降低了成本,但它们的性能仍然落后于专门的系统(如数据仓库),但这些系统需要数年的投入和实际部署。同时用户可能会偏爱某些工具(BI工具,IDE,笔记本电脑),因此LakeHouse也需要改善其UX以及与流行工具的连接器,以便更具吸引力。随着技术的不断成熟和发展,这些问题将得到解决。随着时间推移,LakeHouse将缩小这些差距,同时保留服务各种数据应用的更简单、更具成本效益和更强大的能力的核心属性。