数据仓库与数据集市的概念区别

企业从事数据仓库项目时,往往会遇到多个数据仓库软件供应商。各供应商除了推销相关的软件工具外,同时会向企业灌输许多概念,其中,数据仓库和数据集市是最常见的。由于术语定义不统一,另外各个供应商销售策略不一样,往往会给企业带来很大的混淆。最典型的问题是:到底是先上一个企业级的数据仓库呢?还是先上一个部门级的数据集市?本文试图说明这两个概念之间的区别和联系,以期对具体的数据仓库项目有所裨益。

1.为什么会出现数据仓库和数据集市?

“数据仓库”的概念可以追溯到80 年代中期。从本质上讲,最初数据仓库是想为操作型系统到决策支持环境的数据流提供一种体系结构模型,并尝试解决和这些数据流相关的各种问题。
      在缺乏“数据仓库”体系结构的情况下,早期的决策支持环境如图1 所示。企业内部存在许多冗余的、重复建设的决策支持系统(通常是报表系统),这些系统被不同类型的用户使用,数据的抽取层次复杂,最初在OLTP 上抽取,再在抽取后的数据集上抽取,如此等等,呈“蜘蛛网”状,由于没有公共的数据源,并且数据没有时间点,导致了产生的报表可信度下降,数据不一致问题特别显著,更不用说转化为有效的决策信息。

为了解决上述问题,数据仓库应运而生。数据仓库构建了一种以集中式的数据存储为核心的体系结构,数据存储的模式为了适应决策分析的要求,从而形成一种与原来业务系统构

成的操作型环境(OLTP)相独立的决策支持环境。数据仓库最基本的体系结构如图2 所示。图2 所示的以数据仓库为基础的决策支持环境,要求数据仓库能够满足所有最终用户的需求。然而,最终用户的需求是不断变化的,而且各种类型的用户对信息的需求也不一样,这就要求数据仓库存储的数据具有充分的灵活性,能够适应各类用户的查询和分析。另一方面,最终用户对信息的需求必须易于访问,能够在较高的性能上获得结果。但是,灵活性和性能对数据仓库而言,是一对矛盾体。为了适应灵活性的要求,数据仓库需要存储各种历史数据,以规范化的模式存储(一般是第3范式)。于是,对于特定的用户,他/她所需要的信息就需要在许多张很大的表上连接后得到结果,这样就无法满足用户对快速访问的性能需求。为了解决灵活性和性能之间的矛盾,数据仓库体系结构中增加了数据集市,数据集市存储为特定用户需求而预先计算好的数据,从而满足用户对性能的需求。带有数据集市的体系结构如图3 所示。

上文提及数据仓库除了为数据流构建体系结构模型外,还尝试解决与数据流相关的各种问题,这些问题如图4 所示,包括数据仓库构建过程中需要开展的各种任务及特点。

2.数据仓库和数据集市的概念

对于数据仓库和数据集市的概念有各种不同的版本,本文参照数据仓库之父Inmon 的定义予以说明(www.billinmon.com词汇表)。数据仓库:是一个集成的面向主题的数据集合,设计的目的是支持DSS(决策支持系统)的功能,在数据仓库里,每个数据单元都和特定的时间相关。数据仓库包括原子级别的数据和轻度汇总的数据。数据仓库是面向主题的、集成的、不可更新的(稳定性)、随时间不断变化(不同时间)的数据集合,用以支持经营管理中的决策制定过程。不能将数据仓库简单地理解成一套软件,数据仓库是重建企业数据流和信息流的过程,在这个过程中,构造企业的决策支持环境,以区别原来的业务系统所构建的操作型环境。数据仓库的价值并不是你在仓库中所存储的数据量的多少,而关键在于从仓库中能够获得的信息和分析结果的质量。数据集市:是一个小型的部门或工作组级别的数据仓库。有两种类型的数据集市——独立型和从属型。独立型数据集市直接从操作型环境获取数据。从属型数据集市从企业级数据仓库获取数据。从长远的角度看,从属型数据集市在体系结构上比独立型数据集市更稳定。独立型数据集市的存在会给人造成一种错觉,似乎可以先独立地构建数据集市,当数据集市达到一定的规模可以直接转换为数据仓库,有些销售人员会推销这种错误的观点,因为建立企业级数据仓库的销售周期长。多个独立的数据集市的累积是不能形成一个企业级的数据仓库的,这是由数据仓库和数据集市本身的特点决定的。如果脱离集中式的数据仓库,独立的建立多个数据集市,企业只会又增加了一些信息孤岛,仍然不能以整个企业的视图分析数据,数据集市为各个部门或工作组所用,各个集市之间又会存在不一致性。当然,独立型数据集市是一种既成事实,为满足特定用户的需求而建立的一种分析型环境,但是,从长远的观点看,是一种权宜之计,必然要为一个企业级的数据仓库所取代。

