博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【SSAS】Model-First Cube 设计的最佳实践
阅读量:5859 次
发布时间:2019-06-19

本文共 2099 字,大约阅读时间需要 6 分钟。

【备注】这是最近在一个讲座中的例子,整理出来给大家参考

 

相关名词解释

SSAS: SQL Server Analysis Service。

这是微软SQL Server BI(商务智能)平台的一个核心组件,它可以基于UDM(统一维度模型)构建多维数据集和挖掘模型,支持OLAP(在线分析)和Data Mining(数据挖掘)

Cube: 多维数据集

这是SSAS项目设计的一个核心目的,创建多维数据集,以便支持OLAP分析。对于Cube而言,不再有行和列的概念,取而代之的是,维度和度量值(以及度量值组)

 

Model-First: 模型先行

这是SSAS从2005这个版本开始支持的一个新特性,也可以说是一个设计Cube的策略。Model-First指的是,在没有数据仓库的情况下,先设计模型(维度和度量值,以及他们之间的关系),然后可以根据这个模型,反向生成数据仓库。

与该策略对应的另外一个策略是:Database-First(数据库先行),也就是说,在设计Cube之前,现有一个完整的数据仓库,该策略是指根据数据仓库的结构生成Cube。

这两种策略各有优缺点。Database-first较为简单,能够很快生成Cube,快速验证和开始工作。而Model-First则更加适合于现实的工作中,因为很多时候,我们在做BI项目的时候,可能数据仓库是并不存在的。而且过早地关注数据仓库的物理设计,也不是一个非常好的方案。我们应该是先关注分析需求,并且将这些需求转换为我们的模型。

 

这一篇文章用一个例子演示了如何使用Model-First策略设计Cube,并且反向工程生成数据仓库。

1.新建一个SSAS项目

2.启动新建Cube向导(在Cubes文件夹处,右键)

选择Creation Method,“ Create an empty cube”。注意,这里也可以根据模板创建。这两种都属于是Model-First的方式

由于目前没有数据库,所以下图中只能选择“None”

接下来给Cube命名,完成操作

3.创建度量值

度量值指的是我们在Cube里面需要进行分析的一些基础指标。本例中,我们假设要分析一个销售业务,有两个度量值,销售额和数量。

首先,创建一个度量值组(Measure Group),它是用来组织度量值的

将度量值组命名为Sales,并且继续创建两个度量值,SalesAmount和Quantity

4.创建并编辑维度

维度代表了我们在Cube中分析业务的角度。本例中,我们创建两个维度,时间维度和客户维度

首先,创建时间维度(注意,时间维度是一个很特殊的维度,有专门的向导)

定义时间段以及我们关注的时间信息。这个时间段将决定后续生成数据的范围。

我们甚至还可以定义多个日历

接下来,我们创建一个客户维度.与时间维度不同的是,客户维度一般需要我们自己定义。

【注意】这里也可以使用模板,但为了演示如何设计维度,我不用模板

【注意】这里所谓的SCD,指的是渐变维度。该内容的讨论超出了本文的范围,有兴趣的朋友请参考联机丛书或者我其他的文章。

通过上面的步骤,我们已经创建了一个维度,我们还需要为该维度添加一些属性(Attribute),例如本例中,我们添加“国家”,“地区”,“城市”,“性别”四个属性,以便利用它们进行分析。

【注意】这里应该还需要创建层次(Hierarchies),以便提供性能。限于篇幅,本文不做这个步骤

 

5.将维度与Cube关联

维度建立好之后,需要将它与Cube进行关联。我们可以先回到Cube Design界面

在左下角的方块区域,可以添加维度

将两个维度都添加进来

光这样做还是不够的,我们需要设置维度与度量值的关系。切换到Dimension Usage界面

点击每个维度右侧那个小按钮,设置关系为”Regular” ,下图是时间维度

下图是客户维度

6.生成数据库

到上面这样,我们就完成了Cube的设计(当然,我们只是做了最简单的一个范例),那么如何根据这个设计,生成我们需要的数据仓库呢

首先,在SQL Server中创建一个空的数据库,例如

然后,回到BI Studio中来,在顶部菜单中选择“Database”==>”Generate Relational Schema”

点击“New…”来创建一个新的数据源

再次点击“New…”,指定我们的服务器和数据库

点击“Next”

【注意】这里选择“Use the service account”

点击“Finish”

点击“Next”

点击“Next”

点击“Next”

点击“Finish”

这样就生成好了我们需要的数据库结构。我们可以在SSMS中查看得到

更加特别的地方是,Time这个维度表里面还包含了数据

当然,Customers表和Sales表目前是没有数据的,那就需要我们通过设计SSIS,将数据从业务数据库中抽取过来。这个内容已经超出了本文的范围。

 

7. 部署项目

我们可以将这个设计好的SSAS项目部署起来看看效果如何

部署成功之后,下图就可以看到我们熟悉的OLAP分析的界面了

转载地址:http://llejx.baihongyu.com/

你可能感兴趣的文章
大数据投资增长 但增长速度却在放缓
查看>>
《大数据分析原理与实践》一一3.4 小结
查看>>
韩国将合理放宽个人信息限制 大力培育大数据产业
查看>>
无线通信网络之LoRa技术
查看>>
重庆银行推出大数据信贷产品
查看>>
Oculus创始人面临窃取商业机密指控
查看>>
传Snapchat已递交IPO申请 拟至多融资40亿美元
查看>>
美国OTA更新《物联网信任框架》:未来物联网认证计划的基础
查看>>
制造业原材料价格上涨 安防设备涨还是不涨?
查看>>
硬盘都白菜价了,可我们连卖“白菜”都不够格
查看>>
ARM发力物联网
查看>>
我怎么做性能测试
查看>>
“十三五”规划强调信息安全
查看>>
欧盟斥资18亿欧元 砸向网络安全领域——英国,你后悔了没?
查看>>
网络安全专家寻勒索病毒蛛丝马迹 警告更多风险
查看>>
百亿交易额被指造假!科通芯城创始人报警回应
查看>>
AOFAX呼叫中心:企业如何提升竞争力和凝聚力
查看>>
以大数据探寻社会治理精准模式
查看>>
阿里巴巴集团技术委员会主席王坚:我曾经被诺贝尔奖得主司马贺忽悠,相信人工智能就是未来!...
查看>>
北控清洁能源俩附属订立光伏发电设备融资租赁协议
查看>>