0


数据仓库(数仓)介绍

N.1 什么是数据仓库

1)数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它出于分析性报告和决策支持目的而创建。为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。

2)数据仓库的定义:

数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策,它是一种与时间相关的、不可修改的数据集合

N.2 数据仓库能干什么?

1)年度销售目标的指定,需要根据以往的历史报表进行决策,不能拍脑袋。

2)如何优化业务流程

(1)例如:一个电商网站订单的完成包括:浏览、下单、支付、物流,其中物流环节可能和中通、申通、韵达等快递公司合作。快递公司每派送一个订单,都会有订单派送的确认时间,可以根据订单派送时间来分析哪个快递公司比较快捷高效,从而选择与哪些快递公司合作,剔除哪些快递公司,增加用户友好型。

N.3 数据仓库的特点

1)数据仓库的数据是面向主题的

(1)与传统数据库面向应用进行数据组织的特点相对应,数据仓库中的数据是面向主题进行组织的。什么是主题呢?

(2)首先,主题是一个抽象的概念,是较高层次上企业信息系统中的数据综合、归类并进行分析利用的抽象。在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象。面向主题的数据组织方式,就是在较高层次上对分析对象的数据的一个完整、一致的描述,能完整、统一地刻划各个分析对象所涉及的企业的各项数据,以及数据之间的联系。所谓较高层次是相对面向应用的数据组织方式而言的,是指按照主题进行数据组织的方式具有更高的数据抽象级别。

2)数据仓库的数据是集成的

数据仓库的数据是从原有的分散的数据库数据抽取来的。操作型数据与DSS分析型数据之间差别甚大。第一,数据仓库的每一个主题所对应的源数据在原有的各分散数据库中有许多重复和不一致的地方,且来源于不同的联机系统的数据都和不同的应用逻辑捆绑在一起;第二,数据仓库中的综合数据不能从原有的数据库系统直接得到。因此在数据进入数据仓库之前,必然要经过统一与综合,这一步是数据仓库建设中最关键、最复杂的一步,所要完成的工作有:

(1)要统一源数据中所有矛盾之处,如字段的同名异义、异名同义、单位不统一、字长不一致等。

(2)进行数据综合和计算。数据仓库中的数据综合工作可以在从原有数据库抽取 数据时生成,但许多是在数据仓库内部生成的,即进入数据仓库以后进行综合生成的。

3)数据仓库的数据是不可更新的

数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一般情况下并不进行修改操作。数据仓库的数据反映的是一段相当长的时间内历史数据的内容,是不同时点的数据库快照的集合,以及基于这些快照进行统计、综合和重组的导出数据,而不是联机处理的数据。数据库中进行联机处理的数据经过集成输入到数据仓库中,一旦数据仓库存放的数据已经超过数据仓库的数据存储期限,这些数据将从当前的数据仓库中删去。因为数据仓库只进行数据查询操作,所以数据仓库管理系统相比数据库管理系统而言要简单得多。数据库管理系统中许多技术难点,如完整性保护、并发控制等等,在数据仓库的管理中几乎可以省去。但是由于数据仓库的查询数据量往往很大,所以就对数据查询提出了更高的要求,它要求采用各种复杂的索引技术;同时由于数据仓库面向的是商业企业的高层管理者,他们会对数据查询的界面友好性和数据表示提出更高的要求。

4)数据仓库的数据是随时间不断变化的

数据仓库中的数据不可更新是针对应用来说的,也就是说,数据仓库的用户进行分析处理时是不进行数据更新操作的。但并不是说,在从数据集成输入数据仓库开始到最终被删除的整个数据生存周期中,所有的数据仓库数据都是永远不变的。

数据仓库的数据是随时间的变化而不断变化的,这是数据仓库数据的第四个特征。这一特征表现在以下3方面:

(1)数据仓库随时间变化不断增加新的数据内容。数据仓库系统必须不断捕捉OLTP (On-Line Transaction Processing联机事务处理)数据库中变化的数据,追加到数据仓库中去,也就是要不断地生成OLTP数据库的快照,经统一集成后增加到数据仓库中去;但对于确实不再变化的数据库快照,如果捕捉到新的变化数据,则只生成一个新的数据库快照增加进去,而不会对原有的数据库快照进行修改。

(2)数据仓库随时间变化不断删去旧的数据内容。数据仓库的数据也有存储期限,一旦超过了这一期限,过期数据就要被删除。只是数据仓库内的数据时限要远远长于操作型环境中的数据时限。在操作型环境中一般只保存有6090天的数据,而在数据仓库中则需要保存较长时限的数据(如510年),以适应DSS进行趋势分析的要求。

(3)数据仓库中包含有大量的综合数据,这些综合数据中很多跟时间有关,如数据经常按照时间段进行综合,或隔一定的时间片进行抽样等等。这些数据要随着时间的变化不断地进行重新综合。因此,数据仓库的数据特征都包含时间项,以标明数据的历史时期。

N.4 数据仓库发展历程

1)数据仓库的发展大致经历了这样的三个过程:

(1)简单报表阶段:这个阶段,系统的主要目标是解决一些日常的工作中业务人员需要的报表,以及生成一些简单的能够帮助领导进行决策所需要的汇总数据。这个阶段的大部分表现形式为数据库和前端报表工具。

(2)数据集市阶段:这个阶段,主要是根据某个业务部门的需要,进行一定的数据的采集,整理,按照业务人员的需要,进行多维报表的展现,能够提供对特定业务指导的数据,并且能够提供特定的领导决策数据。

(3)数据仓库阶段:这个阶段,主要是按照一定的数据模型,对整个企业的数据进行采集,整理,并且能够按照各个业务部门的需要,提供跨部门的,完全一致的业务报表数据,能够通过数据仓库生成对业务具有指导性的数据,同时,为领导决策提供全面的数据支持。

通过数据仓库建设的发展阶段,我们能够看出,数据仓库的建设和数据集市的建设的重要区别就在于数据模型的支持。因此,数据模型的建设,对于我们数据仓库的建设,有着决定性的意义。

N.5 数据库与数据仓库的区别

了解数据库与数据仓库的区别之前,首先掌握三个概念。数据库软件、数据库、数据仓库。

1)数据库软件:是一种软件,可以看得见,可以操作。用来实现数据库逻辑功能。属于物理层。

2)数据库:是一种逻辑概念,用来存放数据的仓库。通过数据库软件来实现。数据库由很多表组成,表是二维的,一张表里可以有很多字段。字段一字排开,对应的数据就一行一行写入表中。数据库的表,在于能够用二维表现多维关系。目前市面上流行的数据库都是二维数据库。如:Oracle、DB2、MySQL、Sybase、MS SQL Server等。

3)数据仓库:是数据库概念的升级。从逻辑上理解,数据库和数据仓库没有区别,都是通过数据库软件实现的存放数据的地方,只不过从数据量来说,数据仓库要比数据库更庞大得多。数据仓库主要用于数据挖掘和数据分析,辅助领导做决策。

在IT的架构体系中,数据库是必须存在的。必须要有地方存放数据。比如现在的网购,淘宝,京东等等。物品的存货数量,货品的价格,用户的账户余额之类的。这些数据都是存放在后台数据库中。或者最简单理解,我们现在微博,QQ等账户的用户名和密码。在后台数据库必然有一张user表,字段起码有两个,即用户名和密码,然后我们的数据就一行一行的存在表上面。当我们登录的时候,我们填写了用户名和密码,这些数据就会被传回到后台去,去跟表上面的数据匹配,匹配成功了,你就能登录了。匹配不成功就会报错说密码错误或者没有此用户名等。这个就是数据库,数据库在生产环境就是用来干活的。凡是跟业务应用挂钩的,我们都使用数据库。

