皆非的万事屋

【DAX】Data Analysis expressions learning notes (1)

该系列记录博主学习DAX的总结

第一章看完“DAX是什么之后”给我的感觉还是有点生的,DAX (Data Analysis eXpressions) 主要是 Power BI 中使用的编程语言,首先确定 DAX 是一种编程语言,放在更广的一层概念,DAX 属于DSL的一种。

举些例子,Mysql软件使用的编程语言是SQL(结构化查询语言),Power BI 软件使用的则是DAX

DAX是一种函数式编程语言,没有类似 SQL 一样声明特定的操作(SELECT, FROM , GROUP, WHERE),这些在 DAX 中都变成了一个一个的函数(说着说表达式),SQL重声明弱计算流程,DAX弱声明重计算流程;也就是说作为SQL的使用你可能大部分不需要了解SQL的逻辑执行计划,而 DAX 就如同不断地在编写执行计划一样,在计算中就查询出了相应的结果。

第一章并没有着重讲 DAX 的内容,而是在对比 EXCEL、SQL、MDX,DAX操作的都是表和列,DAX从执行计划方面和SQL类似,从公式写法上和 EXCEL类似。第一章着重强调了好几次重要的概念:计值上下文CACULATE迭代上下文转换等,这些会在第4、5章着重介绍。

第一章还简单的介绍了“数据模型”,在DAX中数据模型可以是一张表,或是几张表并建立了相应的关系
这里的关系可以理解为我们一开始学习SQL中ER图的那个,不同实体之间有 1:1,1:n和n:m三种关系,在数据模型中也是,不过具体说明了表之间的1对多的关系。(1:1和多对多为弱关系,不提倡使用,具体还没看为什么)

例如,类别表和产品表是 1:n,那么称类别表为1端,产品表为多端,而基于模型在DAX的公式中为自动帮你建立关联关系:默认为 多端 LEFT OUTER JOIN 一端。

同时在关系上还存在着方向,而相应的筛选可以沿着方向进行传递,从而在报表中展示出不同的结果。(我看第一章时就这个地方不是太理解,筛选是什么,为什么能传递,为什么要传递)

然后文章最后一部分是写给 MDX 开发者的话术,没有怎么仔细看。

总体来说第一章介绍的内容还是比较少的,从第二章开始会更详细的介绍DAX!

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »