译者 | 陈峻
审校 | 孙淑娟
众所周知,数据仓库的初始架构旨在通过把来自各种异构数据源的数据,收集到集中式的存储库中,以提供分析的见解,并充当决策支持和商业智能(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(https://databricks.com/)和AWS(https://aws.amazon.com/redshift/lake-house-architecture/)都相继引入了数据Lakehouse的概念。
数据Lakehouse架构的多层架构
Lakehouse能够提高各种高级分析负载的速度,并为其提供更好的数据管理功能。如上图所示,Lakehouse通常分为五层,它们分别是摄取层、存储层、元数据层、API 层、以及最后的消费层。
小结
原文链接:
https://dzone.com/articles/the-lakehouse-an-uplift-of-data-warehouse-architecture
5月赠书活动
《知行 技术人管理之路》
《技术与管理》
扫码回复【管理】
0元领取书籍