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/ ...
随机推荐
- linux 常用命令,开发记住这些基本能够玩转linux
系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...
- EAS.Net 在程序里配置组件
public class BeforStart { /// <summary> /// 程序配置初始化 /// </summary> public static void EA ...
- B/S 类项目改善的一些建议
body { border: 1px solid #ddd; outline: 1300px solid #fff; margin: 16px auto; } body .markdown-body ...
- Rx.net 例子——(1)基础
1.订阅序列 using System; using System.Collections.Generic; using System.Linq; using System.Text; using S ...
- JS 面向对象详解
面向对象详解1 OO1.html <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- C#基础笔记(第十七天)
1.复习 ref 传地址 用的是同一块内存 一个改变另一个也随着改变 return n1 > n2 ? n1 : n2; 三元表达式 int max=GetMax(1,2,3,4,5,6,); ...
- zTree第一章,纯静态
zTree v3.5 Demo 演示 http://www.treejs.cn/v3/demo.php#_101 ------------------------------------------- ...
- objectARX创建 PaletteSet 停靠面板示例
objectARX创建 PaletteSet 停靠面板示例 图文By edata ,转载注明出处 http://www.cnblogs.com/edata 部分代码参考张帆<AutoCAD Ob ...
- 看个AV也中招之cve-2010-2553漏洞分析
试想:某一天,你的基友给你了一个视频文件,号称是陈老师拍的苍老师的老师题材的最新电影.avi,你满心欢喜,在确定文件格式确实为avi格式后,愉快的脱下裤子准备欣赏,打开后却发现什么也没有,而随后你的基 ...
- Chrome 中删除单条浏览记录
悲伤...之前用非隐私窗口观看了小电影.于是打开 chrome://settings/ ...... 现在才知道 windows 上使用 shift + del 即可删除该浏览记录 ....... 以 ...
