FocusBI:MDX检索多维模型
微信公众号:FocusBI
关注可了解更多的商业智能、数据仓库、数据库开发、爬虫知识及沪深股市数据推送。问题或建议,请关注公众号发送消息留言;
如果你觉得FocusBI对你有帮助,欢迎转发朋友圈或在文章末尾点赞[1]
《商业智能教程》pdf下载地址
链接:https://pan.baidu.com/s/1f9VdZUXztwylkOdFLbcmWw 密码:2r4v
MDX引擎
MDX是一种结构化查询语言,它比SQL查询语言更复杂,因为MDX是面向多维数据模型进行数据检索用来支持复杂的商业环境数据验证。MDX支持两种不同的模式,一是表达式语言:定义和操作Analysis Service 对象和数据以计算值。二查询语言:从Analysis Service中检索数据。
多维数据集是用户为了进行数据分析而设计和使用的对象。在数据仓库设计阶段已经对维度和事实数据进行了分割和处理,通过SSAS引擎组装成多维型,虽然每个事实量值可以按照事先设计好的维度分析数据,这个通过SQL语句很容易实现;根据多维模型的特性它是用来支持复杂的商业环境数据验证的,所以不管业务人员还是管理人员提出的商业场景应该是很容易实现的;这里已最为常用的同比环比做一个简单案例的介绍。
同比环比
这个案例我采用地产数据给签约金额做一个签约金额同比、签约金额环比;
同比=((本期/同期)-1)* 100%;环比=((本期/上期)-1)* 100%;通过分析这个计算公式本期是已有的量值在签约量值组中存在,关键是如何拿到同期和上期;而MDX引擎提供了如何取这两个数据的方法函数,但是必须要借助日期维度,同期的思想是要取去年的今天,上期的思想是要取上个月的今天;所以上期可以通过日期维度CurrentMember.PrevMember 获得,同期可以通过日期维度ParallelPeriod 日期维度.CurrentMember 获得
实现步骤
这里使用MDX支持的模式:表达式语言来定义和操作计算量值。
第一步:打开项目把日期维度的属性改成时间类型(Type);

第二步:打开多维模型,单击计算按钮,单击新建计算成员,名称改成[测试_签约金额上期],表达式:([Measures].[签约金额],[A日期].[年-季-月-日].CurrentMember.PrevMember),显示文件夹填写测试。

第三步:单击计算按钮,单击新建计算成员,名称改成[测试_签约金额环比],表达式:format([Measures].[签约金额]/([Measures].[签约金额],[A日期].[年-季-月-日].CurrentMember.PrevMember) -1,"0.00%"),显示文件夹填写测试。

第四步:单击计算按钮,单击新建计算成员,名称改成[测试_签约金额同期],表达式:(ParallelPeriod([A日期].[年-季-月-日].[年],1,[A日期].[年-季-月-日].CurrentMember),[Measures].[签约金额]),显示文件夹填写测试。

第五步:单击计算按钮,单击新建计算成员,名称改成[测试_签约金额同比],表达式:format ([Measures].[签约金额]/(ParallelPeriod([A日期].[年-季-月-日].[年],1,[A日期].[年-季-月-日].CurrentMember),[Measures].[签约金额]) -1,"0.00%"),显示文件夹填写测试。

第六步:部署多维模型,这里就不介绍了前面的文章有介绍如何部署。
第七步:单击浏览器,从模型中拖日期维度层次结构年-月-日到选择维度区域并且选择2016年2月和2017年2月的前四天,年-季-月-日拖到量值区域;从签约量值组中拖签约金额到量值区域,测试量值组分别拖测试_签约金额上期、测试_签约金额环比、测试_签约金额同期、测试_签约金额同比,完成后点击查询。

第八步:根据同比和环比的公式我们可以看到2016年1季度二月20160201 签约金额=16128001,2016年1季度二月20160202 测试_签约金额上期=16128001,2017年1季度二月20160201 测试_签约金额同期=16128001;这两个都等于本期说明上期和同期的数据取正确了,这时我们可以把日期维度上的日去掉在验证一下数据是否正确?

MDX函数字典
MDX比SQL要难太多,它涉及到很多空间概念一时半会很多人很难理解而且学习起来比较困难因为有关MDX的官方学习资料和书籍非常少;我在对多维数据模型进行逆向工程的时候,拿到了一份非常全面的MDX语言函数表一共有404个函数的使用方法,这份表已经嵌入到《BI项目管理》系统中,这里我导入来分享给大家。关注FocusBI发送 MDX函数 获取下载链接,已经关注了的直接发送就行了。这份MDX函数表有部分是全英文的如果你有能力翻译只要翻译说明列就行,请翻译好后分享一份给我。



