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

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

 
阅读更多

多维数据集是一种特殊的数据库,按照默认的模式(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示例,虽然里面都是示例数据,但很多表中都很值得我们参考,个人建议在实际项目中开发多维数据集的时候,对于很多细节问题不知道该如何做的时候,都回过来参考下微软的这个示例。

分享到:
评论

相关推荐

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

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

    复诊率分析模型的建立数据源 多维数据集 数据立方体

    总的来说,复诊率分析模型的建立涉及数据仓库技术,包括数据源视图的创建、多维数据集的构建以及数据立方体的生成。这一过程要求对医疗数据有深入的理解,同时也需要掌握数据建模和分析工具的使用。通过这样的模型,...

    多维数据库和空间多维数据的数学模型与人工智能 (1).pdf

    多维数据库和空间多维数据是信息技术领域中处理复杂数据的重要工具,它们通过构建数学模型来组织和分析数据。在传统的多维数据库模型中,数据被分为度量信息和维度信息。度量信息反映了需要分析的对象,即事实表;...

    多维数据库和空间多维数据的数学模型与人工智能.pdf

    通过建立数学模型,可以生成新的数学模型,简化多维数据逻辑关系,提高其实用性、安全性和可信度,从而适用于不同类型多维数据模型的应用环境。 空间数据仓库技术是数字地球和数字城市建设中的关键技术之一。它在...

    基于SQL的OLAP多维数据分析.pdf

    本文主要探讨了基于SQL进行OLAP多维数据分析的方法,内容涉及数据仓库技术、OLAP技术以及多维数据模型等多个方面。 首先,数据仓库(DW)是不同于传统数据库的数据组织方式,其主要作用是为用户快速、一致、交互地...

    电子政务-一种超电大尺寸的强电磁脉冲环境时频空多维分析模型.zip

    电子政务是一种利用信息技术手段,将政府的管理和服务职能进行数字化、网络化,以提高行政效率,增强政府服务能力和公众满意度的新型管理模式。在信息化高度发展的今天,电子政务已经成为提升政府治理能力的重要途径...

    商业智能BI多维数据源及多维分析.doc

    8.1 多维分析(OLAP)是商业智能的核心,它允许用户从多个角度和不同深度探索数据,以揭示隐藏的模式、趋势和异常。这种技术通过立方体和多维报表来实现,使得用户能够快速生成定制化的业务分析报告。 8.2 立方体是...

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

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

    多维数据库和空间多维数据的数学模型与人工智能 (2).pdf

    多维数据库和空间多维数据的数学模型以及它们与人工智能的结合是当前数据分析和存储技术发展中的一个重要领域。多维数据模型是数据仓库度量和维度结构的基础,它为存储和查询大型数据集提供了基础。传统多维数据模型...

    PCR.rar_pcR预测_pcr模型建立_主成分分析_定量分析_定量模型

    总之,这个压缩包提供了一套关于PCR实验的定量分析方法,特别是如何利用主成分分析来建立预测模型。对于生物信息学、分子生物学以及相关领域的研究人员来说,这是一个宝贵的资源,可以帮助他们更好地理解和解析复杂...

    多维分析 ROLAP的概念

    OLAP通过组织数据成多维模型,使用户能从不同角度深入洞察数据,进行深度分析。 **OLAP的逻辑概念与操作** - **维(Dimension)**:维是分析数据的特定视角,如时间、地理位置等。每个维又包含多个级别(Level),...

    运行PD建立数据仓库模型

    通过分析模型的复杂度、数据分布情况以及查询模式,用户可以调整模型结构,提高数据访问速度和查询效率。 #### 后端目标平台 考虑到数据仓库可能运行在不同的数据库平台上,PowerDesigner WarehouseArchitect支持...

    Oracle多维财务分析系统.pptx

    模型(Model)则用于在维值之间建立计算关系,实现复杂的财务计算。 通过优化组合数据,OFA 创建多维视图,帮助用户从不同角度查看和分析数据。例如,记录可以按照成本中心、账户、月份等维度排列,展示段、段值...

    基于多维资源占用特征的云计算调度研究.pdf

    本文在分析地震地质解释云应用的特点后,提出了一个多维资源占用特征分类方法,并通过收集大量历史数据建立了一个多维资源占用模型。基于该模型,可以根据服务器端剩余资源形成针对性的评价,进而设计出合理的分配...

    基于多维cube海量零售关键数据挖掘模型仿真.pdf

    3. 星型模型:是一种多维数据仓库设计模式,常用作数据挖掘中的数据模型,包括一个中心表(事实表)和多个维度表,用于优化数据查询和分析。 4. 关联规则:是数据挖掘中用于发现数据库中不同字段间有趣关系的一种...

    分布式分析服务及其在船舶设备故障诊断中的应用研究.pdf

    分布式分析服务作为一种新型的服务模式,不仅能够有效整合分布式环境下的资源,还能够灵活适应不断变化的需求。在船舶设备故障诊断领域,这种服务的应用可以显著提高设备维护效率,降低运营成本,保障海上航行安全。...

    基于SQLServer2005的数据仓库构建及OLAP多维分析实验.pptx

    SQL Server 2005 分析服务(SSAS,SQL Server Analysis Services)专门用于构建多维数据集(也称为立方体),这些立方体是预先计算的数据集合,可以迅速响应复杂的多维度查询。 1. **Cube构建**:在设计和构建立方...

Global site tag (gtag.js) - Google Analytics