数据仓库

数据仓库之父比尔·恩门(Bill Inmon)在1991年出版的《建立数据仓库》一书中所提出的定义被广泛接受,数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。 数据仓库是一个过程而不是一个项目;数据仓库是一个环境,而不是一件产品。数据仓库提供用户用于决策支持的当前和历史数据,这些数据在传统的操作型数据库中很难或不能得到。数据仓库技术是为了有效的把操作形数据集成到统一的环境中以提供决策型数据访问,的各种技术和模块的总称。所做的一切都是为了让用户更快更方便查询所需要的信息,提供决策支持。


 

数据仓库 - 特点

1、面向主题
操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织的。

 

2、集成的
数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。

3、相对稳定的
数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。

4、反映历史变化
数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。

数据仓库 - 组成

 


1、数据仓库数据库

数据仓库的数据库是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。相对于操纵型数据库来说其突出的特点是对海量数据的支持和快速的检索技术。

2、数据抽取工具
数据抽取工具把数据从各种各样的存储方式中拿出来,进行必要的转化、整理,再存放到数据仓库内。对各种不同数据存储方式的访问能力是数据抽取工具的关键,应能生成COBOL程序MVS作业控制语言(JCL)、UNIX脚本、和SQL语句等,以访问不同的数据。数据转换都包括,删除对决策应用没有意义的数据段;转换到统一的数据名称和定义;计算统计和衍生数据;给缺值数据赋给缺省值;把不同的数据定义方式统一。

3、元数据
元数据是描述数据仓库内数据的结构和建立方法的数据。可将其按用途的不同分为两类,技术元数据和商业元数据。

技术元数据是数据仓库的设计和管理人员用于开发和日常管理数据仓库是用的数据。包括:数据源信息;数据转换的描述;数据仓库内对象和数据结构的定义;数据清理和数据更新时用的规则;源数据到目的数据的映射;用户访问权限,数据备份历史记录,数据导入历史记录,信息发布历史记录等。

商业元数据从商业业务的角度描述了数据仓库中的数据。包括:业务主题的描述,包含的数据、查询、报表;

元数据为访问数据仓库提供了一个信息目录,这个目录全面描述了数据仓库中都有什么数据、这些数据怎么得到的、和怎么访问这些数据。是数据仓库运行和维护的中心,数据仓库服务器利用他来存贮和更新数据,用户通过他来了解和访问数据。

4、访问工具 
为用户访问数据仓库提供手段。有数据查询和报表工具;应用开发工具;经理信息系统(EIS)工具;联机分析处理(OLAP)工具;数据挖掘工具

5、数据集市(Data Marts)
为了特定的应用目的或应用范围,而从数据仓库中独立出来的一部分数据,也可称为部门数据或主题数据(subjectarea)。在数据仓库的实施过程中往往可以从一个部门的数据集市着手,以后再用几个数据集市组成一个完整的数据仓库。需要注意的就是再实施不同的数据集市时,同一含义的字段定义一定要相容,这样再以后实施数据仓库时才不会造成大麻烦。

数据仓库管理:安全和特权管理;跟踪数据的更新;数据质量检查;管理和更新元数据;审计和报告数据仓库的使用和状态;删除数据;复制、分割和分发数据;备份和恢复;存储管理。

信息发布系统:把数据仓库中的数据或其他相关的数据发送给不同的地点或用户。基于Web的信息发布系统是对付多用户访问的最有效方法。

数据仓库 - 步骤

 

1、数据仓库的设计步骤
1)选择合适的主题(所要解决问题的领域)。


2)明确定义fact表。

3)确定和确认维。

4)计算并存储fact表中的衍生数据段。

5)确定查询优先级和查询模式。

2、数据仓库的建立步骤

1)收集和分析业务需求。

2)建立数据模型和数据仓库的物理设计

3)定义数据源。

4)选择数据仓库技术和平台。

5)从操作型数据库中抽取、净化、和转换数据到数据仓库。

6)选择访问和报表工具。

7)选择数据库连接软件。

8)选择数据分析和数据展示软件。

9)更新数据仓库 。

数据仓库 - 测试方法

 

在数据仓库环境下进行测试时如何处理需求与质量的关系。虽然数据仓库的测试是一个惊奇而神秘的过程,但实际上它与其它测试项目并无多大区别。基本的系统分析和测试过程在这里仍然有效。我们来看一下其中的几个步骤,并研究如何在数据仓库环境中应用。