历史文章:
FocusBI: 使用Python爬虫为BI准备数据源(原创)
FocusBI:SSAS体系结构(原创)
FocusBI:租房分析&星型模型
FocusBI:地产分析&雪花模型
FocusBI:MDX检索多维模型
FocusBI:租房分析可视化(网址体验)
FocusBI: 《DW/BI项目管理》之数据库表结构 (原创)
FocusBI:MDX检索多维模型的更多相关文章
- FOCUS数据管理:数据字典与多维模型
这是我从工厂出来的第五个年头,也是我第一次主动写年终总结: 回想这一年来一点成就都没有,想想都有点后怕:而且每天还是干着同样的事情,容易被新手代替,由于我比较厌烦每天重复的干同样的活,所以我开始思考是 ...
- FocusBI:租房分析&星型模型
微信公众号:FocusBI关注可了解更多的商业智能.数据仓库.数据库开发.爬虫知识及沪深股市数据推送.问题或建议,请关注公众号发送消息留言;如果你觉得FocusBI对你有帮助,欢迎转发朋友圈或在文章末 ...
- 使用 x3dom 框架及 WebGL 在浏览器上显示 3 维模型
如果需要在浏览器上显示 3D 画面的话, 现在一般会使用 WebGL, 典型的例如 three.js(http://mrdoob.github.com/three.js/), 但是 WebGL 对 ...
- Cesium官方教程7--三维模型
原文地址:https://cesiumjs.org/tutorials/3D-Models-Tutorial/ 三维模型 (3D Models) 这篇教程给大家介绍,如何在Cesium中通过Primi ...
- FocusBI:地产分析&雪花模型
微信公众号:FocusBI关注可了解更多的商业智能.数据仓库.数据库开发.爬虫知识及沪深股市数据推送.问题或建议,请关注公众号发送消息留言;如果你觉得FocusBI对你有帮助,欢迎转发朋友圈或在文章末 ...
- FocusBI: 微软商业智能教程目录介绍(原创)
关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. <商业智能教程>pdf下载地址 链接:https://pan.baidu.com/ ...
- FocusBI:《DW/BI项目管理》之SSIS执行情况
微信公众号:FocusBI关注可了解更多的商业智能.数据仓库.数据库开发.爬虫知识及沪深股市数据推送.问题或建议,请关注公众号发送消息留言;如果你觉得FocusBI对你有帮助,欢迎转发朋友圈或在文章末 ...
- FocusBI:租房分析可视化(PowerBI网址体验)
微信公众号:FocusBI关注可了解更多的商业智能.数据仓库.数据库开发.爬虫知识及沪深股市数据推送.问题或建议,请关注公众号发送消息留言;如果你觉得FocusBI对你有帮助,欢迎转发朋友圈或在文章末 ...
- FocusBI: 《DW/BI项目管理》之数据库表结构 (原创)
关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. <商业智能教程>pdf下载地址 链接:https://pan.baidu.com/ ...
随机推荐
- .netcore Swagger 生成 api接口文档
1, 引用第三方包, Swashbuckle.AspNetCore Swashbuckle.AspNetCore.Swagger Swashbuckle.AspNetCore.SwaggerUI 最简 ...
- windows server 2008 站点系列--AD的站点建立与子网的管理(zhuanzai)
本次课程将给大家介绍AD中站点和子网的功能.站点和子网之间的关联,以及相关的设置步骤. 应用背景介绍: contoso公司的总部在西安(Xian),陕南的汉中(Shannan)和陕北的榆林(Shanb ...
- linux网络流量实时监控工具之iptraf 【个人比较喜欢用的流量监控软件】
linux网络流量实时监控工具之iptraf IPTraf是一个网络监控工具,功能比nload更强大,可以监控所有的流量,IP流量,按协议分的流量,还可以设置过滤器等,如下图 对监控网络来说,这个更适 ...
- 【OCP 12c】最新CUUG OCP-071考试题库(62题)
62.(13-17)choose the best answer: You need to list the employees in DEPARTMENT_ID 30 in a single row ...
- 关于sql注入的简要演示
文章分类:周稿 团队成员:sundy 首先可能大家都会问什么是sql? Sql是数据库的一种类型,是用来存储网站数据的. 每当我们点开一个网站,就会从网站的数据库中获取相关的内容. 我们来梳理一下 ...
- 手把手教渗透测试人员打造.NET可执行文件
在进行渗透测试的过程中,我们有时候会希望使用可执行文件来完成某些任务.最近,我们在测试过程中拿下了一个网站,从而获得了一次发动水坑攻击的机会. 原文地址:https://www.peew.pw/blo ...
- 【javascript】判断是否微信浏览器的最佳实践
根据判断UA中是否有关键字micromessenger,有的话则是微信内置浏览器 用Chrome的iPhone5模拟测试 //判断是否微信登陆 function isWeiXin() { var ua ...
- XCode7无证书真机调试教程
转载自http://altair21.com/156.html 前提条件: XCode版本>=7 1. 进入xcode,菜单栏选择xcode –> preferences (快捷键 com ...
- leetcode-278-First Bad Version(注意不要上溢)
题目描述:(说明中有简单翻译) You are a product manager and currently leading a team to develop a new product. Unf ...
- spark中资源调度任务调度
在spark的资源调度中 1.集群启动worker向master汇报资源情况 2.Client向集群提交app,向master注册一个driver(需要多少core.memery),启动一个drive ...
