数据仓库理论-数据仓库体系结构

Posted 陌路风尘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据仓库理论-数据仓库体系结构相关的知识,希望对你有一定的参考价值。

数据仓库技术体系和开发

数据仓库组成:数据源,数据仓库的数据存储,数据仓库的应用工具,数据仓库的可视化界面。

产生历史

有两个主要因素:

  • 决策技术支持

    日益严重的市场竞争,单靠拥有的联机事务处理不足以获得市场竞争的优势,他们需要对自身业务的运作以及整个市场相关的行业情况进行分析,从而作出有利的决策。核心也就是利益驱使

  • 数据体量的爆炸增长,传统数据库不足以支持

    由于信息技术不断的提高,将企业带入了一个信息爆炸的时代。但是由于关系型数据库主要是用于事务性处理,目的是满足日常业务的需要,主要关心的是信息处理的可靠性和安全性。所以对于历史数据分析缺乏技术能力。关系型数据库虽然在联机事务处理(OLTP)取得了巨大成功,但是对于联机分析处理(OLAP)是短板。

历史分析

首先,将大量的业务数据应用分析和统计是非常简单和自然的想法。但是操作过程有很多问题:

  1. 联机事务处理系统(数据库)关心的是数据更新处理性能和系统的可靠性,不关心数据查询的方便和快捷

  2. 业务数据村雨分散的环境中

  3. 业务数据的模式针对的是事务的处理,可能数据格式和组织情况并不适用于分析和查询

数据仓库定义

简单总结起来一句话是:数据仓库就是面对主题的,集成的,不可更新的,随时间不断变化的数据集合,这些信息可用于查询分析,研究事务发展走势,用以支持经营管理的决策指定。

  • 面向主题 主题是与传统数据库的面向应用相对应的,是一个抽象 的概念,是在较高层次上将企业信息系统中的数据 综合、归类并进行分析利用的抽象。 每个主题对应一个分析领域。例如:顾客,销售,供应商,物流。

  • 集成性 进入数据仓库的数据需要进行加工和集成

  • 时变性 市局仓库存储是过去某一时间点到现在的数据,而不是记录某一个时刻的数据

  • 集合性 数据仓库采用多维数据库模式和关系数据库模式的数据集合方式

数据仓库的特征

  1. 包含大量的数据-可以来自企业内部,外部

  2. 数据仓库为最终使用者提供用于存储和分析的数据工具

  3. 数据仓库需要以特定的组织方式进行存储,以便更好的进行查询和分析

总结起来:数据仓库是将原始的数据进行各种处理并转换成综合信息,提供强大的分析工具对这些数据进行全方面的分析以帮助决策和管理者对公司作出符合业务发展规律的决策来。

数据仓库结构

用户角度数据仓库结构

示意图:

  • 数据源

数据源是数据仓库的基础也是根本。来源大体有两种

内部数据 企业内部的信息管理系统,erp系统等。 外部数据 行业数据,调查来的数据,商品数据库数据等等

  • 数据存储

无论是内部数据还是外部数据,由于数据类型,差异,缺失等因素,数据源的数据不能直接用于复杂的分析处理 ,需要确定分析的主题和分析目标,并据此从数据源中获取数据有效的组织起来,存储于数据仓库中,进行搞笑 的数据分析。也就是ETL过程。

  • 数据分析

存放在数据仓库中的数据需要借助应用工具来进行分析处理。主要有两个方面 - 联机分析处理(OLAP)用于分析目标明确比较复杂的查询操作 2017年一季度比特币矿机比前几年一季度增长了多少,增长率多少等等。 - 数据挖掘 (DATA Mining)在大量数据中寻找尚未发现的知识 购买矿机的用户有什么特征,区域,人群,等等

  • 可视化用于界面

    方便让使用者以更加直观地方式和系统进行交互。

数据仓库的技术体系结构

引用一篇文章的体系结构,著名数据仓库专家Ralph Kimball总结了一套规则,主要从三个方面描述数据仓库体系 数据体系结构,系统体系结构,技术体系结构。他描述的图如下:


数据体系结构 系统体系结构 技术体系结构
商务需求 进行商务分析和决策的信息需求 对网络环境,软硬件平台的性能要求 如何获得信息,查询信息
体系结构模型 多维数据模型表达信息。包含哪些事实表,唯独表,直接怎么联系 选择怎样的网络环境,软硬平台,数据具体存放在哪里系统能否满足数据计算,数据存储,数据传递的性能要求 如何将数据转换成所需要的信息,以正确的内容和恰当的格式存储和输出
实现方法 创建数据库,建立表(各类维度),索引。 安装平台 对原始数据进行抽取清洗转换和存储生成分析报告等数据处理结构提供给用户

一般情况,所谈的仓库的体系结构指的是技术体系结构。大体来说技术体系结构可以分为三个大部分:数据获取,应用服务,数据管理,

示意图如下:

  • 数据获取

    来自企业内部和外部的数据库,数据文件,数据信息都可以称为数据源。由于数据源中的数据的组织方式,数据格式等许多方面对于数据仓库对说 有很大的差别,所以数据源中的数据不能直接载入数据仓库中的数据库,所以必须要进行数据的预处理工作。预处理工作:主要包括提取数据到数据准备区,对准备区的数据进行清洗,转换,在加载到数据仓库。

  • 应用服务

    数据挖掘工具,在线分析处理OLAP,查询工具等,交互报告,静态报告

  • 数据管理

    数据仓库的创建,数据仓库的维护,对数据仓库中的数据重整,数据仓库的元数据管理。 核心内容:数据库的建模,确定数据的粒度级别,数据库存储模式

在整个数据仓库中,数据存储主要涉及5个方面。数据源,数据准备区,主题数据,查询服务数据,元数据

  • 数据源,是数据仓库的原始数据来源,是整个数据仓库的数据基础。需要对数据源的数据深入的理解和分析对比,正确的理解内部数据

  • 数据准备区,是从数据源数据转换到主题数据转换过程中的中间数据存储。由于数据源中的数据无法直接存储到主题数据中,需要进行清洗,转换,组合,消除冗余等一些列的处理才可以存储到主题数据中,同时为数据仓库准备元数据

  • 主题数据,是数据仓库的核心数据,一般以多维数据模型的形式存储在数据仓库中,供数据仓库的用户进行直接的分析访问。多维数据模型是主题数据的建模规范,其理解性,可操作性,查询性能,以及对应变化的能力。多维数据模型的实体主要有两个:事实表和维度表。事实表是多维数据的主表,包含各种业务的指标数据。维度表的属性在对数据仓库的查询操作中被用以构造约束条件或作为分组的依据,维度表的主键必须与一个事实表的一个外部码对应。

  • 查询服务数据,是主题数据到最终查询结果之间的过度数据。虽然主题数据的多维模型数据简化了复杂数据的查询,但是从主题数据中获得各种查询信息仍然存在一定困难,所以存储查询结果仍有一定的必要性。查询服务数据与分析工具紧密结合,将查询服务数据临时存储在分析 工具中以便进一步地进行分析查询;将查询服务数据转存起来留待以后 再进行分析,或作为其他系统的数据源;将查服务数据作为主题数据存放到数据仓库中。

  • 元数据,是数据仓库目录,所有通过准备区进入主题数据存储都必须要有元数据相管理,元数据记录数据来源,内容,时间等等。元数据是数据仓库的门面,通过元数据,可以查看一个数据仓库的所有数据信息。为了以后数据整理,数据删除,数据使用率,数据分析做纵览。

数据集市

数据集市是为了满足某个业务部门决策而创建的。数据集市是按照业务分析领域进行数据组织,一个数据集市一般含有某一特定业务领域的数据。例如:销售数据集市,财务数据集市,人力数据集市。

数据集市一般是以数据仓库的主题数据为基础建立起来的独立的数据集合。

元数据

元数据是数据的数据,是数据仓库的目录,数据仓库的门面。元数据为数据仓库提供了一个信息目录,这个信息目录主要描绘了,都有什么数据,怎么来的,用来干什么,怎么访问。所以数据仓库必须通过元数据进行数据仓库的存储和管理,用户也需要通过元数据进行数据仓库的访问