分析源文件
与其它项目一样,测试数据仓库部署时,通常都会有一份相关的说明文件。虽然这些文件对于创建基本的测试策略非常有用,但经常会缺少一些关于测试开发与执行的详细资料。有时会有一些其它文件解释技术上的细节问题,即从源到目标的转化(source-to-target mappings)说明文件。这些文件详细说明了数据的来源、如何对数据进行操作,以及存储到哪里。如果能拿到这些文件,关于系统设计的文件在设计测试策略时也会变得更加有用。

开发策略和测试计划
分析了各种各样的源文件后,就要开始创建测试策略。我发现从生命周期和质量的角度来看,增量测试是测试数据仓库的最好办法。这从本质上意味着开发团队会从开发过程的早期开始,将各种小组件交付给测试团队。这个办法的主要优点是避免交付让人吃惊的“大块”组件,可以从早期开始检验缺陷,并使调试变得简单。此外,这个方法还有助于在开发与测试周期中建立详细的过程。具体到数据仓库测试,即是对数据获取分段表,然后是增量表、基本的历史表格、BI视图等的测试。

另一个制定数据仓库测试策略的主要问题是基于分析(analysis-based)的测试方式和基于查询(analysis-based)的测试方式的选择。纯基于分析的方法是让测试分析师通过分析目标数据和相关标准计算出预期结果。基于查询的方法有相同的基本分析步骤,但更进一步,用SQL查询语言编写预期结果。这为将来建立回归测试过程节省了很大精力。如果测试是一次性的,那么用基于分析的方式就足够了,因为通常这种方式较快一些。反之,如果企业对回归测试有持续的需求,那么基于查询的方式会更为合适。

测试的开发与执行
不管在测试执行过程之前还是之后进行测试的开发,要根据上行需求的稳定性和分析过程决定。如果情况变动比较频繁,那么早期进行的测试开发可能大部分都会被废弃。这种场合,实时进行的整合的测试开发和执行过程通常会更有效果。不管怎样,在设计测试开发和执行过程的框架时,参考一下测试分类总是有用的。比如,一些数据仓库的测试分类可能有:

记录计数(预期与实际对比)
副本记录 
参考数据有效性 
参照完整性 
错误与异常逻辑
增量过程与历史过程 
控制栏值与默认值

除这些分类外,还可以参考缺陷分类学,比如Larry Greenfield的分类。
测试执行时,准确的状态报告过程是经常被忽略的一个方面。在确定团队里的其他人明白你的方法的前提下,测试分类和测试进度可以保证他们对测试状态也有一个清楚的概念。有了详细的规划并坚持到底,以及良好的沟通,就能建立一个数据仓库测试过程,帮助项目团队取得满意的成果。

数据仓库 - 和数据集市

 

有关决策支持型数据库的数据集市是面向企业中的某个部门或是项目小组的。一些专家顾问将数据集市的建造描述为建立数据仓库全过程中的一步。首先,一个储存企业全部信息的数据仓库被创建,其中,数据均具备有组织的、一致的、不变的格式。数据集市随后被创立,其目的是为不同部门提供他们所需要的那部分信息。数据仓库聚集了所有详细的信息,而数据集市中的数据则是针对用户们的特定需求总结而出的。


 

而另外一些专家则认为数据集市的建立并不需要首先建立一个数据仓库。在这个模型中,数据直接由事务型数据库转入数据集市中。一个公司可能建立有多个数据集市,而彼此之间毫无联系。

这种不在建立数据仓库的基础上创建数据集市的方式会更便宜、更快速,因为它的规模更加易于管理。

第二种观点的缺陷在于无法实现最初创建数据仓库的最主要的目的——将企业所有的数据统一为一致的格式。现有的事务处理系统的数据往往是不一致、冗余的。如果首先建立起一个全公司范围的数据仓库,组织就能够获得一个统一关于企业的活动和客户的知识库。如果先建立起一个个独立的数据集市,那么数据仓库的诸多优势都能够得以实现,但是企业远远无法做到对数据的一致的储存。


posted @ 2014-06-17 09:18  土豆条  阅读(342)  评论(0编辑  收藏  举报