数据仓库、数据湖、湖仓一体,究竟有什么区别
数据,已经成为了企业的生命线与核心资产,数据管理和数据分析成为非常重要的应用领域。出于对数据管理领域的关注,不同行业也逐步提升了对数据存储、数据治理及数据分析能力的要求,这一趋势带来了新理念。从数据仓库到数据湖再到湖仓一体,关于数据的存储和管理有了越来越多的新概念和新方法。
这三个概念看起来非常相似,其定义也同样相似吗?是不是就是存储容量的区别?
其实并不是如此,要明白它们有什么区别,就从概念溯源,分析其底层逻辑,和小亿一起来看看吧。
一、概念溯源
1.数据仓库
数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化的(Time Variant)数据集合,用于支持管理决策和信息的全局共享。其主要功能是将组织透过资讯系统之联机事务处理(OLTP)经年累月所累积的大量资料,透过数据仓库理论所特有的资料储存架构,作一有系统的分析整理,以利各种分析方法如联机分析处理(OLAP)、数据挖掘(Data Mining)之进行,并进而支持如决策支持系统(DSS)、主管资讯系统(EIS)之创建,帮助决策者能快速有效的自大量资料中,分析出有价值的资讯,以利决策拟定及快速回应外在环境变动,帮助建构商业智能(BI)。
所谓主题:是指用户使用数据仓库进行决策时所关心的重点方面,如:收入、客户、销售渠道等;所谓面向主题,是指数据仓库内的信息是按主题进行组织的,而不是像业务支撑系统那样是按照业务功能进行组织的。
所谓集成:是指数据仓库中的信息不是从各个业务系统中简单抽取出来的,而是经过一系列加工、整理和汇总的过程,因此数据仓库中的信息是关于整个企业的一致的全局信息。
所谓随时间变化:是指数据仓库内的信息并不只是反映企业当前的状态,而是记录了从过去某一时点到当前各个阶段的信息。通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。
2.数据湖
数据湖(Data Lake)是一个存储企业的各种各样原始数据的大型仓库,其中的数据可供存取、处理、分析及传输。数据湖是以其自然格式存储的数据的系统或存储库,通常是对象blob或文件。数据湖通常是企业所有数据的单一存储,包括源系统数据的原始副本,以及用于报告、可视化、分析和机器学习等任务的转换数据。数据湖可以包括来自关系数据库(行和列)的结构化数据,半结构化数据(CSV,日志,XML,JSON),非结构化数据(电子邮件,文档,PDF)和二进制数据(图像,音频,视频)。
目前,Hadoop是最常用的部署数据湖的技术,所以很多人会觉得数据湖就是Hadoop集群。但其实数据湖是一个概念,而Hadoop是用于实现这个概念的技术。
3.湖仓一体
近年来,业界开始提出湖仓一体(Data Lakehouse)的概念,旨在为企业提供一个统一的、可共享的数据底座,避免传统的数据湖、数据仓库之间的数据移动,将原始数据、加工清洗数据、模型化数据,共同存储于一体化的“湖仓”中,既能面向业务实现高并发、精准化、高性能的历史数据、实时数据的查询服务,又能承载分析报表、批处理、数据挖掘等分析型业务。
湖仓一体方案的出现,帮助企业构建起全新的、融合的数据平台,打破了数据湖与数据仓库割裂的体系,在架构上将数据湖的灵活性、数据多样性以及丰富的生态,与数据仓库的企业级数据分析能力进行融合。
通过对机器学习和AI算法的支持,实现数据湖+数据仓库的闭环,极大地提升业务的效率。数据湖和数据仓库的能力充分结合,形成互补,同时对接上层多样化的计算生态。
毫无疑问,湖仓一体将会更好地服务于企业,帮助企业实现大数据能力的提升,如降低成本、提升运营效率、业务模式探索等。
二、特点明晰
这三个概念虽然有相同的部分,但更多的部分是有所不同的,所以我们就从它们的特点来看:
1、数据仓库特点
数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。它具有以下典型的特点:
(1)高执行效率:数据仓库处理的数据量巨大,且分析周期一般以天为单位,因此对分析的时效性要求相对较高,这就需要它具有高效率的数据存储和处理能力。
(2)高数据质量:进入数据仓库的数据一般会经过数据清洗的环节,因此可能导致数据失真的脏数据会被清除,从而保证数据仓库提供的信息是准确的。
(3)高扩展性:数据仓库的设计和建设一般会考虑未来3-5年的情况。
(4)面向主题:数据仓库中的数据是按照一定的主题域进行组织的。主题是指在较高层次上将企业信息系统中的数据综合、归类并进行分析利用的抽象。
2、数据湖特点
数据湖是一类存储数据原始格式的系统。它通常是企业中全量数据的单一存储。全量数据包括原始系统所产生的原始数据拷贝以及为了各类任务而产生的转换数据,各类任务包括报表、可视化、高级分析和机器学习。数据湖中包括来自于关系型数据库中的结构化数据、半结构化数据、非结构化数据和二进制数据等。相比数据仓库,数据湖具有以下特征:
(1)保真性:数据湖中必须要保存一份原始数据,无论是数据格式、数据模式、数据内容都不应该被修改。
(2)灵活性:在假设没办法预估业务变化的前提下,直接保持数据的原始状态,一旦需要时,再根据需求对数据进行加工处理。
(3)可管理:数据湖中的数据会不断地积累、演化。因此,对于数据管理能力要求也很高。它至少应该包含的数据管理能力包括:数据源、数据连接、数据格式、数据模式,数据权限等。
(4)可追溯:数据湖是一个企业中全量数据的存储场所,需要对数据的全生命周期进行管理,包括数据的定义、接入、存储、处理、分析、应用的全过程。它需要能做到对其间的任意一条数据的接入、存储、处理、消费过程是可追溯的,能够清楚地重现数据完整的产生过程和流动过程。
3、湖仓一体特点
湖仓一体指的是结合了数据仓库和数据湖的元素而形成的数据解决方案。它实现了数据仓库的数据结构和数据湖的可管理特性。通常既可以用来做机器学习,也可以用来做BI分析。湖仓一体的特点包括:
(1)统一的数据管理:湖仓一体提供完善的数据管理能力。数据湖中会存在两类数据:原始数据和处理后的数据。数据湖中的数据会不断地积累、演化,因此包含以下数据管理能力:数据源、数据连接、数据格式、数据schema(库/表/列/行)。同时,数据湖是单个企业中统一的数据存放场所,因此,还具有一定的权限管理能力。
(2)多模态的存储引擎:湖仓一体本身内置多模态的存储引擎,以满足不同的应用对于数据访问需求(综合考虑响应时间/并发/访问频次/成本等因素)。但是,在实际的使用过程中,为了达到可接受的性价比,湖仓一体解决方案提供可插拔式存储框架,支持的类型有HDFS/S3等, 并且在必要时还可以与外置存储引擎协同工作,满足多样化的应用需求。
(3)丰富的计算引擎:提供从批处理、流式计算、交互式分析到机器学习等各类计算引擎。一般情况下,数据的加载、转换、处理会使用批处理计算引擎;需要实时计算的部分,会使用流式计算引擎;对于一些探索式的分析场景,可能又需要引入交互式分析引擎。随着大数据技术与人工智能技术的结合越来越紧密,各类机器学习/深度学习算法也被不断引入,可以支持从HDFS/S3上读取样本数据进行训练。因此,湖仓一体解决方案提供计算引擎的可扩展/可插拔。
(4)数据全生命周期管理:湖仓一体提供一个企业中全量数据的存储场所,需要对数据的全生命周期进行管理,包括数据的定义、接入、存储、处理、分析、应用的全过程。一个强大的数据湖实现,需要能做到对其间的任意一条数据的接入、存储、处理、消费过程是可追溯的,能够清楚的重现数据完整的产生过程和流动过程。
三、区别了解
数据湖是近几年热度比较高的一个数据域的一个概念,热度和认知度几乎超过了前些年的数据仓库。其实数据湖和数据仓库不完全一个层面的概念。数据湖和数据仓库代表了数据架构设计的两种取向。我们先来看看数据湖和数据仓库的区别。
1、数据仓库和数据湖
综上,数据仓库和数据湖,是大数据架构的两种设计取向。两者在设计的根本分歧点是对包括存储系统访问、权限管理、建模要求等方面的把控。
数据湖优先的设计,通过开放底层文件存储,给数据入湖带来了最大的灵活性。进入数据湖的数据可以是结构化的,也可以是半结构化的,甚至可以是完全非结构化的原始日志。另外,开放存储给上层的引擎也带来了更多的灵活度,各种引擎可以根据自己针对的场景随意读写数据湖中存储的数据,而只需要遵循相当宽松的兼容性约定(这样的松散约定当然会有隐患,后文会提到)。但同时,文件系统直接访问使得很多更高阶的功能很难实现,例如,细粒度(小于文件粒度)的权限管理、统一化的文件管理和读写接口升级也十分困难(需要完成每一个访问文件的引擎升级,才算升级完毕)。
而数据仓库优先的设计,更加关注的是数据使用效率、大规模下的数据管理、安全 / 合规这样的企业级成长性需求。数据经过统一但开放的服务接口进入数据仓库,数据通常预先定义 schema,用户通过数据服务接口或者计算引擎访问分布式存储系统中的文件。数据仓库优先的设计通过抽象数据访问接口 / 权限管理 / 数据本身,来换取更高的性能(无论是存储还是计算)、闭环的安全体系、数据治理的能力等,这些能力对于企业长远的大数据使用都至关重要,我们称之为成长性。
2、从数据仓库、数据湖到湖仓一体
近几年,数据湖和数据仓库的应用场景和分界还是很清晰的。数据仓库擅长的BI、数据洞察离业务更近、价值更大,而数据湖里的数据,更多的是为了远景。但是随着数据处理技术的发展以及AI的广泛应用,原来为画饼准备的数据湖里的数据得以重见天日,其价值被重新定义。这就是湖仓一体化。
如今对数据价值的深度挖掘成了行业客户普遍关注的热点,所以很多人就想能不能把数据仓库和数据湖的价值进行叠加,让数据流动起来,减少重复建设。比如,让“数仓”在进行数据分析的时候,可以直接访问数据湖里的数据。再比如,让数据湖在架构设计上,就“原生”支持数仓能力。
正是这些想法和需求,推动了数仓和数据湖的打通和融合,也就是当下炙手可热的概念:Lake House,现在也叫智慧湖仓。智慧湖仓架构最重要的一点,是实现“湖里”和“仓里”的数据/元数据能够无缝打通,并且“自由”流动。湖里的“新鲜”数据可以流到仓里,甚至可以直接被数仓使用,而仓里的“不新鲜”数据,也可以流到湖里,低成本长久保存,供未来的数据挖掘使用。
在湖仓一体化架构下,以下场景得以实现:
- 可以将数据湖中最近几个月的“热数据”抽取到数仓中;
- 可以轻松将大量冷门历史数据从数仓转移至成本更低廉的数据湖内,同时这些移到湖里的数据,仍然可以被数仓查询使用;
- 处理数仓内的热数据与数据湖中的历史数据,生成丰富的数据集,全程无需执行任何数据移动操作;
- 生成的新数据集可以插入到数仓中的表内,或者直接插入由数据湖托管的外部表中。
在实际业务场景中,数据的移动不只是存在于数据湖和数据仓库之间,可以简单归纳为三种,一种是由外向内的数据入湖,第二种是由内向外的数据出湖,第三种是围绕数据湖数据在数据服务组件之间流动。数据越多,管理和治理起来就越困难,就会形成所谓的“数据重力”现象。湖仓一体化不仅需要把数仓和数据湖集成起来,还要克服数据重力,让数据在服务之间按需流动。
湖仓一体化也好,智能湖仓也好,并非单一产品,它描述的是一种架构。这套架构,以数据湖为中心,把数据湖作为中央存储库,再围绕数据湖建立专用“数据服务环”,环上的服务包括了数仓、机器学习、大数据处理、日志分析,甚至RDS和NOSQL服务等等。
3、PetaBase、数据工厂与湖仓一体的架构关系
PetaBase:是一个分布式、高性能、支持SQL的大数据计算和存储的基础设施平台。
数据工厂(EDF):是一个提供数据的采集、集中处理、分发、加载、传输功能的一站式开发平台。
亿信华辰仓湖一体解决方案是由“数据存储架构 + 数据处理工具”组成的解决方案,涵盖数据存储、数据融合、数据加工、数据共享四大应用,综合数据湖、数据仓库两种技术演进方向,为企业用户提供云原生仓湖一体解决方案。
四、应用举例
1.建设背景
在HW企业规模飞速扩张的今天,各类业务、应用系统全方位地覆盖了整个企业。应用系统从最初的满足用户需求,跨越到分析用户体验及用户画像,立志为全球用户提供最好的服务和体验。
基于此初衷,该企业各部门越来越重视运营这个模块,IT数字化运营的概念也逐渐浮出水面。数字化运营在中小型企业实现起来也许不会那么困难,但对于庞大且历史长久的HW来说必会大动干戈,数字化运营将面对海量的数据存储,企业级数据仓库和各业务数据集市的建设,以及如何在海量数据中挖掘分析出有价值的KPI。对于运营人员来说,最快、最准、最新的运营数据支持,往往能让他们事半功倍。
IT数字化运营所面对的困难:
- 海量数据的存储和处理引擎
- 企业级的数据仓库和数据集市的建设
- 数据处理的可拓展性(挖掘算法、自定义算法的支持)
- 运营页面的响应速度
2.建设内容
为解决以上问题,项目中使用亿信华辰自主研发的分布式大数据库产品PetaBase ,代替了传统的关系型数据库作为主要的数据处理引擎。
挑战一:海量数据的存储和处理引擎
PetaBase数据存储基于Hadoop提供的HDFS分布式文件存储方式,支持关系型数据库和非结构化的数据导入,解决了用户海量数据存储的问题。数据处理使用impala内存计算引擎,相对于Hadoop生态中其他的计算引擎,它有着计算快,支持大多数SQL中的DDL和DML语句等优势。在本次HW数字化运营项目中共处理60多T的数据,其中单表最大数据量达到80亿条,3级ETL跑批只需4到6个小时即可完成。
挑战二:企业级的数据仓库和数据集市的建设
IT数字化运营系统共分为四层,分别是底层数据源,存储层,服务层和应用层。底层数据源包含多个业务系统的底层数据,来源于关系型数据库,Nosql数据库,文本数据等多种数据源。存储层通过PetaBase大数据平台进行搭建,在PetaBase中对底层多源数据进行汇总存储并分层处理,形成多层次数据模型,完成面向应用的数据仓库与数据集市的建设。PetaBase大数据平台为其他平台提供数据接口,为上层应用提供数据基础。
挑战三:数据处理的可拓展性
由于PetaBase的数据存储在HDFS中,Hadoop生态中有多种多样的数据处理引擎,并能支持用户自定义函数的扩展(数据挖掘函数等)。项目中有用到多种数据挖掘的方法,比如通过箱线图的算法来排除异常性能数据,然后取正常性能数据升序排序后的90%位置的数据作为性能值的一个度量,并通过用户自定义的函数来实现。
3.价值体现
随着HW IT智能运营平台(eSee)承担的IT数字化转型的使命加强,eSee平台的底层数据覆盖范围和数据量呈指数级增长,单靠传统关系型数据库已无法满足要求,平台需要一套基于大数据架构的数据库承担底层数据存储计算工作,而PetaBase的出现正好弥补该企业IT运营平台的不足,并且PetaBase与亿信BI同出一脉,天然的融为一体,让PetaBase对比其他大数据架构平台有更多优势,在项目中应用起来非常便捷。
当前PetaBase已经承担企业IT智能运营平台(eSee)底层大部分的数据存储以及计算处理工作,处理能力得到充分认可:
在Saas服务层,PetaBase底层处理的数据已覆盖600+IT产品、80万+IT用户的用户行为、产品质量以及应用本身的业务量的数据,这些应用数据计算处理后被广泛用于单产品的数字化运营、全球IT服务的5s度量、产品经营分析、用户服务画像等重要的业务场景中。通过运营洞察各产品在网运行情况,驱动产品自我改进;支撑各类IT用户的ROADs体验落地;发现业务流量的高地,支撑流量低的应用"日落"。
在Paas平台层,PetaBase在平台底层支撑HW服务的百万级VM对应资源的性能容量的运营数据的处理,通过资源使用率的度量,帮助业务优化资源管理和分配,让云资源能及时合理使用和释放,提升云资源使用效率。
在Iaas基础设施层,Patabase底层承担HW全球5大中心和RDC、SR数据中心的机柜、电力、能耗数据的处理工作,同时支撑着全球10万+IT后端资产的性能容量的运营数据的后台处理,处理的数据通过前端亿信BI给各业务场景构建的运营界面,助力企业IT的资产使用效率的提升、降低IT基础设施的成本投资,使能企业IT数字化转型成功!
五、小结
湖仓一体于2020年提出,业内还处在探索阶段,企业应用也非常有限。但从发展趋势来看,湖仓一体必将在数字经济建设中发挥非常重要的作用,值得我们关注研究和尝试应用。不过,不同企业在选择数据平台架构时还是要根据自己的实际需要确定,毕竟适合自己的才是最好的,关键还是挖掘和发挥数据价值。一味纠结定义的高低,不如开发适合自己企业的产品。