`
thecloud
  • 浏览: 881080 次
文章分类
社区版块
存档分类
最新评论

使用分析服务多维模式建立简单的分析模型

 
阅读更多

多维数据集是一种特殊的数据库,按照默认的模式(MOLAP),它把数据仓库里事实表和维度表的数据经过聚合存储在另外一套独立的文件系统中。经过聚合的数据在统计性能上会得到提升,并且可以让用户通过很简单的前端工具,比如Excel来生成很简单的报表。

这里将介绍如何制作一个简单的多维数据集。

此篇使用的版本是SQL Server 2012,对应的Visual Studio Shell是2010,名称也改为SQL Data Tools。

首先,打开SQL Data Tools,点击File->New->Project…

接下来会打开新建项目窗口。这个界面可能对于很多c#开发人员再数据不过,这里可以告诉你,SQL Server BI下很多项目都是在这下面建立的,比如,数据集成项目,它主要负责BI项目中的ETL过程(数据的清洗转换和加载),还有报表服务项目,很多BI项目的报表都是通过这个项目模版实现的。自从微软.net战略之后,很多开发基本都是在Visual Studio进行的。这里就是一个具体的体现。

在左面项目模版中选择Analysis Services,然后选择Analysis Services Multidimensional and Data Mining Project。

在这里我们可以看到在最新的版本中还提供了另外一种分析服务项目模版,就是Analysis Services Tabular Project,关于这个新特性,可以参考我的另外一篇随笔:

使用SQL Server Analysis Services Tabular Model建立分析模型

Tabular Model的最终产出结果跟多维数据集差不多,只不过它更面向于业务人员和开发人员之间的用户,而本文提及的多维数据集是定位在开发人员之上的。

另外,留意一下项目类型的Data Mining,意思就是在这个项目下,也可以建立数据挖掘项目,关于如何玩转这个功能,请参考我的另外一篇随笔:

使用SQL Server Analysis Services数据挖掘的关联规则实现商品推荐功能

接下来,我们看一下项目的结构:

可以看到项目包含几个文件夹。

第一个是数据源,这里定义SSAS数据库要连接的是哪个数据源,通常来说就是数据仓库所在的位置。

第二个是数据源视图,里面定义了多维数据集需要的各种表,事实表和维度表。

Cubes里面定义数据立方体,也就是我们所说的多维数据集。

Dimensions文件夹里定义了维度,这里可以理解为维度的一个抽象,比如时间维度,在具体的一个立方体里可能对应的就是比如"开始时间"或者"结束时间"这样的泛化维度。

挖掘结构,里面是跟数据挖掘相关的。

角色,里面定义多维数据库的安全信息。

了解完以上项目里的文件夹后,下面开始一步一步建立一个简单的多维数据集。

首先,右键Data Sources文件夹,点击New Data Source…。

接下来出现数据源向导界面。

点击界面中的New新建一个连接。留意左面的Data Connections界面,里面会列出你以前用过的数据连接。

服务器名称选择本地,敲一个点就可以,然后数据库选择AdventureWorksDW2012。

AdventureWorks是微软提供的数据库示例,里面包含了业务数据库(上图中不带DW字样的)以及数据仓库示例(刚才选择的)。此外还包含很多跟SQLServer的其它示例,关于如何获取并且部署这些项目,可以参考我的这篇随笔:

微软SQLServer官方示例项目部署-数据引擎和分析服务部分

设置好连接属性后,点击下一步。

这里要面设置模拟信息。这里手动指定用户,使用你登陆机器的管理员账号就可以。当然实际生产环境中不建议这么做。

指定好模拟信息后,点击下一步。

给数据源起一个名字,点击完成。接下来就可以看到在数据源文件夹下生成了一个ds后缀的数据源文件。

下面,右键数据源视图文件夹,点击New Data Source View…。

在数据源视图中距中,在左面可以看到刚才建立的数据源连接,选中它,点击下一步。

这一步会列出数据源连接下的表和视图。

这里我们建立一个简单的多维数据集,从左面可用对象列表里依次选择FactInternetSales,DimCustomer,DimDate,DimGeography,DimProduct,DimProductCategory和DimProductSbcategory到右面的列表中,然后点击下一步。

给数据源视图起一个名字,然后点击完成。

然后在数据源视图中,可以看到刚刚选中的事实表和维度表。

可以看到在微软提供的示例中,已经定义好了表间关系。在实际的项目中,我也这些关系要定义好,尽管很多项目都不太情愿这么做,并且确实也会带来一些麻烦,但这绝对是一个好的习惯和规范。

此外,在这个界面中也可以定义命名查询,或者在表里添加一些计算列。

确认完毕数据源视图之后,开始创建多维数据集。右键Cubes文件夹,选择New Cube…。

选择第一项使用已经存在的表。

多维数据集在SQL Server 2005之后,支持正向和逆向的方式创建多维数据集。通常来说是现有数据仓库然后再有多维数据集,但是通过这个特性,可以先建立多维数据集,然后再根据多维数据集的结构反向生成数据仓库里的表。通常来说后面的方法用的比较少。

点击下一步。

选择事实表FactInternetSales,点击下一步。系统往往不能正确的事别你得事实表和维度表,所以每次到这里都建议检查一下勾选的事实表是否正确。

点击下一步。

指定多维数据集里的度量值,这些都是从事实表中来,所以像Promotion Key等这些键值字段拿来统计是没有意义的,取消掉。还有需要留意系统会在最下面加入一个Count字段,在项目中可以根据Shijiazhuang情况来考虑是否要加入这个字段。

点击下一步,开始确认多维数据集的维度。

这里暂时不需要更改任何内容,因为会在接下来的步骤中进行维度的详细设计。这里直接点击下一步。

最后,给多维数据集取一个名字,并且在预览区域中检查一下多维数据集的结构,然后点击完成结束向导。

然后就系统会自动打开多维数据集的设置界面。这里先给维度重新命名,去掉前面的Dim前缀。

接下来设置维度属性,首先双击Date.Dim,进入到维度设置界面。

在界面左侧可以看到维度已经拥有了哪些属性,右面的数据源视图中可以看到维度表中都支持哪些字段。

这里可以拖拽我们需要的字段到维度属性中,方法就是依次拖拽CalendarYear,MonthNumberOfYear和DayNumberOfMonth到维度属性列表中。再将其重命名为Date, Month和Year。

设置成友好名称,首先是为了友好并且维护方便,其次比较关键的是可以让后期的MDX写起来更舒服些。

接下来,修改Month的OrderBy属性为Key。

指定好排序依据什么排序。如果不设置,就可能出现如下的错误情况:

指定根据Key排序后,月份的排列顺序就正确了。

此外还需要设置Day的OrderBy属性同样为Key。

接下来建立维度层次。建立维度层次后,在前段分析工具就可以很方便的使用诸如年-月-日这样的层次下钻关系。

创建的方法是,首先拖拽Year到中间的Hierarchies中,会自动生成一个层次结构,然后再将Month和Day依次拖拽到新建的层次中。

时间维度创建完毕,接下来据创建产品维度。从数据源视图中拖拽到Product, SubCategory和Category到维度属性列表,然后再创建一个名为ProductHierarchy的层次结构。方法同时间维度的创建。

简单的多维数据集设置完毕后,接下来需要做的就是部署到分析服务实例上。

不过在这之前,需要确认一下部署的设置,在解决方案管理器中右键选择Properties。

在配置界面中,左边选择Deployment,然后在右边的Server和Database里设置SSAS数据库要部署到哪一个服务器以及部署之后数据库的名称叫什么。

这里我们选择部署到本地并且使用默认数据库名称。

设置完毕后点击确定关闭。

接下来同样右键项目,选择Process。

处理之前系统会检测本地的版本跟服务器的版本,如果本地的版本比服务器上的新,那么就会出现过期提示,选择是,替换服务器的版本。

部署完毕后,会出现处理界面。

对于上面的这个界面,你可能会问,为什么没有Change Settings…按钮。这个按钮,只要你把窗体的高度再让它高一些就出来了。点击这个按钮后,会出现设置更改金额面。

这里最常用的就是Dimension key errors。在实际的数据仓库操作中,很难避免会出现维度对应不上或者重复键或者缺失等情况,为了忽略这些错误,就可以进到这个界面进行相应的维度处理错误设置。这里先忽略设置直接点Cancel回到处理界面然后点Run开始处理。

在处理进度界面中,可以看到系统正在处理哪部分内容,假如处理的过程中发生了错误,也可以在这个界面中详细看到是哪里出的错。处理完毕后,点击Close关闭。

在Solution Explorer中双击刚才建立的多维数据集,然后在多维数据集设置界面中选择Browser选项卡。

通过这个界面可以简单的浏览一下刚才在多维数据集里聚合的数据,比如,拖拽一个度量到中间的空白区域中,然后再拖拽几个维度,就可以对任意一个度量进行维度分解。

此外,在最新的2012版本的浏览界面中,加入了一个小按钮,就是在Excel中查看。

点击之后,会自动打开Excel,在Excel文档中会自动建立好了到这个多维数据集的连接,省去了先前在Excel中还要点击好多步骤的麻烦。

当然,在Excel连接多维数据集并且对其进行分析只是多维数据集应用其中的一个方面,关于它还有一个概念就是MDX,它就如同SQL对数据库一样,MDX主要就是查询多维数据库用的,它的结构也同样是SELECT FROM WHERE这样的结构。关于这方面的应用开发,可以参考我早先的两篇随笔:

在Silverlight下用Visifire显示多维数据集中的数据

在Silverlight下用Visifire显示多维数据集中的数据(二)

此外,在处理多维数据集的过程中,可以选择增量的方式进行处理,详细的方法可以参考我的这篇随笔:

BI笔记之---增量方式处理多维数据集

以及,关于在多维数据集的处理上我的几点个人建议:

BI笔记之---合理处理SSAS数据库的几点建议

至此,如何建立一个简单的多维数据集就介绍到这里。在实际项目中建立一个多维数据集还需要做很多的细化工作,这里只是简单的对其中关键几个过程进行介绍和演示。如果想了解关于多维数据集的更多功能,可以参考此篇中提到的微软提供的Adventure Works示例,虽然里面都是示例数据,但很多表中都很值得我们参考,个人建议在实际项目中开发多维数据集的时候,对于很多细节问题不知道该如何做的时候,都回过来参考下微软的这个示例。

分享到:
评论

相关推荐

    星型雪花模型多维数据建模

    星型模式、雪花模型多维数据建模分析,包含不同的数据建模方法

    SQL Server中数据仓库的构建与分析

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

    软件分析建模与PowerDesigner实现.part1.rar

    1.3.3 物理数据模型中的多维图 1.3.4 XML模型 1.4 应用程序建模概述 1.4.1 用例图 1.4.2 类图、对象图、组合结构图和包图 1.4.3 时序图、通信图、状态图、活动图和交互纵览图 1.4.4 组件图和部署图 1.5 辅助建模工具...

    软件分析建模与PowerDesigner实现.rar.part2

    本书系统地介绍了业务建模、数据建模和应用程序建模的方法和过程,通过PowerDesigner的实现,使读者全面掌握软件分析建模的思想,是软件工程师学习软件分析、建模的入门教材。PowerDesigner 12.5集中体现了软件分析...

    数据式审计常用的数据分析方法.docx

    审计数据的分析可分为三个层次:即以审计专家经验和常 规审计分析技术为基础的审计,以审计分析模型和多维数据分析技术为基础的审计,以数据挖掘技术为基础的审计。第一个层次表现为用户对数据库中的记录进行访问和...

    软件分析建模与PowerDesigner实现.rar.part3

    本书系统地介绍了业务建模、数据建模和应用程序建模的方法和过程,通过PowerDesigner的实现,使读者全面掌握软件分析建模的思想,是软件工程师学习软件分析、建模的入门教材。PowerDesigner 12.5集中体现了软件分析...

    大数据分析应用知识培训总结大数据挖掘.pptx

    通过标准化的流程和工具对数据进行处理可以保证一个预先定义好的高质量的分析结果 数据质量和数据管理 数据仓库是为了便于多维分析和多角度展示数据按特定模式进行存储所建立起来的关系型数据库。在商业智能系统的...

    基于Vue大规模出租车GPS数据的交通碳排放可视分析系统源码.zip

    多视图协同交互为用户提供了多维(即时间和空间)分析视角。过滤等交互方式使用户能够聚焦于对某一区域或某一时段的碳排放模式进行分析。 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的...

    “互联网+”时代煤矿大数据应用分析

    建立各级煤矿企业数据共享的安全生产云服务平台、跨行业多维立体供需及价格预测平台等方面的大数据应用模式分析,提出大数据挖掘应用应由专业技术团队统一规划模型并制定标准,在接口协议、安全防护做好先期统筹等建议...

    计算流体动力学分析 王福军主编

    一、前处理——利用GAMBIT建立计算模型 第1步 确定求解器 第2步 创建坐标网格图 第3步 由节点创建直线 第4步 创建圆弧边 第5步 创建小管嘴 第6步 由线组成面 第7步 确定边界线的内部节点分布并创建结构化网格 第8步 ...

    商业智能的概念.doc

    MOLAP Arbor Software严格遵照Codd的定义,自行建立了多维数据库,来存放联机分析系统数据,开 创了多维数据存储的先河,后来的很多家公司纷纷采用多维数据存储。被人们称为Muil tdimension OLAP,简称MOLAP,代表...

    SQL Server 2008商业智能完美解决方案 3/3

    第二部分面向Analysis Services开发人员,详细介绍了如何使用BIDS以及BIDS的所有功能,提供了使用SSAS构建OLAP多维数据集和数据挖掘模型的指南;第三部分面向Integration Services开发人员,详细介绍如何使用SSIS...

    Data-Mining培训资料.docx

    分类分析就是通过分析示例数据库中的数据,为每个类别做出准确的描述或建立分析模型或挖掘出分类规则, 然后用这个分类规则对其他数据库中的数据进行分类。 分类与聚类是容易混淆的两个概念,但二者有显著的区别:...

    SQL Server 2008商业智能完美解决方案 2/3

    第二部分面向Analysis Services开发人员,详细介绍了如何使用BIDS以及BIDS的所有功能,提供了使用SSAS构建OLAP多维数据集和数据挖掘模型的指南;第三部分面向Integration Services开发人员,详细介绍如何使用SSIS...

    SQL Server 2008商业智能完美解决方案 1/3

    第二部分面向Analysis Services开发人员,详细介绍了如何使用BIDS以及BIDS的所有功能,提供了使用SSAS构建OLAP多维数据集和数据挖掘模型的指南;第三部分面向Integration Services开发人员,详细介绍如何使用SSIS...

    大数据仓库与大数据挖掘课程教学设计.doc

    分析主题域,确定要装载到数据 仓库的主题、确认粒度层次划分、确认数据分割策略、关系模式的定义和记录系统定义 、确认数据抽取模型等。逻辑模型最终设计成果包括每个主题的逻辑定义,并将相关内 容记录在数据仓库...

    SQL Server 2008 商业智能完美解决方案(3)

    第二部分面向Analysis Services开发人员,详细介绍了如何使用BIDS以及BIDS的所有功能,提供了使用SSAS构建OLAP多维数据集和数据挖掘模型的指南;第三部分面向Integration Services开发人员,详细介绍如何使用SSIS...

    决策树DTC数据分析及鸢尾数据集分析.doc

    决策树算法根据数据的属性采用树状结构建立决策模型, 决策树模型常用来解决分类和回归问题。常见的算法包括:分类及回归树(Classifica tion And Regression Tree, CART), ID3 (Iterative Dichotomiser 3), C...

Global site tag (gtag.js) - Google Analytics