【天蝎WG-概念篇】认识数据仓库

数据仓库概念

WG出品,必属精品

日常接触到的数据库类型分为两种:

  1. 操作型数据库
  2. 分析型数据库

操作型数据库,或者从另外一个角度来说就是OLTP。OLTP在百度上的解释是这样的

On-Line Transaction Processing联机事务处理系统(OLTP)
也称为面向交易的处理系统,其基本特征是顾客的原始数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果。这样做的最大优点是可以即时地处理输入的数据,及时地回答。也称为实时系统(Real time System)。衡量联机事务处理系统的一个重要性能指标是系统性能,具体体现为实时响应时间(Response Time),即用户在终端上送入数据之后,到计算机对这个请求给出答复所需要的时间。OLTP是由数据库引擎负责完成的。 OLTP 数据库旨在使事务应用程序仅写入所需的数据,以便尽快处理单个事务。

说白了,操作型数据库就是我们平时做的业务系统用的数据库,一般都有下面这几种:oracle、MySQL、PostgreSQL等。它的实时性要求很高,包括了select、update、insert、delete这四种类型的操作。

分析型数据库,或者从另外一个角度来说就是OLAP。OLAP在百度上的解释是这样的

OLAP,联机分析处理 一般指联机分析处理
随着数据库技术的发展和应用,数据库存储的数据量从20世纪80年代的兆(M)字节及千兆(G)字节过渡到现在的兆兆(T)字节和千兆兆(P)字节,同时,用户的查询需求也越来越复杂,涉及的已不仅是查询或操纵一张关系表中的一条或几条记录,而且要对多张表中千万条记录的数据进行数据分析和信息综合,关系数据库系统已不能全部满足这一要求。在国外,不少软件厂商采取了发展其前端产品来弥补关系数据库管理系统支持的不足,力图统一分散的公共应用逻辑,在短时间内响应非数据处理专业人员的复杂查询要求。
联机分析处理(OLAP)系统是数据仓库系统最主要的应用,专门设计用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持,可以根据分析人员的要求快速、灵活地进行大数据量的复杂查询处理,并且以一种直观而易懂的形式将查询结果提供给决策人员,以便他们准确掌握企业(公司)的经营状况,了解对象的需求,制定正确的方案。

分析型数据库其实就是我们所说的数据仓库、数据集市这类的数据库。它不像操作型数据库支持很多种事务操作,一般只支持查询操作。大部分对操作型数据库比较熟悉,所以下面让数据仓库与操作型数据库做个对比。

数据规模

数据仓库的数据规模是非常大的,通常是比操作型数据库大几个数量级。操作型数据库在企业中的规模达到T级别的已经很庞大了,这样大的数据库做查询,插入这些操作是相当耗时的,所以企业一般会把一些老旧的数据进行归档处理,以保持数据库的性能。

但是在数据仓库中P级别的相当常见,有一些大型企业的数据库已经达到了E级别的,比如国内的BAT以及电信金融领域的企业。数据仓库中主要都是一些归档的数据,主要都是从操作型数据库中经过ETL的数据。

时间跨度

操作型数据库的时间跨度是比较短的,这是为了保持性能而做的割舍。例如电信的数据库,一般而言都是在三个月内的数据,用户比较集中查询的是三个月的数据,再往前的数据一般只能去一些归档数据库查询了。

数据仓库这种类型的一般时间跨度都会达到N年,老牌IT企业几十年的都有,例如IBM。

查询频度

操作型数据库的查询频率是非常之高的,例如金融系统,金融系统在交易高峰期的PV是非常恐怖的,没有足够的服务器是无法支撑这样的恐怖的交易。

数据仓库的查询频率不是这么高,因为基于数据仓库的业务系统一般都是公司的决策系统,而决策系统一般只有核心部门以及核心人员才会去使用,所以相对来说查询频率会低好几个数量级。

数据定位

操作型数据库的数据定位是为了业务系统的业务需求,所以它的数据一般都是有很多冗余以及噪音的,但是这也是不可避免的。

数据仓库的数据定位是为了公司的决策需要,所以它的数据是经过ETL处理的,相对于业务系统的数据库来说,它的数据和结构都相对的精炼,噪声基本都被过滤。

面向对象

操作型数据库一般面对的各种类型的用户:学生,顾客、售货员等等。

数据仓库一般面对的是各层精英,因为数据仓库一般做的都是决策系统。如果不是精英阶层,如何能接触到这些核心系统。

数据作用
操作型数据库的数据是为了支持业务系统,而数据仓库的数据是为了做公司决策,用处是完全不一样的。

数据仓库的组成

数据仓库系统的组成万变不离其宗,都会包含这几个组件:

  1. 源数据源,可以是数据库、xml、excel等
  2. ETL,可以是自己写的脚本,也可以是市面上的ETL软件,例如datastage,kettle等
  3. 数据仓库,一个可以支撑海量数据的数据库,例如hive、oracle集群

总结:一个良好的数据仓库必是一个设计精良,结构优美的数据库。

你可能感兴趣的:(天蝎WG-概念篇)