当前位置: 首页 > 科技观察

数据湖存储解决方案Lakehouse为数据仓库架构带来改进

时间:2023-03-21 14:05:21 科技观察

众所周知,数据仓库的初始架构旨在通过将各种异构数据源的数据收集到一个集中的存储库中,为分析提供洞察力,并作为决策支持和商业智能(BI)的支点。但由于只能支持schema-on-write,不能存储非结构化数据,不能与计算紧密结合,只能实现本地设备存储,近年来数据仓库遇到了挑战。数据模型设计耗时过长等各种挑战。虽然目前的数据仓库可以支持以联机分析处理(OLAP)服务器为中间层的三层架构,但它仍然是一个用于机器学习和数据科学的集成平台。此类平台具有元数据、缓存和索引层,但这些层并不是孤立存在的。下面,我将着重介绍如何改进现有的数据湖平台,最终将其转变为Lakehouse,以提升架构模式,改造传统数据仓库。传统数据仓库平台HDFS架构上图展示了传统数据仓库平台的逻辑架构。近年来,随着音视频等非结构化数据集的快速增长,许多组织和企业都在寻找和探索一些先进的替代产品,以解决与传统数据仓库系统相关的复杂性问题(如本文开头的各种提到的痛点)。目前业界普遍采用2006年推出的ApacheHadoop生态系统。通过利用HDFS(Hadoop分布式文件系统),它解决了在加载到传统数据仓库系统之前将原始数据提取和转换为结构化格式(即以行和列的形式)的主要瓶颈。HDFS不仅能够处理在商用硬件上运行的大型数据集,而且还可以容纳通常具有GB和TB级数据集的应用程序。此外,它还可以通过向集群添加新节点来横向扩展以容纳海量数据,而不管任何数据格式要求。您可以点击链接-https://dataview.in/installation-of-apache-hadoop-3-2-0/了解有关如何在多节点集群上安装和配置ApacheHadoop的更多信息。Hadoop生态系统(ApacheHive)的另一个优势是它支持读取模式。由于传统数据仓库有严格的schema-on-write原则,在遵循设计的表空间时,ETL(Extract-Transform-Load的缩写)步骤非常耗时。只需一行语句,我们就可以将数据湖定义为一个存储库,以原生格式(包括:结构化、非结构化和半结构化等)存储大量原始数据,用于后续分析、预测分析,通过Executemachine学习代码和应用程??序以构建算法和其他大数据处理操作。数据湖架构如上图所示。由于没有合适的数据模型,数据湖在加载前不需要进行任何数据转换,因此如何保持数据质量成为一个大问题。数据湖没有完全具备解决数据治理和安全相关问题的能力。因此,机器学习(ML)和数据科学的应用需要使用非SQL代码来处理海量数据,才能在数据湖上成功部署和运行。然而,由于与SQL引擎相比缺乏优化的处理引擎,数据湖往往不能很好地服务于此类应用程序。而且,光靠这些引擎还不足以解决数据湖的所有问题,甚至取代数据仓库。此外,数据湖还缺少ACID(原子性;一致性;一致性;隔离;隔离;持久性)属性等功能和索引等高效访问方式。相应地,建立在其上的机器学习和数据科学等应用程序也会遇到数据质量、一致性和隔离性等数据管理问题。因此,数据湖需要额外的工具和技术来支持SQL查询,以执行各种商业智能和报告。Lakehouse借助S3、HDFS、AzureBlob等数据湖的处理能力,结合数据湖的低成本存储优势,以开放的形式提供对各种系统的访问,突出强大的管理和优化功能的数据仓库。目前Databricks和AWS都引入了dataLakehouse的概念。数据Lakehouse架构的多层架构Lakehouse可以提高各种高级分析负载的速度,并为它们提供更好的数据管理功能。如上图所示,Lakehouse通常分为五层,分别是摄取层、存储层、元数据层、API层和最终消费层。摄取层是Lakehouse的第一层,负责从各种来源提取数据,并交付给存储层。该层可以使用各种组件来摄取数据。其中包括:用于从IoT设备流式传输数据的ApacheKafka,用于从关系数据库管理系统(RDBMS)导入数据的ApacheSqoop,以及支持批处理数据的更多工具。由于计算层和存储层是分离的,数据湖屋最适合云存储服务。可以使用HDFS平台在本地实现。根据设计,Lakehouse允许开发人员将各种数据存储在AWSS3等低成本对象存储中,并作为使用标准文件格式(如ApacheParquet)的对象。Lakehouse中的元数据层负责为LakeStorage中的所有对象提供元数据(即提供有关其他数据片段信息的数据)。此外,它还可以管理以下方面:确保并发ACID事务使用更快的存储设备(例如处理节点上的SSD和RAM)来缓存来自云服务对象的文件通过索引存储以加快查询速度Lakehouses中的API层提供两种类型的API:声明式DataFrameAPI和SQLAPI。在DataFrameAPI的帮助下,数据科学家可以直接使用数据来执行他们的各种应用程序。例如TensorFlow、SparkMLlib等机器学习代码库可以读取Parquet等开放文件格式,直接查询元数据层。SQLAPI可用于获取商业智能数据,如组合业务分析、数据挖掘和数据可视化,以及各种报表工具。最后,消费层包含PowerBI、Tableau等各种工具和应用程序。整个企业的所有用户都可以使用Lakehouse的消费层来执行各种分析任务。其中包括:商业智能仪表板、数据可视化、SQL查询和机器学习作业。此外,Lakehouse架构也最适合提供对组织内各种数据的单点访问。总结Lakehouse架构的创建是为了解决数据净化、查询兼容性和热点数据缓存的复杂性。目前,单体架构还处于起步阶段。但在不久的将来,Lakehouse作为数据工具,将能够实现数据发现、数据使用指标、数据治理等更丰富的功能。原标题:TheLakehouse:AnUpliftofDataWarehouseArchitecture,作者:GautamGoswami