元数据我理解主要有两个作用:通过元数据对数据仓库进行管理,通过元数据进行数据仓库的使用

管理元数据主要有:数据源信息,数据转换信息,数据仓库对象,数据结构的定义,数据清理和数据更新的规则,元数据到目标数据的映射,用户访问权限,数据备份历史,导入数据仓库的记录。

用户元数据主要有:主题数据的描述,以及对数据查询,报表的描述。

数据仓库粒度和分割

粒度是指数据仓库是指数据仓库中保存数据的细化和程度级别。越详细的数据粒度越小,越是概括的数据粒度越大,一般数据仓库涉及采用双重或者多重粒度进行数据存储。

数据存储的粒度程度同时也会影响着数据查询和存储的效率。

举个例子:商场数据仓库。

商场一季度的电视销售额。高粒度和第粒度都可以查询到结果,但是低粒度不仅可以查询电视的销售,还可以查询到每一个品牌,每天的销售额,但是高密度则不可以。但是查询效率来说,低密度会远不如高密度的。

划分粒度的原则
  1. 数据仓库存储空间。容易理解。

  2. 数据仓库的查询能力。如果为了追求更好,更加详细的查询结果,则需要使用粒度更低的数据存储。

  3. 查询效率。也就是数据仓库的查询性能,低粒度的查询所耗费的服务器资源肯定越多,效率也低一些。

根据实际经验来看。一般数据仓库都会采用双重的粒度模式,即可以提供低粒度模式带来的详细数据的分析,又可以通过高粒度数据来提高概括数据查询。低粒度细节数据和高粒度的总结数据

在举个例子:电信数据仓库。 用户可能查询每月的通话记录,也可能查询每次通话的详细记录。所以需要按照双重粒度进行数据存储,虽然详细数据也可以查询每月的通话记录,但是会给数据仓库带来资源和性能的压力,提前做好高粒度数据存储,会极大的减轻数据查询和分析的压力。而且高粒度数据存储并不会带来存储空间的压力。毕竟数据比较少。反正就是根据具体的情况而定

数据分割

这个概念比较简单,当某个业务数据量比较大的时候,可以进行数据分割,将打的物理或者逻辑存储单元划分较小的数据单元。

好处:

  1. 提高查询效率。例如:按时间粒度进行划分的话,那么当我们查询时间段时,可以较少磁盘扫描。

  2. 可以建立更高效的索引。

  3. 更加容易对数据进行监控和管理,保证数据更加稳定,避免,个别数据损坏,导致全部损坏

一般情况下,时间粒度是必须要有的。也可以有地理等概念。

数据仓库开发流程

数据仓库大概有三个阶段-数据仓库的设计,数据仓库的开发,数据仓库的实施。

  • 数据仓库的设计阶段。确定好数据仓库的使用目标,选择数据仓库的开发策略,选择定数据仓库的应用结构和平台技术。

  • 数据仓库的开发阶段。最核心的阶段。确定数据源,设计数据仓库的实体结构,数据仓库的数据表结构,明确各个部位的接口和通信的相关内容,规范数据仓库的抽取转换和加载的流程。

开发阶段是最为重要的。需要深入分析业务需求,明确各个集市的主题,明确好事实表和维度表,完善的ETL过程。并最终给用户使用

  • 数据仓库的使用阶段。主要以联机分析和数据挖掘方式使用数据仓库。提供良好的平台,供决策或业务人员使用。需要培训sql语句,提供标准的业务分析能力。例如:增长率,同比,环比等等。

总线型结构的数据仓库

不太好理解。

引用书中内容。就是采用统一的维和统一的事实表。所谓的统一的维就是指某个维度是可以在各个数据集市共享的。最最常见的就是就是时间维。例如年月日,季度,周,日等等。统一的事实就是指一个事实数据在各个数据集市必须要要一致。计量单位,含义,计算依据等等。


以上是关于数据仓库理论-数据仓库体系结构的主要内容,如果未能解决你的问题,请参考以下文章

一数据仓库基础理论

大数据理论体系总结--数据仓库管理与全链路数据体系

数据仓库之扫盲篇

数据仓库之扫盲篇

数仓理论- 02 数据仓库架构

数据仓库——范式理论