3.数据仓库和数据集市之间的区别

数据仓库和数据集市之间的区别可以直观地用下图表示(图5,www.billinmon.com)。

从图中可以看出,数据仓库中数据结构采用的规范化模式(关系数据库设计理论),数据集市的数据结构采用的星型模式(多维数据库设计理论)。数据仓库中数据的粒度比数据集市的细。上图只反映了数据结构和数据内容的两个特征,对于其他区别如下表所示,并且简单的以银行为例进行说明。

假设为某银行构建一个分行级别的数据仓库,再为该分行国际业务部构建数据集市。数据仓库的数据来源于银行的业务系统,包括:储蓄、卡、个贷、外汇宝、中间业务等等,分析的主题包括客户、渠道、产品等。数据仓库的数据粒度根据分析的要求而定,一般包括具体的历史记录(存款、取款、外汇交易、POS 消费、中间业务缴费记录),然后,将这些记录汇总到天/周/月/季度/年等各个层次,具体数据的粒度由分析的需求而定。另外,数据仓库还存储一些业务逻辑——为分析而计算的一些指标。比如,客户的价值或客户的忠诚度。这些指标的计算不能通过单一的业务系统,需要在所有业务上综合考虑,这也是数据仓库系统的优点之一。假设整个分行有20 万个客户,那么数据仓库将包含20 万个客户的所有业务的历史数据、汇总数据、以及数据仓库指标数据,数据量会达到几十甚至数百G(这只是非常小规模的数据仓库)。数据仓库为了满足全行所有部门用户的查询和分析,只能采用范式化设计,这样不管用户有什么需求,只要有数据存在,就能满足。再假设国际业务部门的客户有2 万人(使用外汇宝),如果不构建数据集市,他们会直接在数据仓库上查询相关的信息,比如外汇宝客户去年一年外汇交易额在各种交易方式上(柜台、网上、电话银行等)的分布。查询的效率和性能是非常低的,如果各个部门的所有用户都直接在数据仓库上查询相关的信息,数据仓库的性能会下降,而且无法满足用户对性能的需求,谁都不愿意为一个简单的查询等待数分钟甚至数小时。因此,构建部门级的数据集市是非常必要的,主要基于性能上的考虑。国际业务部门的数据集市包括2 万个客户的外汇交易历史,以及汇总,采用星型模式(或雪片,或两者混合),以方便OLAP 工具的查询和分析。从这个简单的例子,可以看出,数据集市的数据来源于数据仓库,主要是经过重新组织的汇总数据。因此,多个数据集市不能构成一个企业级的数据仓库,借用Inmon 的比喻:我们不可能将大海里的小鱼堆在一起就构成一头大鲸鱼。这也说明了数据仓库和数据集市有本质的不同。

跟随数据仓库和数据集市的概念,数据仓库的设计方法也分为三种:自顶而下,自下而上,以及两者的混合。所谓自顶而下是先建立一个企业级的数据仓库,再建立各个数据集市,自下而上与此相反,混合的方法是要求在建立数据集市时,同时考虑企业级数据仓库的结构、内容。

原文地址:https://www.cnblogs.com/lxbmaomao/p/9525391.html

时间: 2024-10-10 20:29:54

数据仓库与数据集市的概念区别的相关文章

第二章:数据仓库与数据集市建模

前言 数据仓库建模包含了几种数据建模技术,除了之前在数据库系列文章中介绍过的ER建模和关系建模,还包括专门针对数据仓库的维度建模技术. 本文将详细介绍数据仓库维度建模技术,并重点讨论三种基于ER建模/关系建模/维度建模的数据仓库总体建模体系:规范化数据仓库,维度建模数据仓库,以及独立数据集市. 维度建模的基本概念 维度建模(dimensional modeling)是专门用于分析型数据库.数据仓库.数据集市建模的方法. 它本身属于一种关系建模方法,但和之前在操作型数据库中介绍的关系建模方法相比增

五、数据仓库,数据集市建模