数据仓库则是BI下的其中一种技术。由于数据库是跟业务应用挂钩的,所以一个数据库不可能装下一家公司的所有数据。数据库的表设计往往是针对某一个应用进行设计的。比如刚才那个登录的功能,这张user表上就只有这两个字段,没有别的字段了。但是这张表符合应用,没有问题。但是这张表不符合分析。比如我想知道在哪个时间段,用户登录的量最多?哪个用户一年购物最多?诸如此类的指标。那就要重新设计数据库的表结构了。对于数据分析和数据挖掘,我们引入数据仓库概念。数据仓库的表结构是依照分析需求,分析维度,分析指标进行设计的。

4)数据库与数据仓库区别

数据库与数据仓库的区别实际大概的等价于OLTP与OLAP的区别。

(1)操作型处理,叫联机事务处理OLTP(对实时性的要求比较高而且要支持事务)(On-Line Transaction Processing),也可以称面向交易的处理系统,它是针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改(类似流处理)。用户较为关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题,是传统的数据库系统作为数据管理的主要手段,主要用于操作型处理。

OLTP的组件有:一般是指关系性数据库,而flink,storm速度和响应都比较快,如果组合使用可以作为OLTP场景使用。

(2)分析型处理,叫联机分析处理OLAP(对实时性的要求不高)(On-Line Analytical Processing)一般针对某些主题的历史数据进行分析,支持管理决策(类似批处理)。设计的数据,一般是即埋点日志。

如OLAP的组件有:Kylin,impala(基于hive)等即席查询工具。

5)数据处理大致可以分成两大类:操作型处理OLTP与分析型处理OLAP的比较

操作型处理(数据库),联机事务处理对。

分析型处理(数据仓库,里面的数据来自各站各样的数据库)

细节的

综合的或提炼的

实体——关系(E-R)模型,属于关系建模。

星型模型、雪花模型或星座模型,属于维度建模

存取瞬间数据

存储历史数据,不包含最近的数据

可更新的

只读、只追加

一次操作一个单元

一次操作一个集合

性能要求高,响应时间短

性能要求宽松

面向事务

面向分析

一次操作数据量小

一次操作数据量大

支持日常操作

支持决策需求

数据量小

数据量大

客户订单、库存水平和银行账户查询等

客户收益分析、市场细分析等

表和表的关联分析比较少,所以遵循关系建模,这样数据的冗余性比较少。

表和表的关联分析比较多,所以不遵循关系建模,而是维度建模,这样可以提高,虽然数据有冗余,但是,提高了表关联的效率,减少了跨表分析。

N.6 关系建模和维度建模

1)关系建模关系模型严格遵循第三范式(3NF),主要应用于OLTP系统中。

2)维度模型主要应用于OLAP系统,在维度建模的基础上又分为3种模型:星型模型,雪花模型,星座模型。

  1. 星型模型

星型模型的缺点是存在一定程度的数据冗余。因为其维表只有一个层级,有些信息被存储了多次。比如一张包含国家、省份、地市三列的维表,国家列会有很多重复的信息。

  1. 雪花模型

其优点是通过最大限度地减少数据存储量以及联合较小的维表来改善查询性能,避免了数据冗余。其缺点是增加了主键-外键关联的几率,导致查询效率低于星型模型,并且不利于开发。

  1. 星座模型

星座模型也是星型模型的扩展。区别是星座模型中存在多张事实表,不同事实表之间共享维表信息,常用于数据关系更复杂的场景

  1. 雪花模型和星型模型区别

(1)雪花模型去除了冗余,设计复杂,可读性差,关联的维度表多,查询效率低,但是可扩展性好。

(2)星型模型冗余度高,设计简单,可读性高,关联的维度表少,查询效率高,可扩展性低。


本文转载自: https://blog.csdn.net/weixin_43871785/article/details/130790083
版权归原作者 研发咨询顾问 link348 所有, 如有侵权,请联系我们删除。

“数据仓库(数仓)介绍”的评论:

还没有评论