(一)基本概念: 1.多维数据集:多维数据集是联机分析处理 (OLAP) 中的主要对象,是一项可对数据仓库中的数据进行快速访问的技术。多维数据集是一个数据集合,通常从数据仓库的子集构造,并组织和汇总成一个由一组维度和度量值定义的多维结构。
2.维度:是多维数据集的结构性特性。它们是事实数据表中用来描述数据的分类的有组织层次结构(级别)。这些分类和级别描述了一些相似的成员集合,用户将基于这些成员集合进行分析。
3.度量值:在多维数据集中,度量值是一组值,这些值基于多维数据集的事实数据表中的一列,而且通常为数字。此外,度量值是所分析的多维数据集的中心值。即,度量值是最终用户浏览多维数据集时重点查看的数字数据。您所选择的度量值取决于最终用户所请求的信息类型。一些常见的度量值有 sales、cost、expenditures 和 production count 等。
4.元数据:不同 OLAP 组件中的数据和应用程序的结构模型。元数据描述 OLTP 数据库中的表、数据仓库和数据集市中的多维数据集这类对象,还记录哪些应用程序引用不同的记录块。
5.级别:级别是维度层次结构的一个元素。级别描述了数据的层次结构,从数据的最高(汇总程度最大)级别直到最低(最详细)级别。
6.数据挖掘:数据挖掘使您得以定义包含分组和预测规则的模型,以便应用于关系数据库或多维 OLAP 数据集中的数据。之后,这些预测模型便可用于自动执行复杂的数据分析,以找出帮助识别新机会并选择有获胜把握的机会的趋势。
7.多维 OLAP (MOLAP):MOLAP 存储模式使得分区的聚合和其源数据的复本以多维结构存储在分析服务器计算机上。根据分区聚合的百分比和设计,MOLAP 存储模式为达到最快查询响应时间提供了潜在可能性。总而言之,MOLAP 更加适合于频繁使用的多维数据集中的分区和对快速查询响应的需要。
8.关系 OLAP (ROLAP):ROLAP 存储模式使得分区的聚合存储在关系数据库的表(在分区数据源中指定)中。但是,可为分区数据使用 ROLAP 存储模式,而不在关系数据库中创建聚合。
9.混合 OLAP (HOLAP):HOLAP 存储模式结合了 MOLAP 和 ROLAP 二者的特性。
10.粒度:数据汇总的层次或深度。
11.聚合|聚集:聚合是预先计算好的数据汇总,由于在问题提出之前已经准备了答案,聚合可以改进查询响应时间。
12.切块:由多个维的多个成员限定的分区数据,称为一个切块。
13.切片:由一个维的一个成员限定的分区数据,称为一个切片。
14.数据钻取:最终用户从常规多维数据集、虚拟多维数据集或链接多维数据集中选择单个单元,并从该单元的源数据中检索结果集以获得更详细的信息,这个操作过程就是数据钻取。
15.数据挖掘模型:数据挖掘使您得以定义包含分组和预测规则的模型,以便应用于关系数据库或多维 OLAP 数据集中的数据。之后,这些预测模型便可用于自动执行复杂的数据分析,以找出帮助识别新机会并选择有获胜把握的机会的趋势。
(二)实例构建过程与分析 1.现在以一个比较简单的实例来分析和探讨MS SQL SERVER 数据仓库的构建过程。实际上数据仓的构建是相当复杂的,他结合了数据仓库的前端技术和很强的业务要求。在这儿只是以一个简单的实例来说明他大致的构建流程。
2.构建数据仓库模型,他包括两部分,一是要考虑原来的数据源能够提供哪些有用的数据,也就是经过数据的筛选之后能够为数据仓库所用。二是要看公司业务层需要什么样的分析结果。这要和公司的高级决策层紧密配合,完全了解他的业务需求,因为数据仓库的使用者主要是公司的高级决策者。
在这一阶段要做好很多前期的工作,因为你的原始数据库中的数据也许和你的正要建立的数据仓库的需求也许有很大的出入,结构完全是两马事。你如何才能将你的原始数据提取出来,作为数据仓库的有用数据呢,你的原始数据库中存储的是零碎的事务数据,而你的数据仓库中要的是经过转化和提炼过的统计数据,比如说,你的原始数据库中存储这每天的所有存款和取款记录,而你的数据仓库并不关心你的每条记录的数据,而是希望在最短的时间内,以最快的速度统计出这个月的所有存款和取款的总数量,如果这种查询放在原来的数据库上来做的话,也就失去了数据仓库的意义,超大规模的数据使你无法查询下去,这时候你就要将对这个查询有意义的数据转化到数据仓库,这就是数据清洗,即ETL。实现数据清洗有很多的方法,也有很多的细节问题,比如,数据类型的匹配,数据格式的转换,异地数据表数据集中到一起时有主键重复,以及你如何定期,按时的将数据加工到数据仓库中来等等。在我的示例中没有严格的经过着一步,因为我没有规范的原始数据库,也没有规范的业务需求。我只是运用星型模型和雪花模型做了几个典型的数据仓库表。其表关系如下:
窗口中FACT为事实表,TIME,ADDRESS,DETAIL分别为时间维,地址维,详细地址维,DETAIL又是ADDRESS的子维。他们又构成雪花模型。其中都有部分数据。
3现在,数据仓库已经建立成功,下一步就是在OLAP服务器上建立元数据数据库。这个数据库和我们以前所说的数据库不同,他是存放元数据的数据库,比如我们下一步要创建的多维数据集、角色、数据源、共享维度和挖掘模型等。然后需要和早期在 ODBC 数据源管理器中建立的数据源连接,使其与数据仓库连接上。
我创建了数据库MMM和数据源TEST,如下:
这些工作做好了之后,就可以用数据仓库中的维表来建立共享维度,现在以时间维和地址维为例。其创建过程一样。
依此点下一步即可创建时间维(TIME),下面用ADDRESS和DETAIL建立雪花模型共享维度
点下一步即可创建DETAIL维。创建完成之后都要进行处理才能生效
维度创建好了之后就该创建多维数据集了。多维数据集是一种基于维表和事实表的数据集,以他来对数据仓库进行快速的访问。我们的多维数据集结构如下:
DETAIL(SREET)
DETAIL(MARK)
ADDRESS(PROVINCE,CITY)
TIME(YEAR,DAY)
多维数据集STUDY的创建过程如下:
点下一步即可创建成功(STUDY),处理如下:
紧接着我门就应该创建挖掘模型
完成后处理如下:
到现在一个简单的数据仓库架构已经建立成功,我们利用前端分析工具来对建立的数据仓库做查询,看能否实现我们的简单的业务要求,先以EXCEL作为查询工具:
我们除了用EXCEL,ENGLISH QUERY 等现成工具做查询外,还可以用MDX函数直接对OLAP做查询
到现在为止,一个简单的数据仓库已经创建成功,可以实现一些简单的业务查询。这个实例主要是分析数据仓库的创建过程以及进一步加深对数据仓库的认识和了解,进一步理解其中的基本概念。