一、数据仓库
1. 什么是数据仓库?
数据仓库(Data Warehouse),可简写为DW或DWH,数据仓库,是为了企业所有级别的决策制定计划过程,提供所有类型数据类型的战略集合。它出于分析性报告和决策支持的目的而创建。为需要业务智能的企业 ,为需要指导业务流程改进、监视时间,成本,质量以及控制等;
2. 数据仓库能干什么?(举几个栗子)
(1)年度销售目标的制定,需要根据以往的历史报表进行决策,不能随便制定
(2)优化业务流程
例如:某电商平台某品牌的手机,在过去5年主要的的购买人群的年龄在什么年龄段,在那个季节购买量人多,这样就可以根据这个特点为目标人群设定他们主要的需求和动态分配产生的生产量,和仓库的库存。
3. 数据仓库的特点
(1)数据仓库是面向主题的。
与传统的数据库不一样,数据仓库是面向主题的,那什么是主题呢?首页主题是一个较高层次的概念,是较高层次上企业信息系统中的数据综合,归类并进行分析的对象。在逻辑意义上,他是对企业中某一个宏观分析领域所涉及的分析对象。(说人话:就是用户用数据仓库进行决策所关心的重点方面,一个主题通常与多个操作信息型系统有关,而操作型数据库的数据组织面向事务处理任务,各个任务之间是相互隔离的);
(2)数据仓库是集成的。
数据仓库的数据是从原来的分散的数据库数据(mysql等关系型数据库)抽取出来的。操作型数据库与DSS(决策支持系统)分析型数据库差别甚大。第一,数据仓库的每一个主题所对应的源数据在所有的各个分散的数据库中,有许多重复和不一样的地方,且来源于不同的联机系统的数据都和不同的应用逻辑捆绑在一起;第二,数据仓库中的综合数据不能从原来有的数据库系统直接得到。因此在数据进入数据仓库之前,必然要经过统一与综合,这一步是数据仓库建设中最关键,最复杂的一步,所要完成的工作有:
1》要统计源数据中所有矛盾之处,如字段的同名异议、异名同义、单位不统一,字长不统一等。
2》进行数据的综合和计算。数据仓库中的数据综合工作可以在原有数据库抽取数据时生成,但许多是在数据仓库内部生成的,即进入数据仓库以后进行综合生成的。
数据仓库的数据是随着时间的变化而变化的。
1. 数据仓库中的数据不可更新是针对应用来说的,也就是说数据仓库的用户进行分析处理是不进行数据更新操作的。但并不是说,在从数据集成输入数据仓库开始到最后被删除的整个生存周期中,所有的数据仓库数据都是永远不变的。
2. 数据仓库的数据是随着时间变化而变化的,这是数据仓库的特征之一。这一特征主要有以下三个表现:
(1)数据仓库随着时间变化不断增加新的数据内容。数据仓库系统必须不断捕捉OLTP数据库中变化的数据,追加到数据仓库当中去,也就是要不断的生成OLTP数据库的快照,经统一集成增加到数据仓库中去;但对于确实不在变化的数据库快照,如果捕捉到新的变化数据,则只生成一个新的数据库快照增加进去,而不会对原有的数据库快照进行修改。
(2)数据库随着时间变化不断删去旧的数据内容 。数据仓库内的数据也有存储期限,一旦过了这一期限,过期数据就要被删除。只是数据库内的数据时限要远远的长于操作型环境中的数据时限。在操作型环境中一般只保存有60~90天的数据,而在数据仓库中则要需要保存较长时限的数据(例如:5~10年),以适应DSS进行趋势分析的要求。
(3)数据仓库中包含有大量的综合数据,这些综合数据中很多跟时间有关,如数据经常按照时间段进行综合,或隔一定的时间片进行抽样等等。这些数据要随着时间的变化不断地进行重新综合。因此数据仓库的数据特征都包含时间项,以标明数据的历史时期。
数据仓库的数据是不可修改的。
数据仓库的数据主要提供企业决策分析之用,所涉及的数据操作主要是数据查询,一般情况下并不进行修改操作。数据仓库的数据反映的是一段相当长的时间内历史数据的内容,是不同时点的数据库快照的集合, 以及基于这些快照进行统计、综合和重组的导出数据,而不是联机处理的数据。数据库中进行联机处理的数据进过集成输入到数据仓库中,一旦数据仓库存放的数据已经超过数据仓库的数据存储期限,这些数据将从当前的数据仓库中删去。因为数据仓库只进行数据查询操作,所以数据仓库当中的系统要比数据库中的系统要简单的多。数据库管理系统中许多技术难点,如完整性保护、并发控制等等,在数据仓库的管理中几乎可以省去。但是由于数据仓库的查询数据量往往很大,所以就对数据查询提出了更高的要求,他要求采用各种复杂的索引技术;同时数据仓库面向的是商业企业的高层管理层,他们会对数据查询的界面友好性和数据表示提出更高的要求;
二、数据仓库和数据库的区别
想了解区别之前,我们需要了解三个概念,数据库软件、数据库和数据仓库是什么?
1. 数据库软件:是一种软件(并不是链接数据库的图形化客户端)。用来实现数据库逻辑过程,属于物理层。
2. 数据库:是一种逻辑概念,用来存放数据的仓库,通过数据库软件来实现。数据库由很多表组成,表是二维的,一张表里面有很多字段。字段一字排开,对数据就一行一行的写入表中。数据库的表,在于能够用二维表现多维的关系。如:oracle、DB2、MySQL、Sybase、MSSQL Server等。
3. 数据仓库:是数据库概念的升级。从逻辑上理解,数据库和数据仓库没有区别,都是通过数据库软件实现存放数据的地方,只不过从数据量来说,数据仓库要比数据库更庞大的多。数据仓库主要用于数据挖掘和数据分析,辅助领导做决策;
在IT的架构体系中,数据库是必须存在的,必须要有地方存数据。比如现在的网购等电商。物品的存货多少,货品的价格,用户的账户余额之类的。这些数据都是存放在后台数据库中。或者最简单的理解,我们现在的微信、微博和QQ等账户和密码。在后台数据库必须是一个user表,字段起码有两个码,即用户名和密码,然后我们的数据就一行一行的存在表上面。当我们登录的时候,我们填写了用户名和密码,这些数据就会回传到后台去,去跟表上面的数据匹配,匹配成功了,就能登录。匹配不成功就会报错,这就是数据库,数据库在生产环境就是用来干活的。凡是跟业务有关应用挂钩的,我们都使用数据库。
数据仓库是BI下的其中一种技术。由于数据库跟业务应用挂钩的,所以一个数据库不可能装下一家公司的所有数据。数据库的表设计往往是针对某一个应用进行设计的。比如刚刚的登录功能,这张user表上就只有这两个字段,没有别的字段了。到那时这张表符合应该,没有问题,但是这张表不符合分析。比如我想知道在哪个时间段,用户的量最多?哪个用户一年购物最多?诸如此类的指标。那就要从新设计数据库的表结构了。对于数据分析和数据挖掘,我们引入了数据仓库概念。数据仓库的表结构是依照分析需求,分析维度,分析指标进行设计的。
数据库与数据仓库的区别实际讲的是OLTP与OLAP的区别。
(1) 操作型处理,叫联机事务处理OLTP(On-Line Transaction Processing),也可以称面向交易的处理系统,它是针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改。用户较为关心操作的响应时间、数据的安全性、完整性和并发的支持用户数等问题。传统的数据库系统作为数据管理的主要手段,主要用于操作型处理。
(2) 分析型处理,叫联机分析处理OLAP(On-Line Analytical Processing)一般针对某些主题历史数据进行分析,支持管理决策。
图 操作型处理与分析型处理的比较