睿治

智能数据治理平台

睿治作为国内功能最全的数据治理产品之一,入选IDC企业数据治理实施部署指南。同时,在IDC发布的《中国数据治理市场份额,2022》报告中,蝉联数据治理解决方案市场份额第一。

数据架构:从数据仓库、数据湖到湖仓一体

时间:2022-07-29来源:落榜生浏览数:362

湖仓一体的两个发展方向 数据仓库和数据湖的融合有两个方向,一种是在数据湖基础上增加数据仓库能力,另一种是数据湖和数据仓库并行融合形成混合式的逻辑数据仓库。

伴随5G、大数据、AI、IoT的飞速发展,数据呈现大规模、多样性的高速增长。为了应对更加复杂多变的业务需求,许多机构对数据处理的实时性和融合性提出了更高的要求,“湖仓一体”的概念应运而生,它打破了数据仓库和数据湖之间的壁垒,使得割裂的数据融合统一,减少了数据分析中的搬迁,实现了统一的数据管理,有利于发现更多数据价值

01 什么是数据仓库? 数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。 数据仓库是一个面向主题的、集成的、随时间变化的、但信息本身相对稳定的数据集合,用于对管理决策过程的支持。数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数据,数据来源于外部,并且开放给外部应用使用。 

02 什么是数据湖? 数据湖(Data Lake)是一种在系统或存储库中以自然格式存储数据的方法,它有助于以各种模式和结构形式配置数据,通常是对象块或文件。数据湖的主要思想是对企业中的所有数据进行统一存储,从原始数据(源系统数据的精确副本)转换为用于报告、可视化、分析和机器学习等各种任务的目标数据。数据湖中的数据包括结构化数据(关系数据库数据),半结构化数据(CSV、XML、JSON等),非结构化数据(电子邮件,文档,PDF)和二进制数据(图像、音频、视频),从而形成一个容纳所有形式数据的集中式数据存储。Data Lake这个术语由Pentaho公司的创始人兼首席技术官詹姆斯·狄克逊(James Dixon)提出,他对数据湖的解释是:把你以前在磁带上拥有的东西倒入到数据湖,然后开始探索该数据。重要的只把需要的数据倒入到Hadoop;如果你想结合来自数据湖的信息和客户关系管理系统(CRM)里面的信息,我们就进行连接,只有需要时才执行这番数据结合。 数据湖具有庞大的数据存储规模,PB级别的计算能力,满足多元化的数据信息交叉分析以及大容量、高速度的数据管道。 

03 数据湖和数据仓库的区别

比较项 数据仓库 数据湖
数据 已经加工过的结构化数据 所有类型的原始数据,包括结构化数据、半结构化数据和非结构化数据
加工方式 写时模式(schema on write),表示数据在入DB前进行处理 读时模式(schema on read),表示将数据的处理推迟到从DB读出后
存储 高成本存储,使用本地存储 低成本存储,计算和存储分离
灵活性 不灵活 高度灵活和可配置的
安全性 已成熟 正在发展
用户群体 业务专家 各类用户,包括业务专家、数据科学家、数据开发人员等。
应用场景 批处理报告、BI、可视化分析 机器学习、探索性分析、数据发现、流处理、大数据与特征分析

最重要的区别是数据仓库是存储已经加工过的结构化数据,事先已经知道怎么使用这些数据。而数据湖采用对象存储方式,存储的是各种原始的结构化、半结构化和非结构化数据,事先并不知道怎么使用这些数据,只有在有特定的数据分析需要时才对涉及的这部分数据进行处理。 数据湖还有助于从数据中发掘更多价值。数据仓库和数据集市由于只使用数据中的部分属性,所以只能回答一些事先定义好的问题;而数据湖存储所有最原始、最细节的数据,所以可以回答更多的问题。并且数据湖允许组织中的各种角色使用,业务专家、数据分析师通过自助分析工具,对数据进行分析,数据科学家可以利用AI、机器学习的技术,从数据中发掘更多的价值。

  04 什么是湖仓一体? 

随着数据湖的优势受到关注,越来越多的企业开始融合数据湖和数据仓库的平台,不仅可以实现数据仓库的功能,还实现了各种不同类型数据的处理功能、数据科学、用于发现新模型的高级功能,这就是所谓的湖仓一体(Lake House),而Amazon Web Services则称之为 “智能湖仓”。湖仓一体(Lake House)是一种结合了数据湖和数据仓库优势的新范式,解决了数据湖的局限性。Lake House架构最重要的一点,是实现"湖里"和"仓里"的数据、元数据能够无缝打通,并且“自由”流动。Lake House使用新的系统设计:直接在用于数据湖的低成本存储上实现与数据仓库中类似的数据结构和数据管理功能。湖仓一体具有以下特点: 统一的数据管理:湖仓一体提供完善的数据管理能力。数据湖中会存在两类数据:原始数据和处理后的数据。数据湖中的数据会不断的积累、演化,因此包含以下数据管理能力:数据源、数据连接、数据格式、数据schema(库/表/列/行)。同时,数据湖是单个企业中统一的数据存放场所,因此,还具有一定的权限管理能力。 多模态的存储引擎: 湖仓一体本身内置多模态的存储引擎,以满足不同的应用对于数据访问需求(综合考虑响应时间/并发/访问频次/成本等因素)。但是,在实际的使用过程中,为了达到可接受的性价比,湖仓一体解决方案提供可插拔式存储框架,支持的类型有HDFS/S3等, 并且在必要时还可以与外置存储引擎协同工作,满足多样化的应用需求。 丰富的计算引擎:提供从批处理、流式计算、交互式分析到机器学习等各类计算引擎。一般情况下,数据的加载、转换、处理会使用批处理计算引擎;需要实时计算的部分,会使用流式计算引擎;对于一些探索式的分析场景,可能又需要引入交互式分析引擎。随着大数据技术与人工智能技术的结合越来越紧密,各类机器学习/深度学习算法也被不断引入,可以支持从HDFS/S3上读取样本数据进行训练。因此,湖仓一体解决方案提供计算引擎的可扩展/可插拔。 数据全生命周期管理:湖仓一体提供一个企业中全量数据的存储场所,需要对数据的全生命周期进行管理,包括数据的定义、接入、存储、处理、分析、应用的全过程。一个强大的数据湖实现,需要能做到对其间的任意一条数据的接入、存储、处理、消费过程是可追溯的,能够清楚的重现数据完整的产生过程和流动过程。 

