一文详解,数据仓库、数据库、数据中台、数据湖的区别
数据时代,各行业的企业都已经开始通过数据库来沉淀数据,但是真的论起数据库、数据仓库、数据中台,还是新出现的数据湖,它们的概念和区别,可能知道的人就比较少了,今天我们详细来比较了解一下。
数据仓库是什么
事实上,很多人在看到数据仓库的第一眼,就把数据仓库当成了数据库。当然这也很正常,毕竟从名字来看这两者确实区别不大,真正区分两者的是定位、作用等更深一层的东西。不过在这里还是先解释数据仓库的概念,不同之处后边会进行详细讲解。
数据仓库是一个面向主题的、集成的、随时间变化但信息本身相对稳定的数据集合,用于支持管理决策过程。其本质就是完成从面向业务过程数据的组织管理到面向业务分析数据的组织和管理的转变过程,也是商业智能BI中数据仓库的主要作用。
数据仓库 – 派可数据商业智能BI可视化分析平台
数据仓库就像企业的总的大仓库,能够存储不同来源、不同格式的数据,并且可以通过ETL和数据模型,对数据进行高质量的筛选,分级分类进行存储。具有很强的稳定性,不会频繁的进行增删改等操作,能够反应历史变化。
用通俗的话来说就是数据仓库就像一个终端的大仓库,其他小仓库的各种货品会通过各种方式统一存储到这里,然后通过仓库位置的划分、货品的摆放进行归纳分类,实现规范、标准的从存放,到分类,再到使用的完整过程。
数据仓库和数据库有什么不同
其实数据仓库和数据库跟现实中的仓储系统是有很多相似之处的,企业各部门的数据库就相当于一个个小的产业库,对应了企业的各个部门。而数据仓库相当于是一个终端仓库,其中存储的物品是由各个小的仓库运送的,是各个数据库的集合体,一个更大的综合数据库。
业务数据 – 派可数据商业智能BI可视化分析平台
此外,数据库和数据仓库最不同的还是服务对象和作用。上边也提到了,数据库基本上是服务于各个部门,是业务信息系统的附属品,也就是我们常在信息化建设初期中提到的ERP、OA、CRM等业务系统。这些数据库是服务于各种业务系统以及业务软件,主要是通过业务流程发挥作用。
而数据仓库就不一样了,它不是服务于业务信息化系统的,它是服务于分析型应用的。更多的是通过各种商业智能BI前端可视化分析工具或者报表工具来访问数据仓库,最终是面向报表查询,数据分析服务,为业务人员提供复盘、预测,为企业管理人员提供决策信息的。
数据中台是什么
回看时间,数据中台虽然是一个新兴的概念,但也已经有数年的发展时间,按理说应该已经有一个主流的解释来定义数据中台的形态,但实际上数据中台的界定依旧模糊,分类也比较混乱,缺少对于定义和价值的判断,所在在这里谈到的数据中台也只能代表个人的看法。
一般来说,数据中台是一种将企业沉淀的大量业务数据赋予价值变成数据资产,并通过持续的数据应用为企业业务服务,从而实现数据价值,让数据真正成为企业重要资产,发挥作用的系统和机制。
数据中台 – 派可数据商业智能BI可视化分析平台
数据中台强调的是连接,企业通过数据中台提供的方法和运营机制,将数据连接起来,形成汇聚整合、提纯加工、建模处理、算法学习,再通过连接以共享数据服务的方式将复杂的数据处理过程提供给业务使用,从而实现数据与业务的连接。
用通俗的话来说,数据中台就是让企业的数据动起来的实现企业全面数据化的解决方案,主要价值在于数据服务,也就是可复用性。其本质是因为数据从业务系统中产生并储存,而业务系统反过来也需要利用数据分析来优化改进业务流程,那么就可以把业务系统的数据存储和计算能力抽象,交给独立的数据处理平台提供储存和计算能力,这就是数据中台产生的真正原因。
什么是数据湖
数据湖从本质上来讲,是一种企业数据架构方法,物理实现上则是一个数据存储平台,用来集中化存储企业内海量的、多来源,多种类的数据,并支持对数据进行快速加工和分析。
数据库与数据湖的区别
数据湖有所不同,因为它存储来自业务线应用程序的关系数据,以及来自移动应用程序、IoT 设备和社交媒体的非关系数据。捕获数据时,未定义数据结构或 Schema。这意味着您可以存储所有数据,而不需要精心设计也无需知道将来您可能需要哪些问题的答案。您可以对数据使用不同类型的分析(如 SQL 查询、大数据分析、全文搜索、实时分析和机器学习)来获得见解。
数据库、数据仓库之间的区别与联系
从本篇文章开始,笔者打算写一个系列的《clickhouse专栏》,其全称是Click Stream,Data WareHouse,简称ClickHouse。从其全称中的“Data WareHouse”,我们可以看出clickhouse的定位是数据仓库。那么“数据仓库”和“数据库”有什么区别呢?理解这点这很重要,理解了二者的区别,你就可以正确地将clickhouse用到其合适的应用场景。
- 一、OLTP与OLAP
- 二、数据仓库的特点
- 三、数据库与数据仓库结合使用
在理解\”数据仓库\”与“数据库”的区别之前,我们需要先说明两个术语,即:OLTP与OLAP。
- OLTP(on-line transaction processing)联机事务处理:通常指的是面向传统应用服务的关系型数据库,用户通过web界面操作实时“增删改查”数据库里面的数据。包含核心的基本的事务处理逻辑,用户对于性能的要求很高,用户点击界面之后,响应时间最低要求在5秒之内(通常3秒以内),同时需要支持比较高的用户并发度。OLTP的数据操作通常面向的是1条或几条少量数据,比如:用户下单操作该用户的购物车、支付记录、积分记录等少量数据。
- OLAP(On-Line Analytical Processing)联机分析处理:面向的应用主要是执行复杂的数据分析操作,侧重于决策支撑,通过图形报表展现直观易动的数据分析结果。对于响应时间的要求相对宽松,数据分析过程通常不支持用户高并发,但数据分析的结果支持用户的高并发访问。OLAP面向的通常是批量数据操作,数据按批次进行导入、分析等操作,OLAP系统通常结合ETL(抽取(extract)、转换(transform)、加载(load))系统进行使用。
理解上面的两个数据,剩下的就简单多了,数据库通常面向OLTP操作,数据仓库通常面向OLAP操作。OLTP侧重于保存及变更数据的当前状态,而数据仓库侧重于保存数据的历史存档。比如:用户银行转账,OLTP数据库侧重于管理用户当前账户里的剩余金额,和转账过程对方账户金额入账的数据一致性;而OLAP数据仓库侧重于记录谁进行了转账、转了多少钱、钱转到了哪里。历史上该用户习惯在什么时间转账,月初还是月末?一个月转账几次?
下面的是数据仓库的几个典型特点:
- 关注于记录数据变化的过程,而不是数据当前的状态。
- 读多写少
- 大宽表
- 数据批量操作,不更新或很少更新
- 不支持事务
有的工作经验相对少的朋友看了这几条会说:“这哪是什么特点,这都是缺点啊!” 。不更新或很少更新,读多写少都是场景限制,大宽表破坏数据库设计范式,不支持事务那还叫什么数据库?其实不然,在OLAP的场景下,这些恰恰是它为了保障数据分析的性能所进行特殊设计的特点。我给大家举几个例子:
- 比如:某云厂商按周期采集服务器的运行指标,比如:内存使用率、CPU使用率等等。这些指标都是批量采集、批量入库的,一旦入库就不会再去修改。通常也不会将内存指标建立一张表、CPU使用率建一张表,而是对于同一机房的服务器建一张表,这张表以时间维度包含各种指标。比如:查询内存使用率>80,CPU使用率>70的服务器的时候,就不会两表关联查询了,查询一张宽表就可以了,数据分析的性能飞跃式提升。不支持事务,通常OLAP系统不支持事务,因为事务会在一定程度上影响数据操作的性能。数据入库之后,需要针对这些指标不断地进行分析、挖掘,即:读多写少,基本上就批量写一次后续都是“查询数据”操作。
- 又比如:股票实时交易数据,关注于记录数据变化的过程,而不是数据当前的状态。所有股票的所有历史数据一旦进入数据仓库之后,就不会发生修改。可以进行股票量化交易分析。
- 又比如:用户商品点击量数据、用户操作行为数据、用户网页浏览时长数据等等,这些数据都是对用户进行分析所需要的数据,一旦入库不会修改。可以进行用户买卖意愿行为分析。
其实还有很多这种类型的数据,这种数据的特点就是:数据量大、产生之后不会发生变化(那一个时间刻度的数据就不会发生变化)。因此,数据仓库通常面向的是吞吐量大的历史数据进行存档、不会再做更新删除操作的这种数据场景,数据存档之后通常只面向数据查询分析。
通常一个较大型的应用服务系统,既有数据库,也有数据仓库。数据库面向用户进行联机事务处理,处理用户界面的实时操作。数据仓库的数据面向决策管理层,提供数据及图形报表,提供变化多样的数据分析决策。
数据库与数据仓库结合使用
上图是一个典型的数据库与数据仓库同时存在的应用服务场景
- 互联网用户通过应用服务产生用户行为,对数据库进行OLTP操作
- 应用服务把用户的操作的行为发送给消息队列,消息队列将数据导入数据仓库
- 数据库的数据可以通过ETL抽取、处理、转换、整合到数据仓库
- 决策分析系统主要面向数据仓库进行数据分析,数据分析结果可以回馈到数据库,通过应用服务面向互联网用户提供数据分析结果查看能力
- 决策分析系统同时对应用服务的决策管理者,提供数据分析决策支撑能力
数据库和数据仓库的区别和联系
Data Warehose,简写成DW或DWH。是一个很大的数据存储集合,出于企业的分析性报告和决策支持目的而建立,对多样的业务数据进行筛选与整合。它为企业提供一定的BI(商业智能)能力,指导业务流程改进、监视时间、成本、质量以及控制。
数据仓库的输入方各种各样的数据源,最终的输出用于企业的数据分析、数据挖掘、数据报表等方向。
数据库
数据库是面向交易的处理系统,他是针对具体业务在数据库练级的日常操作,通常对记录进行查询、修改。用户比较关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。
传统的数据库系统作为数据管理的主要手段,主要用于操作型处理,也被称为练级事务处理OLAP(on-line transaction processsing)
数据库和数据仓库的区别:
- 数据库是面向事务设计的,数据仓库是面向主题设计的
- 数据库一般存储业务数据,数据仓库存储的一般是历史数据
- 数据库是为捕捉数据而设计,数据仓库是为分析数据而设计
数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、威力决策需要而产生的,他绝不是所谓的“大型数据库”
数据仓库的分层:数据源(ODS)、数据仓库(DW)、数据应用(APP)
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。