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

“数据仓库”的概念可以追溯到80 年代中期。从本质上讲,最初数据仓库是想为操作型系统到决策支持环境的数据流提供一种体系结构模型,并尝试解决和这些数据流相关的各种问题。

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

为了解决上述问题,数据仓库应运而生。数据仓库构建了一种以集中式的数据存储为核心的体系结构,数据存储的模式为了适应决策分析的要求,形成了一种与原来业务系统构成的操作型环境(OLTP)相独立的决策支持环境。数据仓库最基本的体系结构如图2 所示。

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

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

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

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

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

数据仓库和数据集市之间的区别可以直观地用图5表示。

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

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

一些刚进公司的同学有时候会问我,我们的 数据 库信息为什么有冗余呢,这个表的设计和之前学校学习的不一样呢,为什么不符合三范式呢等等。下面我会依次介绍下 数据 库、 数据仓库 数据 集市 概念 以及他们之间的 区别 。 首先是 概念 数据 库:按照 数据 结构来组织、存储、管理 数据 的建立在计算机存储设备上面的仓库。 数据 库一般适用于操作型系统。因为符合三范式的设置, 数据 的一致性较好。 数据仓库 数据仓库 (Data ... Data warehouse(可简写为DW或者DWH) 数据仓库 ,是在 数据 库已经大量存在的情况下,它是一整套包括了etl、调度、建模在内的完整的理论体系。 数据仓库 的方案建设的目的,是为前端查询和分析作为基础,主要应用于OLAP(on-line Analytical Processing),支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。目前行业比较流行的有:AWS Redshift,Greenplum,Hive等。 数据仓库 并不是 数据 的最终目的.. 1.什么是 数据 集市 数据 集市 数据仓库 区别 数据仓库 (Data Warehouse)是一个面向主题的(Subject Oriented)、集成的( Integrate )、相对稳定的(Non -Volatile )、反映历史变化( Time Variant)的 数据 集合用于支持管理决策。对于 数据仓库 概念 我们可以从两个层次予以理解,首先, 数据仓库 用于支持决策,面向分析型 数据 处理,它不同于企业现有的操作型 数据 库;其次, 数据仓库 是对多个异构的 数据 源有效集成,集成后按照主题进行了重... 文章目录一、 数据 集市 简介1.1、 数据 集市 数据仓库 二、 数据 集市 的类型2.1. 依赖 数据仓库 2.2. 独立 数据 集市 2.3. 混合 数据 集市 三、 数据 集市 的特点 一、 数据 集市 简介 在 数据仓库 环境中用于检索客户端 数据 的模式称为 数据 集市 。它是 数据仓库 特有的结构,供团队中的业务领域使用。每个组织都有一个位于 数据仓库 存储库中的 数据 集市 。不同类型的 数据 集市 是从属的、独立的和混合的 数据 集市 。从属 数据 集市 获取已经创建的 数据 ,而独立 数据 集市 从外部源和 数据仓库 获取 数据 。我们可以将 数据 集市 称为 数据仓库 的逻辑子集。 1.1、 数据 集市 与数 文章目录1. 数据仓库 数据 集市 区别 1.1 数据仓库 1.2 数据 集市 1.3 主要 区别 2.如何建立 数据 集市 1. 数据仓库 数据 集市 区别 1.1 数据仓库 数据仓库 是一个面向主题的、集成的、相对稳定的 、反映历史变化的 数据 集合用于支持管理决策。对于 数据仓库 概念 我们可以从两个层次予以理解,首先, 数据仓库 用于支持决策,面向分析型 数据 处理,它不同于企业现有的操作型 数据 库;其次, 数据仓库 是对多个异构的 数据 ... 数据 集市 数据 集市 数据仓库 的一种简单形式,通常由组织内的业务部门自己建立和控制。一个 数据 集市 面向单一主题域,如销售,财务,市场等。 数据 集市 数据 源可以是操作系统(独立 数据 集市 ),也可以是企业级 数据仓库 (从属 数据 集市 数据 集市 数据仓库 区别 : 不同于 数据 集市 数据仓库 处理整个组织范围内的多个主题域,通常是由组织内的核心单位,如IT部门承建,所以经常被称为 数据仓库 或企业 数据仓库 数据仓库 ... 数据 集市 是什么? 我基于自己的经验和理解,我个人觉得 数据 集市 是 为满足某一类 数据 需求特殊的要求提供的一整套临时解决方案产出的表的合集。 我觉得 数据 集市 是相对数仓中间层才有的一个 概念 。 数仓中间层是 数据仓库 最有价值,最能提高 数据 复用度和使用效率的一层。但因为要考虑复用度和开发维护成本, 数据 对某些具体需求的支持就不够。比如不会有某些使用较少的特殊维度的统计 数据 ,口径经常变化的指标也不会有。 而 数据 集市 ,就是为了在不影响 数据仓库 中间层的复用度和稳定性的情况下,为了某些重要的需求提供的专门的 数据 支持。 数据 集市 最优 企业从事 数据仓库 项目时,往往会遇到多个 数据仓库 软件供应商。各供应商除了推销相关的软件工具外,同时会向企业灌输许多 概念 ,其中, 数据仓库 数据 集市 是最常见的。由于术语定义不统一,另外各个供应商销售策略不一样,往往会给企业带来很大的混淆。最典型的问题是:到底是先上一个企业级的 数据仓库 呢?还是先上一个部门级的 数据 集市 ?本文试图说明这两个 概念 之间的 区别 联系 ,以期对具体的 数据仓库 项目有所裨益。1.为什么会...