「PowerBI」丢弃SSDT选择TabularEditor成为你的首选建模开发工具(上)
许多社区PowerBI爱好者可能少有接触到企业级BI的SSAS建模工具SSDT,仅使用过Excel或PowerBIDeskTop的工具做多维数据建模。
在Sqlserver的SSAS建模过程中(Azure AS通用),一般情况下,是使用微软提供的官方开发工具SSDT来完成,笔者在Azure系列文章中也有提及。但对于一个重度的数据建模工作者来说,更值得推荐的是TabularEditor开源第三方工具。
SSDT开发工具的优缺点分析
在SSDT中开发SSAS数据模型,整体体验是非常棒的,继承了微软一贯的图形化界面操作的友好度,特别是对Excel和PowerBIDeskTop群体来说,无缝过渡到SSDT的操作。
在界面化操作过程中,很多抽象的东西都可以直观地理解,特别是可以有数据导入到模型中可观看其计算结果,逻辑排查等,都是非常方便。
但界面化操作,同时也面临一个很大的局限,类似于我们日常操作Excel一样,通过界面操作,的确可以完成几乎一切的功能,但在高阶应用中,还是喜欢用VBA代码来实现许多界面操作的重复性工作。
在SSDT上,若需要创建度量值、设定显示文件夹、修改数字显示格式等操作,对于度量值不多的情况下,还可以接受一个个的输入设置,但对于一个庞大的模型来说,几百个度量值,一个个去设定、检查,特别是一些简单重复性的相似设置或相似度量值的生成,简直是一件很让人崩溃的事情。
例如都是一些求和的函数,只是针对不同的字段来设置,或者更多场景是由这些基础度量值所衍生出来的当年、当季、当月累计,历史累计,同比、环比、同比%、环比%等一系列度量值时,如果在SSDT上一个个去生成,效率非常低下。
同样地界面化的操作,因数据源已经导入到SSDT内,操作过程中的计算是即时性的,数据源大,反应也会很慢(可以用视图的方式导入数据到SSDT内,在开发过程中视图上Select Top 一下不导入所有数据,等部署后再回到数据库中修改视图将Select Top去掉,可以大幅度改善响应慢问题)。
同样地一些度量值的额外信息补充,若一个个设置或一个个去检查也是效率低下。
总结SSDT的优缺点:界面化操作,易上手,对大量重复性操作不够智能,操作繁琐。并且因数据即时计算带来的性能慢卡顿问题。
优秀的SSDT代替者开源工具TabularEditor
工具的优缺点都是相对而言的,对某些用户群体是优点,对某些人来说是缺点。上述所说SSDT的优缺点取反后,就是TabularEditor的优缺点了。
对于重度建模人员来说,在熟练掌握SSAS建模技术并明白其界面操作对应的内部原理后,使用TabularEditor来做同样的事情,绝对是受益无穷。
对TabularEditor的一些介绍,之前已经写过一篇概述性文章,有兴趣的可以翻阅一下。本篇着重给大家做演示操作。
「PowerBI相关」一款极其优秀的DAX建模工具Tabular Editor https://www.jianshu.com/p/90ea25906952
TabularEditor有限度支持PowerBIDeskTop的建模操作(官方不建议,但是可行,可能有破坏pbix文件风险),也大大地扩大了其使用广度。
TabularEditor实操
模型创建方面,可以来源于某个现有的文件,如SSDT做好的半成品,读取其BIM文件,或者直接读取发布到服务器上的数据模型。笔者更喜欢直接读取数据模型,修改保存后即可在报表层刷新获得最新的修改效果,风险是不小心改坏了,可能会把整个模型给报废了(软件有自动备份功能,一般情况下问题不大,坏了可以还原下)。
读取的服务器,可以是Azure AS的地址,本地Sqlserver也一样,体验没差别。
当然也可以通过【New model】,从零开始创建整个模型,并且可以最高支持1470兼容模式,这个在SSDT2017上还未支持。
在TabularEditor的界面上,将SSAS数据模型分为几大类,同时结合工具栏可以选择性地展示哪些部分。
因TabularEditor不像SSDT那般地直观看到表和表数据等,所有的数据都是停留在元数据级别,所以需要先对多维模型的各种对象元素非常熟悉后才比较容易玩得转。就像学VBA一样,需要对操作层面的功能很熟悉,才能快速上手做出有用功能来。
创建数据连接
首先要访问数据,需要用到数据连接,这里有旧的连接方式和新的PowerQuery连接方式,建议标准化数据库的数据连接使用旧的连接方式,后续的修改更容易。
PowerQuery的方式,没法像SSDT那样可以调出界面化操作,只能接收最终生成的M语言代码,所以真要使用它时,建议从PowerBIDeskTop上将数据加工好,生成M语言代码再复制过来即可。如下面会用到的日期表,纯M代码生成。
TabularEditor有一个好处是,它只关注元数据,所以我们甚至可以从其他数据模型里,直接右键复制某个对象到当前模型里就可以。
导入表或视图数据
直接选择Tables对象下的右键鼠标菜单,即可快速找到【Import Tables】快捷菜单。
选择刚刚创建好的数据连接或未创建时直接新建数据连接。
和微软原生的数据连接界面相差无几,体验也是很棒。
选择数据表时,也是可视化给予数据预览及通过勾选的方式选择字段,非常友好。
当源数据表中字段有增减或字段类型、名字有变更时,同样有非常贴心的右键功能去修复和检验变更情况,帮助快速修复。
创建表间关系
虽然TabularEditor只显示元数据,不像SSDT那样可显示表的具体的数据,且在创建关系上可以较为友好地拖放的方式完成,但毕竟关系创建的操作也非十分繁琐重复性,TabularEditor提供的是在属性面板上选择字段的方式,个人感觉也不算太差的体验。
可通过左侧的数据类型,辅助判断选择是否正确,数据类型不匹配的字段创建关系,后面也是好多坑,关系不起作用,检查老半天还以为自己DAX公式写得有问题。
创建度量值、计算列等
数据建模过程,最高频的莫过于度量值、计算列的创建,这里也是非常友好地甚至提供了快捷键的操作。
现在版本比较遗憾的是表达式编辑区对中文支持不友好,会出现显示压缩在一堆的情况,可以先从DAX Studio上写好后再粘贴过来,软件作者在新版本3.0中将会修复,敬请耐心等待。
在整个软件的设置逻辑中,每个对象都可以在右边的属性面板中进行大量的设置操作,包括度量值表达式,当然更方便的表达式书写在右上方的表达式编辑区上。
在批量操作方面,体验也是非常棒,可以随时批量CTRL+C、CTRL+V生成一批变量值,可拖动的方式在不同显示文件夹中切换(也可以拖动到其他表中),体验好得不得了(相对SSDT来说,就算可以复制度量值,也因为要即时计算,响应非常慢,更不用说显示文件拖动这些体验了)。
部署到服务器或Azure云上
点击【Deploy】按钮后即可打开部署界面。
填写服务器地址,本机使用localhost,如果是远程的服务器,可能需要域环境才能在本机上进行部署,否则只能在远程服务器上安装TabularEditor,再选择localhost部署了,但在Azure AS上就没这个限制,所以还是Azure更简单。
输入要命名的数据库名称即可。
当然企业级BI模型,角色、成员这些也是非常必要的,用于控制权限,可在Tabular Editor上创建角色和成员,也可以到SSMS上创建,部署时有可选项,是否推送这些信息覆盖服务器元数据,做得也是非常人性化,考虑很周到。
极具生产力效率的功能
可批量选择多个对象后移动、删除、设置详细属性,可模型内、模型间复制对象等快捷操作,将使我们的数据建模工作效率得到极大提升。这是笔者对其喜爱有嘉的原因之一。
在SSAS建模过程中,可以从Excel的PowerPivot模型作为起点导入模型元数据,再进行一定的扩展,是一个很不错的从低到高,从自助式建模平滑过渡到企业级建模的一个不错的方式(同样PowerBIDeskTop亦支持从Excel的PowerPivot导入模型)。
用上TabularEditor后,一个很大的惊喜是,可以将PowerBIDeskTop的模型复制到SSAS中使用,特别是大量的度量值的复制工作。只需在其他模型中选定要复制的对象CTRL+C复制后,再回到当前模型进行CTRL+V即可完成复制工作,这个体验超级棒。例如上述的日期表笔者就是在多个模型中只通过复制的方式就可在新模型中复用。
同样地,TabularEditor在界面层也做了大量的右键快捷菜单,可以非常方便地选择当前上下文对象中需要的功能。
结语
就如使用Excel的群体中,当上升到使用VBA层面,没有人会觉得用代码来控制比用界面控制体验要差,同样地在Tabular Editor上,当我们对SSAS数据建模的原理非常熟悉后,转移到Tabular Editor的使用也是非常流畅的,大量模型的属性设置都更加灵活方便。
同样地其更为高效的高级功能也如VBA一般可使用脚本代码去作更进一步的自动化操作,这些的介绍将在下一篇中给大家作介绍,欢迎继续关注。
笔者未来聚焦在数据领域的分享,不限于Excel,会分享更多Sqlserver、dotNET、Azure、PowerBI等话题,升级数据分析的能力,欢迎继续关注。
相关阅读
「PowerBI」丢弃SSDT选择TabularEditor成为你的首选建模开发工具(上)https://www.jianshu.com/p/939f7e8f68d5
「PowerBI」丢弃SSDT选择TabularEditor成为你的首选建模开发工具(中) https://www.jianshu.com/p/0c61ea76d031
关于Excel催化剂
Excel催化剂先是一微信公众号的名称,后来顺其名称,正式推出了Excel插件,插件将持续性地更新,更新的周期视本人的时间而定争取一周能够上线一个大功能模块。Excel催化剂插件承诺个人用户永久性免费使用!
Excel催化剂插件使用最新的布署技术,实现一次安装,日后所有更新自动更新完成,无需重复关注更新动态,手动下载安装包重新安装,只需一次安装即可随时保持最新版本!
Excel催化剂插件下载链接:https://pan.baidu.com/s/1Iz2_NZJ8v7C9eqhNjdnP3Q
取名催化剂,因Excel本身的强大,并非所有人能够立马享受到,大部分人还是在被Excel软件所虐的阶段,就是头脑里很清晰想达到的效果,而且高手们也已经实现出来,就是自己怎么弄都弄不出来,或者更糟的是还不知道Excel能够做什么而停留在不断地重复、机械、手工地在做着数据,耗费着无数的青春年华岁月。所以催生了是否可以作为一种媒介,让广大的Excel用户们可以瞬间点燃Excel的爆点,无需苦苦地挣扎地没日没夜的技巧学习、高级复杂函数的烧脑,最终走向了从入门到放弃的道路。
最后Excel功能强大,其实还需树立一个观点,不是所有事情都要交给Excel去完成,也不是所有事情Excel都是十分胜任的,外面的世界仍然是一个广阔的世界,Excel只是其中一枚耀眼的明星,还有其他更多同样精彩强大的技术、工具等。*Excel催化剂也将借力这些其他技术,让Excel能够发挥更强大的爆发!
关于Excel催化剂作者
姓名:李伟坚,从事数据分析工作多年(BI方向),一名同样在路上的学习者。
服务过行业:零售特别是鞋服类的零售行业,电商(淘宝、天猫、京东、唯品会)
技术路线从一名普通用户,通过Excel软件的学习,从此走向数据世界,非科班IT专业人士。
历经重重难关,终于在数据的道路上达到技术平原期,学习众多的知识不再太吃力,同时也形成了自己的一套数据解决方案(数据采集、数据加工清洗、数据多维建模、数据报表展示等)。
擅长技术领域:Excel等Office家族软件、VBA&VSTO的二次开发、Sqlserver数据库技术、Sqlserver的商业智能BI技术、Powerbi技术、云服务器布署技术等等。
2018年开始职业生涯作了重大调整,从原来的正职工作,转为自由职业者,暂无固定收入,暂对前面道路不太明朗,苦重新回到正职工作,对Excel催化剂的运营和开发必定受到很大的影响(正职工作时间内不可能维护也不可能随便把工作时间内的成果公布于外,工作外的时间也十分有限,因已而立之年,家庭责任重大)。
和广大拥护者一同期盼:Excel催化剂一直能运行下去,我所惠及的群体们能够给予支持(多留言鼓励下、转发下朋友圈推荐、小额打赏下和最重点的可以和所在公司及同行推荐推荐,让我的技术可以在贵司发挥价值,实现双赢(初步设想可以数据顾问的方式或一些小型项目开发的方式合作)。