05 湖仓一体的两个发展方向 数据仓库和数据湖的融合有两个方向,一种是在数据湖基础上增加数据仓库能力,另一种是数据湖和数据仓库并行融合形成混合式的逻辑数据仓库。 第一种模式目前业界已经涌现了一些LakeHouse产品,如NexFlix开源Iceberg、Uber开源Hudi、Databricks的DeltaLake。以目前生态发展迅速的Apache Hudi为例:统一数据存储,分布式存储不同应用所需的各种类型数据;数仓模式执行和治理,实现事务和更新机制,保证数据完整性和一致性,具有健壮的治理和审计机制;支持各种分析引擎,通过开放和标准化的存储格式(如Parquet)实现统一数据存储,并提供API以便各类工具和引擎(包括机器学习和Python /R语言)直接有效地访问数据。 第二个融合方向是数据湖和数据仓库协同起来,向湖仓一体的融合分析架构发展,即逻辑数据仓库LDW。湖仓一体可以认为是逻辑数据仓库架构理念下针对Hadoop数据湖和MPPDB数据仓库的融合架构。数据对用户完全实现虚拟化,以逻辑统一的数据系统为企业提供数据分析服务。平台层面,Hadoop与MPP具备数据共用和跨库分析能力,通过互联互通、计算下推、协同计算,实现数据在多个数据平台之间透明流动。 06 Amazon的智能湖仓方案

湖仓一体的大数据平台正在发展当中,不同厂家也给出了自己的解决方案。本节介绍AmazonWeb Services的智能湖仓方案,下一节介绍华为云的FusionInsight湖仓一体解决方案。 Amazon Web Services推出了Redshift Spectrum,打通了数仓对数据湖的直接访问,能够高效查询S3数据湖当中的EB级数据。“Spectrum”是智能湖仓的核心组件,被称为“ Lake House引擎”,它可以在 湖与 仓之间架起数据流动的管道。 在实际业务场景下,数据的移动和访问,不仅限于数据仓库和数据湖之间,搜索引擎服务、机器学习服务、大数据分析服务……,都涉及到数据在本地(本系统)和数据湖之间的移动,以及数据在不同服务之间的移动。把数据湖和数据仓库集成起来只是第一步,还要把湖、仓以及所有其他数据处理服务组成统一且连续的整体,这就是Amazon Web Services为何把自家的Lake House架构称为“智能湖仓”,而非“湖仓一体”。这套架构,以数据湖为中心,把数据湖作为中央存储库,再围绕数据湖建立专用“数据服务环”,环上的服务包括了数仓、机器学习、大数据处理、日志分析,甚至RDS和NOSQL服务等等。 Amazon Web Services官方给出了智能湖仓的参考架构,具体如下:这个六层架构,覆盖了从数据源、数据摄取和入湖入仓,到湖仓打通与集成,再到数据出湖、数据处理和数据消费的完整流程,将各种数据服务无缝集成在一起。 

07 华为云的FusionInsight湖仓一体解决方案 

华为云FusionInsight智慧数据湖涵盖了分布式存储、大数据、数据仓库、数据治理等技术,提供云原生湖仓一体解决方案。整体的参考架构如下:数据存储层基于云原生架构,存算分离有效降低TCO,统一元数据管理实现湖仓共用数据存储资源池,针对同一份元数据定义定义各类场景,提供API方便各类工具和引擎(包括机器学习、Python、R等)直接有效地访问数据,这是实现湖仓一体的一个关键点。 计算引擎层为数据湖增加了事务能力,HetuEngine可通过标准SQL访问跨域多源数据,实现湖仓数据关联分析、协同计算;打破数据墙,在湖內基于统一数据目录,可基于数据湖实现融合分析和AI训练推理,减少数据搬迁,实现海量数据快速价值挖掘。 运营管理层则提供统一的数据开发和数据治理环境,具备安全管理能力,支持多引擎任务统一开发和编排,数据统一建模和质量监测,实现湖仓一致的开发治理体验。 

08 结论

湖仓一体于2020年刚刚提出,业内还处在探索阶段,企业应用也非常有限。但从发展趋势来看,湖仓一体必将在数字经济建设中发挥非常重要的作用,值得我们关注研究和尝试应用。不过,不同企业在选择数据平台架构时还是要根据自己的实际需要确定,如果数据量不大,而且主要是结构化数据,那就选择传统数仓就好了,不需要盲目追求高大上的湖仓一体,毕竟适合自己的才是最好的,关键还是挖掘和发挥数据价值

(部分内容来源网络,如有侵权请联系删除)
立即申请数据分析/数据治理产品免费试用 我要试用
customer

在线咨询