下载此文档

DAX查询进阶驾驶DAXStudio.doc


文档分类:IT计算机 | 页数:约8页 举报非法文档有奖
1/8
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/8 下载此文档
文档列表 文档介绍
该【DAX查询进阶驾驶DAXStudio 】是由【泰山小桥流水】上传分享,文档一共【8】页,该文档可以免费在线阅读,需要了解更多关于【DAX查询进阶驾驶DAXStudio 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。DAX盘问进阶:驾驶DAXStudio
没有爱上车是因为还没学会驾驶。前情回顾在上一篇
DAX盘问入门:DAXStudio介绍中,我们已经初步认识了
DAXStuido。
它供给的能力包含:DAX盘问编写DAX盘问/DAX代码格式
化数据模型元数据查察当前DAX引擎支持函数查察当前
DAX引擎DMVDAX盘问结果查察DAX盘问结果数据导出
DAX引擎运转监控(为代码优化做准备)DAX引擎时间跟


DAX

代码性能优化
我们初步认识了:Excel***表可以用等效的DAX盘问表示DAX盘问可以表示出任意复杂的盘问结果,这类能力远远超
过Excel***表自己DAXStudio是编写DAX盘问的强盛武器DAXStudio除了编写DAX盘问外,还具备其余更多特征理解如何借助DAXStudio完成DAX盘问与Excel的连接理解如何直接在原生Excel中实现DAX盘问理解如何在
PowerBIDesktop中进行DAX盘问理解如何借助DAX
Studio测试DAX盘问(返回表或返回值)本文将详细说明
畅快驾驶DAXStudio的方法。(你可以使用自己的测试文件)。以下:DAX盘问编写DAX盘问的语法为:依据微软官方DAX盘问参照可知:
DAX语言供给了一种新语法,可从盘问中返回表数据。
经过DAX盘问,用户可从内存解析引擎(VertiPaq)来检
索由表表达式定义的数据。用户可将胸襟值作为盘问的一
部分创办;盘问结束后,这些结果会被开释,除非导出这些
结果。DAX盘问的语法以下:[DEFINE{MEASURE[]
}EVALUATE[ORDERBY{[{ASC|
DESC}]}[,][STARTAT{|}[,]]]详细参照微软官方文档,
不做过多说明。此中,EVALUATE是要点。包含用于生成
盘问结果的表表达式。表达式可以使用任何定义的胸襟值。
表达式一定返回表。假如需要标量值,则胸襟值的作者可
以将其标量包装在ROW()函数内,以便生成包含所需标量
的表。在DAX中,常有的返回表的状况包含:直接返回表本
身,如:EVALUATEProduct返回被过滤的表,
如:EVALUATEFILTER('Product','Product'[Color]='red')
返回CACULATETABLE计算后的表,
如:EVALUATECALCULATETABLE(DISTINCT
('Product'[ProductName]),'ProductCategory'[Category]
='audio')ALL和VALUES也是返回表的函数,在DAXStudio
中可以很好的看到它们的特征,如:EVALUATEALL('Product
Category'[Category])EVALUATEVALUES('Product
Category'[Category])结果以下:注意:
支持返回多结果,也就是一次性写多个EVALUATE进行计
算。别的一个结果是:发现了吗?ALL和VALUES在这类情
况下返回的结果是相同的。你还可以自行实验有重复值列
的状况。流畅的代码编写体验之因此说当你熟****了DAX的
感觉后会不可以再没有她,正是因为她能帮助你流畅地编写
DAX代码。这表此刻:DAX函数及模型元数据智能感知,
如:DAXStudio可以自动鉴别当前DAX引擎可用的DAX函
数以及当前模型的元数据(表及列)并迅速进行提示,这使得
编写代码的速度很快。DAX代码着色及格式化
,
以下:点击:获取:在编写复杂的DAX盘问时,代码着色以及
括号般配能帮助我们防备很多错误。语法检测及错误提示
假如你的代码出现错误,DAXStudio可以进行语法检查并帮
助消除错误。比方在上述的DAX盘问中,对[CategoryCode]
不小写多写了一个空格成为[CategoryCode],这也是不允
许的,DAXStudio会报错,以下:DAXStudio帮助锁定了出
错的地址是第4行第17列,并提示了错误信息“找不到列CategoryCode或该列不可以用于此表达式”。DAX盘问编写最正的确践基于DAX盘问拥有的特色:DAX盘问是嵌套进行的。可以逐层地来构造盘问,以保证在每一步都可以进行调试。

比方:成立一个返回分类及子分类下销售额汇总的表。这个在
DAXStudio中逐渐编写代码的过程大体以下:DEFINE//
定义胸襟值计算销售额MEASURESales[TotalSales]=SUMX(Sales,Sales[NetPrice]*
Sales[Quantity])EVALUATE//总销售额ROW('values',
[TotalSales])EVALUATE//
生成种类层级表
SELECTCOLUMNS(
GENERATE('ProductCategory',
RELATEDTABLE('ProductSubcategory')),
'Category','ProductCategory'[Category],
'Sub
Category','Product
Subcategory'[Subcategory])EVALUATE//
为种类层级表添
加销量ADDCOLUMNS(
SELECTCOLUMNS
(
GENERATE('ProductCategory',
RELATEDTABLE('ProductSubcategory')),
'Category','ProductCategory'[Category],
'Sub
Category','ProductSubcategory'[Subcategory]
),
'TotalSales',[TotalSales])可以看出在上述过程中,并无
删除每一步的代码,而总是利用每一次的代码连续下一步。
并获取结果:可以发现,有的种类层级组合是没有销售额的,
不希望显示这样的结果,于是可以进一步用FILTER来进行
过滤,甚至进一步格式化输出结果,以下:EVALUATE//为类
别层级表增加销量并过滤空行

//格式化输出结果

FILTER
(

ADDCOLUMNS(

SELECTCOLUMNS
(

GENERATE('ProductCategory',
RELATEDTABLE('ProductSubcategory')),
'Category','ProductCategory'[Category],
'SubCategory','Product
Subcategory'[Subcategory]),'TotalSales',
FORMAT([TotalSales]/10000,'')),
ISBLANK([TotalSales])=FALSE()&&[TotalSales]<>'')结果为:这已经很完满。特别是在编写复杂的DAX盘问时,可以采纳逐渐测试的方法并配合说明使
得DAX代码可以被长远保护。使用DAXStudio理解模型中的元数据DAXStudio可以帮助解析师认识模型的元数据,
以下:包含PowerBIDesktop自动生成的代码,比方:Power
BIDesktop会自动为每个日期列增加一个适用于时间智能
的隐蔽日期表。这个隐蔽的日期表在PowerBIDesktop默
认是看不到的,但是在DAXStudio中却了如指掌。假如禁
用PowerBIDesktop自动生成日期表的功能,以下:此时回
到DAXStudio中查察模型的元数据将不再存在隐蔽的日期
表,以下:使用DAXStudio理解全部DAX函数DAXStudio
可以读取DAX引擎支持的全部函数,以下:这可以帮助解析
师迅速认识全部的DAX函数,包含DAX引擎更新后可能新
加入的函数。使用DAXStudio初步理解DMV并使用Power
BIDesktop作为解析服务AnalysisServicesDynamic
ManagementViews(DMV),即:解析服务的动向管理视图,
它供给了对当前运转的解析服务动向信息进行盘问的接口。
以下:因为ExcelPowerPivot,PowerBIDesktop以及SSAS
均使用解析服务引擎,因此都具备这个DMV。经过盘问DMV,
用户可以知道因为当前解析服务的几乎全部信息,这为基于
PowerBIDesktop的高级应用供给了基础。比方:DMV流露
了作为当前解析服务的实例,那便可以使用该实例作为服务
器。将Excel作为客户端,与之进行连接。这里显示了端口
号:用Excel作为客户端工具与之连接,以下:输入方才在DAXStudio中获取的连接信息,以下:Excel提示可以与当前的分
析服务连接,以下:此时,在PowerBIDesktop定义的模型
便可以直接在Excel中使用了,以下:至此,Excel与Power
BIDesktop完整连接起来,不需要在Excel中成立数据模型
相同可以直接对数据模型加以利用。相关DMV的深度利用,
超出了本文范围,后续再做描述。使用DAXStudio输出DAX
盘问这又是一项DAXStudio特别出彩的功能。我们知道在
Excel中单表限制是100W行数据;而在PowerBIDesktop
中又没法导出数据。这就存在一个问题,那就是:能否可能将
加载进数据模型(Excel数据模型或PowerBIDesktop数据
模型)的大数据量级事实表(如:超出1000W行)导出?对于分
析师而言,这是一个特别重要的功能。这项功能也是由DAX
Studio供给的。在示例PBI文件中便使用了多达1200W行
的销售数据,以下:EVALUATEROW('rowsofsales',
COUNTROWS(Sales))结果:这甚至不可以只好在DAX
Studio的输出视图中显示,这有可能以致内存不足。但可以经过DAXStudio把输出目标改为文件,这样就像在内存数据模型与硬盘目标文件之间成立了管道,数据像流水相同,
顺畅地流入目标文件。在
DAXStudio设置输出目标为:执行
这项“危险”的操作以下:EVALUATESales
执行盘问,并设置
保存的文件格式为CSV格式:DAXStudio
大体以每秒15000
行的速度导出数据:假如此时观察任务管理器,可以看
到:DAXStudio进度以全速工作,~2M/S
每秒的速
度与磁盘交互,在它身旁正是PowerBIDesktop
启动的本
地解析服务。
导出结果以下:文件大小为2G。PowerBIDesktop
源文件(包
含Sales在内全部模型表)整个大小为300M。DAX引擎的压缩能力在此也可见一斑。解析师电脑配置在硬盘方面使用固
态硬盘即是为此处考虑。增加硬盘的读写速度,对于大数据量级数据读写有明显优势。总结至此,此刻我们已经可以基
本驾驶DAXStudio完成大多数DAX盘问相关工作,包含:
流畅地编写DAX盘问。使用DAXStudio实现逐渐编写DAX盘问。使用DAXStudio学****理解全部DAX函数。使用DAXStudio理解模型的元数据。初步使用DAXStudio理解DMV。
使用DAXStudio导出DAX盘问。假如说此刻已经可以经过DAXStudio畅快地驾驶DAX盘问,那还有最后一个阶段,
那就是:透辟地理解DAX引擎,完成修车,弯道急速超车等
高难度动作。介绍<极品飞车>>这一电影,此中一个
片段是:有好车,不必定人人能开出极速。全部的解析师都可
以使用PowerBIDesktop,但真切的好手是能开出极速的。
此中还有一个片段:梦想,比工作更重要。

DAX查询进阶驾驶DAXStudio 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息