数据湖存储方案Lakehouse带来数据仓库架构的提升

译文 精选
存储 存储架构
本文将从概念上向您重点介绍如何改进当前的数据湖平台,并最终将其变成Lakehouse,以增强架构模式,进而改造传统的数据仓库。

众所周知,数据仓库的初始架构旨在通过把来自各种异构数据源的数据,收集到集中式的存储库中,以提供分析的见解,并充当决策支持和商业智能(business intelligence,BI)的支点。不过,由于它只能支持写入时模式(schema-on-write),而无法存储非结构化的数据、不能与计算紧密集成、以及只能实现本地设备存储,因此近年来,数据仓库碰到了诸如数据模型设计耗时过长等各种挑战。

尽管目前的数据仓库能够支持以在线分析处理(OLAP)服务器作为中间层的三层架构,但是它仍然属于一种被用于机器学习和数据科学的整合平台。此类平台虽然具有元数据层、缓存层和索引层,但是这些层次并非单独存在。下面,我将向您重点介绍如何改进当前的数据湖平台,并最终将其变成Lakehouse,以增强架构模式,进而改造传统的数据仓库。

传统数据仓库平台的架构

HDFS

上图展示了传统数据仓库平台的逻辑架构。近年来,随着音频、视频等非结构化数据集的快速增长,许多组织和企业都在寻找和探索某种高级的替代产品,以解决与传统数据仓库系统相关的复杂性问题(正如本文开头所提到的各种痛点)。目前,业界常用的是于2006年面世的Apache Hadoop生态系统。通过利用HDFS(Hadoop分布式文件系统),它解决了在被加载到传统数据仓库系统之前,将原始数据提取并转换为结构化格式(即:行和列的形式)的主要瓶颈问题。

HDFS不但能够处理在商用硬件上运行的大型数据集,而且可以适应通常具有GB和TB体量的数据集应用程序。此外,它还可以通过在集群上添加新的节点,来进行水平扩展,以适应海量的数据,而无需考虑任何数据格式的需求。你可以通过链接—https://dataview.in/installation-of-apache-hadoop-3-2-0/,来进一步了解如何在多节点集群上安装和配置Apache Hadoop。

Hadoop生态系统(Apache Hive)的另一个优势在于,它支持读取时模式(schema-on-read)。由于传统数据仓库具有严格的写入时模式原则,因此ETL(Extract-Transform-Load的缩写)步骤在遵守已设计好的表空间时,非常耗费时间。而通过一行语句,我们可以将数据湖定义为一个存储库,以存储大量原始数据的原生格式(包括:结构化、非结构化和半结构化等),以用于后续分析,预测分析,通过执行机器学习代码与APP,来构建算法等大数据处理操作。

数据湖架构

如上图所示,由于没有适合的数据模式,因此数据湖在加载之前不需要进行任何数据转换,那么如何保持数据质量便成了一个大问题。数据湖并没有完全具备解决数据治理和安全相关问题的能力。因此,机器学习(ML)以及数据科学的应用,需要使用非SQL代码,来处理海量的数据,以便成功地部署和运行在数据湖上。但是与SQL引擎相比,由于缺乏已优化的处理引擎,因此数据湖往往无法很好地服务此类应用。而且,仅靠这些引擎,是不足以解决数据湖的所有问题,甚至取代数据仓库的。此外,数据湖中仍然缺少诸如ACID(原子性,atomicity;一致性,consistency;隔离性,isolation;持久性durability)属性等功能、以及索引等高效的访问方法。据此,构建在它上面的机器学习和数据科学等应用,也会遇到例如数据质量、一致性和隔离性等数据管理问题。因此,数据湖需要额外的工具和技术,来支持SQL查询,以便执行各种商业智能和报告。

Lakehouse

借助着S3、HDFS、Azure Blob等数据湖的处理能力,Lakehouse结合了数据湖的低成本存储优势,以开放的格式为各种系统提供访问,并凸显了数据仓库强大的管理和优化功能。目前,​​Databricks​​​和​​AWS​​都相继引入了数据Lakehouse的概念。