维度建模的基本概念 维度建模(dimensional modeling)是专门用于分析型数据库.数据仓库.数据集市建模的方法, 维度建模是一种将数据结构化的逻辑设计方法,它将客观世界划分为度量和上下文.度量是常常是以数值形式出现,事实周围有上下文包围着,这种上下文被直观地分成独立的逻辑块,称之为维度.它与实体-关系建模有很大的区别,实体-关系建模是面向应用,遵循第三范式,以消除数据冗余为目标的设计技术.维度建模是面向分析,为了提高查询性能可以增加数据冗余,反规范化的设计技术. 它本身属于一种关系

Hyper-V、vmware、Parallels 概念区别

Hyper-v主机是基于Windows2012 R2 x64的Hyper-V实现的Hyper-v主机技术,又称Hyper-v主机由于"微软公司的Hyper-V技术"是全球领先的真正的"硬虚拟化"技术,在性能及稳定上有无可比拟的优势,每个Hyper-v主机都可分配独立公网IP地址.独立操作系统.独立超大空间.独立内存.独立CPU资源.独立带宽具有独立服务器功能,可自行安装程序,单独重启服务器.Hyper-v主机是高端虚拟主机用户的最佳选择.您不再受其他用户程序对您造成

主键、自增主键、主键索引、唯一索引概念区别与性能区别

概念区别: 主键:指字段唯一不为空值的列. 主键索引:指的就是主键,主键没有明确的概念定义,主键既是约束,也是索引,主键是索引的一种,是唯一索引的特殊类型.创建主键的时候,数据库默认会为主键创建一个唯一索引. 自增主键:字段类型为数字.自增.并且是主键. 唯一索引:索引列的值必须唯一,但允许有空值.主键是唯一索引,这样说没错.但反火来说唯一索引也是主键就错误了,因为唯一索引允许空值,主键不允许有空值,所以不能说唯一索引也是主键. 性能区别: 通过测试,发现主键.自增主键.唯一索引的查询效率不一样

Linux中tty、pty、pts的概念区别

基本概念: 1> tty(终端设备的统称): tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适. 终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备. 2> pty(虚拟终端): 但是如果我们远程telnet到主机或使用xterm时不也需要一个终端交互么?是的,这就是虚拟终端pty(pseudo-tty) 3> pts/

数据仓库系列2-基本概念

说起数据仓库,肯定得提到建模,建模就必须得知道一些基本的概念. 1.实体 实体顾名思义就是真实的东西,因为建模就是把实际的东西通过数据模型表达出来,所以呢实体通常是名词,比如人,商店,房间等,都可以是实体. 实体对应到数据库中呢,就是一张表.一般通过一张表来描述一份实体. 实体呢也有很多分类,通常情况下5w1h比较多点, who what when where why how 也可以用含义分类,根据不同的含义进行分类,比如产品,事件,资源,位置等. 也可以根据pattern来分类,比如主实体,子

数据仓库与事务型数据库的区别

我们为某个程序创建的特定的数据库一般称为事务型数据库(Transaction Database), 它Data Warehouse(DW)还是有很大差别的. 1. 事务数据库帮助人们执行活动,而数据仓库帮助人们做计划.例如,事务数据库可能显示航班的哪些座位是空的,这样旅客可以进行预定.而数据仓库用于展示空座率情况的历史信息,以让航班管理员决定在未来是否要调度航班. 2. 事务数据库关注细节,而数据仓库关注高层次的聚集.例如,一个大人只想购买最流行的儿童图书而不关心它的库存情况.但负责图书在书架上

Rman 中 Backupsets and Images copy的概念区别

备份集 概念(backup set): Oracle默认的备份类型,把数据文件中已经使用过的数据块备份到一个或多个文件中,这样的文件叫做"备份片",所有备份出来的文件组合成为"备份集".备份集与备份片的关系类似于表空间与数据文件的关系,备份集是一个逻辑概念,将备份片(物理文件)逻辑地组织在一起.一般来说一个通道会产生一个备份集,比如启动了3个通道,那么每个通道负责生成一个备份集,不过如果启动了控制文件自动备份,那么控制文件所在的备份文件会单独生成一个备份集,不会与数

Linux中tty、pty、pts的概念区别 转载

基本概念: 1> tty(终端设备的统称): tty一词源于Teletypes,或teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘和显示器取代,所以现在叫终端比较合适. 终端是一种字符型设备,他有多种类型,通常使用tty来简称各种类型的终端设备. 2> pty(虚拟终端): 但是假如我们远程telnet到主机或使用xterm时不也需要一个终端交互么?是的,这就是虚拟终端pty(pseudo-tty) 3> pts/p