SQLSERVER数据仓库的构建与分析

<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>


 



 


SQLSERVER数据仓库构建分析




 


(一)基本概念:



   1.多维数据集:多维数据集是联机分析处理(OLAP)中的主要对象,是一项可对数据仓库中的数据进行快速访问的技术。多维数据集是一个数据集合,通常从数据仓库的子集构造,并组织和汇总成一个由一组维度和度量值定义的多维结构。



   2.维度:是多维数据集的结构性特性。它们是事实数据表中用来描述数据的分类的有组织层次结构(级别)。这些分类和级别描述了一些相似的成员集合,用户将基于这些成员集合进行分析



  3.度量值:在多维数据集中,度量值是一组值,这些值基于多维数据集的事实数据表中的一列,而且通常为数字。此外,度量值是所分析的多维数据集的中心值。即,度量值是最终用户浏览多维数据集时重点查看的数字数据。您所选择的度量值取决于最终用户所请求的信息类型。一些常见的度量值有sales、cost、expenditures和productioncount等。



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.现在以一个比较简单的实例来分析和探讨MSSQLSERVER数据仓库构建过程。实际上数据仓的构建是相当复杂的,他结合了数据仓库的前端技术和很强的业务要求。在这儿只是以一个简单的实例来说明他大致的构建流程。



2.构建数据仓库模型,他包括两部分,一是要考虑原来的数据源能够提供哪些有用的数据,也就是经过数据的筛选之后能够为数据仓库所用。二是要看公司业务层需要什么样的分析结果。这要和公司的高级决策层紧密配合,完全了解他的业务需求,因为数据仓库的使用者主要是公司的高级决策者。



在这一阶段要做好很多前期的工作,因为你的原始数据库中的数据也许和你的正要建立的数据仓库的需求也许有很大的出入,结构完全是两马事。你如何才能将你的原始数据提取出来,作为数据仓库的有用数据呢,你的原始数据库中存储的是零碎的事务数据,而你的数据仓库中要的是经过转化和提炼过的统计数据,比如说,你的原始数据库中存储这每天的所有存款和取款记录,而你的数据仓库并不关心你的每条记录的数据,而是希望在最短的时间内,以最快的速度统计出这个月的所有存款和取款的总数量,如果这种查询放在原来的数据库上来做的话,也就失去了数据仓库的意义,超大规模的数据使你无法查询下去,这时候你就要将对这个查询有意义的数据转化到数据仓库,这就是数据清洗,即ETL。实现数据清洗有很多的方法,也有很多的细节问题,比如,数据类型的匹配,数据格式的转换,异地数据表数据集中到一起时有主键重复,以及你如何定期,按时的将数据加工到数据仓库中来等等。在我的示例中没有严格的经过着一步,因为我没有规范的原始数据库,也没有规范的业务需求。我只是运用星型模型和雪花模型做了几个典型的数据仓库表。其表关系如下:1
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
阅读更多
个人分类: 数据库
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