数据Lakehouse架构的多层架构

Lakehouse能够提高各种高级分析负载的速度,并为其提供更好的数据管理功能。如上图所示,Lakehouse通常分为五层,它们分别是摄取层、存储层、元数据层、API 层、以及最后的消费层。

  • 摄取层是Lakehouse的第一层,负责从各种来源提取数据,并将其传送到存储层。该层可以使用各种组件来摄取数据。其中包括:用于从IoT设备处流式传输数据的Apache Kafka、用于从关系数据库管理系统(Relational Database Management System,RDBMS)处导入数据的Apache Sqoop、以及支持批量数据处理的更多组件。
  • 由于计算层和存储层得到了分离,因此数据Lakehouse最适合云存储库服务。它可以利用HDFS平台在本地得以实施。在设计上,Lakehouse允许开发者将各种数据保存在诸如AWS S3等低成本对象的存储中,并作为使用标准文件格式(例如Apache Parquet)的对象。
  • Lakehouse中的元数据层负责为湖存储(lake storage)中的所有对象提供元数据(即,提供有关其他数据片段信息的数据)。此外,它还可以管理如下方面:
  1. 确保并发各项ACID事务
  2. 使用更快的存储设备(如,处理节点上的SSD和RAM)缓存来自云服务对象所存储的文件
  3. 通过索引,以加快查询的速度
  • Lakehouses中的API层提供了两种类型的API:声明性DataFrame API和SQL API。在DataFrame API的帮助下,数据科学家可以直接使用数据,来执行他们的各种应用。例如,TensorFlow和Spark MLlib等机器学习代码库,可以读取Parquet等开放的文件格式,并直接查询元数据层。而SQL API可以用于为组合业务分析、数据挖掘、数据可视化等商业智能、以及各种报告类工具,获取数据。
  • 最后,消费层包含了诸如Power BI、Tableau等各种工具和应用。整个企业的所有用户都可以使Lakehouse的消费层,来执行各种分析任务。其中包括:商业智能化仪表板、数据可视化、SQL查询、以及机器学习作业等。

此外,Lakehouse架构也最适合在组织内部,为各种数据提供单点式访问。

小结

Lakehouse架构是应对数据提纯的复杂性、查询的兼容性、热数据的缓存等需求产生的。目前,该单体架构尚处于初级阶段。但是,在不久的将来,Lakehouse作为一种数据工具,将能够实现数据发现、数据使用指标、数据治理等更加丰富的功能。

原文标题:The Lakehouse: An Uplift of Data Warehouse Architecture,作者:Gautam Goswami


责任编辑:华轩 来源: 51CTO
相关推荐

2024-03-19 13:45:27

数据仓库数据湖大数据

2022-11-29 17:16:57

2023-12-01 14:55:32

数据网格数据湖

2017-01-22 15:43:47

数据架构演进

2023-12-13 07:26:24

数据湖仓数据仓库性能

2009-01-18 15:48:31

数据仓库数据存储OLTP

2023-11-09 15:56:26

数据仓库数据湖

2018-07-24 09:28:18

存储数据仓库

2020-12-02 17:20:58

数据仓库阿里云数据湖

2021-03-31 10:16:00

架构运维技术

2022-10-14 14:20:20

云原生数据仓库

2020-10-20 18:59:40

数据湖数据仓库采集

2022-10-21 16:38:57

数据湖数据仓库数据库

2018-03-20 09:36:57

数据仓库数据存储知识

2023-11-27 16:35:28

数据湖数据仓库

2020-01-08 21:53:06

大数据数据仓库数据湖

2021-06-07 10:45:16

大数据数据仓库数据湖

2018-03-15 08:50:46

Hive-数据存储

2021-01-04 05:51:02

数据仓库架构

2022-12-13 09:54:52

数据仓库
点赞
收藏

51CTO技术栈公众号