SQLSERVER数据仓库的构建与分析
(一)基本概念:
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)