DAX基础9:快速入门Azure Analysis Service开发

浏览: 1137

我是很想天天更新点啥,不过没有好的主题,写不出来东西。想写点好玩的有意思的。就当自娱自乐,也是挺好的。

Azure Analysis Service就是一个建Cube的工具。建立一个model,里面包含数据连接,导入数据表,建立表关系,DAX新建表或者Calculated Column或者Measures。建立权限Role。如果表太多了,设置perspectives来把相关的表分组管理。还有各个表字段的属性在Grid;创建hierarchy,在Diagram模式。包发布在Azure的service上,可以作为Power BI的数据源。不过以AAS包做数据源的Power BI里面,只能建Measure不能建Calculated Column。包可以用Azure里面的Runbook定时刷新。


快速入门就是这些内容,具体做的时候就按照这个顺序,就是对的。遇到问题,bing下面搜索关键字。授之以鱼不如授之于渔。总会遇到问题才会记得更清楚。没有什么教程或者文章能涵盖全部的内容。不过按照我上面写的顺序,基本上做AAS的开发没有问题的啦。

我仔细认真的回想了下,这个AAS里面好像也真没有遇到上面问题。还可以写DAX的啊。这里面写的时候注意下。名字:=表达式 (冒号别少了。)

还有就是Processing,如果你设置了Do Not Processing,那Deploy的时候就是Deploy了这个model的框架,不带数据的。你可以在model之外Process数据。当然你也可以在model里面Processing All Data。 

回想下遇到的问题,印象深刻的tips就下面两点:

1. ODBC的设置。win10系统,常用的数据库有Netezza,SQL Server还有DB2.建立ODBC的时候,32/64bit的都建一下。如果出现这个错误

SQLException caught = [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application

你就要考虑建立32/64bit的ODBC了。

2.建Hierarchy。要在Diagram模式下,表的右上角第一个。我当时找到官方文档,看的一脸懵圈,后来才反应过来。也是消耗了我一点点脑细胞的。

基本上就是这样了。AAS很简单的。做好DAX,基本什么都很简单。

都是一些工具而已。如何更好的balance前端和后台才好玩一点。

最后随便给个彩蛋。

公司财务关账是445,我就随便在Power BI里面做了一下表来得到关账日期。给不是月底关账的小伙伴们一个参考。

新建一个Calculated Table。内容如下:

Date =

GENERATE (

    CALENDARAUTO(),

    VAR YYYY =

        YEAR ( [Date] )

    VAR MMMM =

       MONTH ( [Date] )

    RETURN

        ROW (

            "Year", YYYY ,

            "Month", FORMAT ( [Date], "mmmm" ),

            "Month Number", MMMM,

            "Week Number", WEEKNUM([Date],2),

            "WeekDay", FORMAT ( [Date], "dddd" ),

            "Year Month", IF(MMMM < 10,YYYY &"-0"&MMMM,YYYY &"-"&MMMM)

        )

)

创建Calculated Column来计算Finance Month。

Finance_Month =

IF('Date'[Week Number] <=4,'Date'[Year] & "-01",

    IF(AND('Date'[Week Number]>4,'Date'[Week Number]<=8),'Date'[Year] & "-02",

   IF(AND('Date'[Week Number]>8,'Date'[Week Number]<=13),'Date'[Year] & "-03",

   IF(AND('Date'[Week Number]>13,'Date'[Week Number]<=17),'Date'[Year] & "-04",

    IF(AND('Date'[Week Number]>17,'Date'[Week Number]<=21),'Date'[Year] & "-05",

    IF(AND('Date'[Week Number]>21,'Date'[Week Number]<=26),'Date'[Year] & "-06",

    IF(AND('Date'[Week Number]>26,'Date'[Week Number]<=30),'Date'[Year] & "-07",

    IF(AND('Date'[Week Number]>30,'Date'[Week Number]<=34),'Date'[Year] & "-08",

    IF(AND('Date'[Week Number]>34,'Date'[Week Number]<=39),'Date'[Year] & "-09",

    IF(AND('Date'[Week Number]>39,'Date'[Week Number]<=43),'Date'[Year] & "-10",

    IF(AND('Date'[Week Number]>43,'Date'[Week Number]<=47),'Date'[Year] & "-11",

    IF(AND('Date'[Week Number]>47,'Date'[Week Number]<=53),'Date'[Year] & "-12","wrong"))))))))))))

根据Finance Month来创建Closed Date。创建Calculated Column如下:

Closed_Date =

VAR max_dt = 'Date'[Finance_Month]

Return CALCULATE(MAX('Date'[Date].[Date]),FILTER('Date','Date'[Finance_Month] = max_dt))

就完成了。其实也没有那么简单的。哈哈~~

我想写一些有趣的东西,但是想一个主题真的太难了。我懒得写凑合,自己水平也有限,就顺其自然吧。当个记录笔记了。顺其自然,平常心。

欢迎转发关注,一起成长吧!


推荐 0
本文由 懒胖子 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册