百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

PBI催化剂较Tabular Editor好用易用之处

bigegpt 2024-10-12 05:21 5 浏览


相信近期Powerbi推出的外部工具功能,越来越多的PowerBI爱好者开始尝试下载Tabular Editor来玩弄一把,特别是现阶段,如果需要做度量值计算组功能,也只有Tabular Editor可以胜任,甚至连原生的PowerBIDeskTop都不支持。

诚然Tabular Editor已经非常优秀且具有非常丰富的扩展接口,供高级用户使用,为何还需要PBI催化剂的存在呢?本篇暂且不说PBI催化剂有而Tabular Editor没有的功能,仅对两者共有,都能实现的一些高级应用特别是批量性应用来作对比,告诉大家PBI催化剂有其更大的易用性和强大性。

背景介绍

Tabular Editor是一款独立的软件,Winform架构,同时亦兼有命令行访问方式,并且作者还打造了一个Wrapper轮子,使.NET程序更简单方便地调用SSAS接口。

其github开源地址为: https://github.com/otykier/TabularEditor,若仅需要下载其最新版本,可跳转到此网址去下载: https://github.com/otykier/TabularEditor/releases 。每次到此网址去查看更新日志,都会让笔者感到兴奋不已,随着软件的更新,功能更强大,稳定性越来越好,特别是最近修复了中文字符显示的问题,太让笔者感到开心。

难能可贵的是,这样一款非常小众的开源软件,作者把wiki介绍做得非常完善,PBI催化剂很多灵感都是从其现有功能及介绍而来,特别是其脚本功能,网址为: https://github.com/otykier/TabularEditor/wiki/Useful-script-snippets

PBI催化剂大量的功能实现的底层代码,借且于Tabular Editor的开源代码参考及其Wrapper轮子TOMWrapper实现,在此真的非常感谢Tabular Editor的作者的无私奉献。

功能对比

在Tabular Editor里,其高级的功能,多数在于使用高级脚本的方式来扩展实现的,但能够使用脚本,必须会一些C#的编程技术,否则可能只能借助其Wiki上写的例子简单操作下,很难有能力驾驭住,当然有了PBI催化剂后,当有共性且高频使用的,笔者也已经将其封装起来,实现更为友好界面式操作,无感底层的代码级别的复杂度

一、批量导出导入模型属性数据

在Tabular Editor里,其实现方式,使用高级脚本来访问数据模型。如下图所示:

具体可参考其文档: https://github.com/otykier/TabularEditor/wiki/Useful-script-snippets#export-object-properties-to-a-file

除了上述说到的需要掌握C#语言才能编写外,退一万步,就算已经掌握了语言,在Tabular Editor作者所使用的方式中,他没有将数据导出到Excel文件,而是使用tsv格式(以制表符为分隔符的文本文件,类似以逗号分隔的csv文件)。

此方法天然地对导出数据中的万一包含制表符换行符等符号时,非常容易产生数据错乱问题。

因为这个问题,我还曾经在github上向作者发出一条issues反映这个问题。https://github.com/otykier/TabularEditor/issues/307

同样一个问题是,在导出的对象属性过程中,不知道该对象有什么属性,就难于对其进行导出,只能查明此对象具体有有些属性,再通过传入属性字符串名称的方式才能拿到最终此属性的信息

针对上述提到的三大痛点问题,且看在PBI催化剂中如何将其一一破解,带出一个超级棒的操作流程与体验。

  • PBI催化剂中,无需任何代码,即可界面方式完成所需导出的对象的选择及其对应的属性的进一步细分选择。

如下图的红框3部分,想要什么属性,就勾选什么属性,如果固定化需要哪些属性,也可以自行字符串拼接完成。

  • 导出的数据结果是在Excel表格内,不受换行符、制表符等影响错位问题。

数据在Excel表格里,下一步进行查看、编辑也带来无限地便利,就算上述导出许多不相关的属性也不必介怀,简单删除或隐藏某些属性列即可,整个过程非常流畅。

  • 除了导出功能外,导入功能同样体验更佳

因为没有制表符、换行符等问题,在Excel表格上快速加工好自己想整理的属性数据如显示文件夹、数字显示格式等。只需反向操作,更新属性时,选择当前修改好的属性信息,即可完成导入更新操作。

相对来说,Tabular Editor还要按要求加工好数据,再导出为tsv格式,再进行导入,过程非常麻烦。且存在换行符、制表符错乱问题,导出的数据需要整理很长时间,导入数据时,如果需要修改DAX表达式等含有换行符、制表符的,最终只能得到错误的结果。

  • 在新建、删除操作上PBI催化剂体验亦更好

上述导出的对象属性清单,在PBI催化剂中,甚至可以复用此清单,只需进行Excel环境的筛选、删除、新增操作,最终确定需要新建或删除的记录,直接一键完成对模型对象的新增或删除操作。

而对应的Tabular Editor来说,实现这些效果,要写很长的代码段来完成。

二、批量格式化DAX表达式

在Tabular Editor里,有一个很好的交互效果,程序可识别当前界面选择的对象如度量值、计算列等对象。可以多选。最终通过遍历的方式拿到选择的清单如:Selected.Columns、Selected.Measures等。

诚然,这些为批量性操作带来了可能,但单从界面操作来说,还是不能直接零代码实现,就算使用了高级脚本的代码编写操作,因为其Selected对象不能跨文件夹选择对象的原因(多个显示文件夹里的多个度量值不能同时选定,只能某个显示文件夹里的度量值可批量选定),也是不能真正一次性选择到自己想格式化的完整 清单。

这些种种的缺陷和弊端,在PBI催化剂里,都已经不是问题,将DAX表格式清单导出Excel后,然后简单进行筛选操作,即可完成需要格式化的清单选择,然后下一步骤就是耐心等待格式化的完成(调用的是DaxFormatter的网站接口,国外网站访问有些慢)。

三、按关键词查找某个对象信息

当模型越来越复杂后,想查找某个对象时,已经不能仅仅凭记忆来完成此事,搜索功能是必然需要的。

在Tabular Editor的界面来说,其提供了Filter的功能,可以在下图红框处输入关键字,然后对模型进行检索,返回包含关键字的对象信息。

上述所示的结果,其搜索的范围仅为对象的Name属性如度量值的名称,但如果需要搜索的是其他属性时,其使用的方式就变得复杂许多,同样需要用到C#语言的知识,如果不懂C#将难以操作。

例如要查看度量值的表达式内容包含SUM关键字::Expression.ToUpper().Contains("SUM"),编写不容易,修改也很不容易。

具体的方式可参阅以下网址:

https://github.com/otykier/TabularEditor/wiki/Advanced-Filtering-of-the-Explorer-Tree

在PBI催化剂里,特别对于高频的DAX表达式(度量值、计算列、计算表),采用名称和表达式关键词一并查询,全程界面操作,体验也是非常棒。查询到结果后,对其结果进行编辑后的保存、删除及对应的依赖与反依赖关键都在同一界面完成,也是非常流畅符合实际的操作流程。

当然其他更为复杂的属性搜索,可以重新回到遍历属性功能里,将所有属性都遍历导出到Excel中,再从Excel中简单的查找、筛选功能,发现最终想找到的对象及其信息。如下图中的partition对象,将其所属的表信息、对应的原始查询信息,都轻松地查询得到。如果让TabularEditor通过其界面来完成,将是非常复杂的过程。

四、批量生成扩展度量值

在Tabular Editor的高级脚本Wiki中,也提到这个使用场景,的确非常刚需,能够一次性批量生成众多度量值,这个功能在实际项目里,太让人喜爱了。

在PBI催化剂里,最起码的提升是零代码化了,整个操作体验,更符合使用工具人的习惯

结语

Tabular Editor无疑是一款非常优秀的PowerBI建模辅助工具,特别对于企业级PowerBI项目来说,面对复杂的数据模型,没有工具的提升,单纯使用微软原生的开发工具,效率非常低。

而在Tabular Editor之上,PBI催化剂虽然技术含量不高,但论及其使用友好度,也是较Tabular Editor更胜一筹,青出于蓝

同时也因为两者的开发者知识体系及面对的服务群体不同,PBI催化剂,更适用于没有.NET语言基础的纯工具使用群体,特别是从Excel用户过渡而来的PowerBI爱好者。

在批量性操作方面,相信PBI催化剂不会令任何一位PowerBI资深爱好者失望,你们苦苦找的外部工具本土化的就是PBI催化剂莫属了。

相关推荐

得物可观测平台架构升级:基于GreptimeDB的全新监控体系实践

一、摘要在前端可观测分析场景中,需要实时观测并处理多地、多环境的运行情况,以保障Web应用和移动端的可用性与性能。传统方案往往依赖代理Agent→消息队列→流计算引擎→OLAP存储...

warm-flow新春版:网关直连和流程图重构

本期主要解决了网关直连和流程图重构,可以自此之后可支持各种复杂的网关混合、多网关直连使用。-新增Ruoyi-Vue-Plus优秀开源集成案例更新日志[feat]导入、导出和保存等新增json格式支持...

扣子空间体验报告

在数字化时代,智能工具的应用正不断拓展到我们工作和生活的各个角落。从任务规划到项目执行,再到任务管理,作者深入探讨了这款工具在不同场景下的表现和潜力。通过具体的应用实例,文章展示了扣子空间如何帮助用户...

spider-flow:开源的可视化方式定义爬虫方案

spider-flow简介spider-flow是一个爬虫平台,以可视化推拽方式定义爬取流程,无需代码即可实现一个爬虫服务。spider-flow特性支持css选择器、正则提取支持JSON/XML格式...

solon-flow 你好世界!

solon-flow是一个基础级的流处理引擎(可用于业务规则、决策处理、计算编排、流程审批等......)。提供有“开放式”驱动定制支持,像jdbc有mysql或pgsql等驱动,可...

新一代开源爬虫平台:SpiderFlow

SpiderFlow:新一代爬虫平台,以图形化方式定义爬虫流程,不写代码即可完成爬虫。-精选真开源,释放新价值。概览Spider-Flow是一个开源的、面向所有用户的Web端爬虫构建平台,它使用Ja...

通过 SQL 训练机器学习模型的引擎

关注薪资待遇的同学应该知道,机器学习相关的岗位工资普遍偏高啊。同时随着各种通用机器学习框架的出现,机器学习的门槛也在逐渐降低,训练一个简单的机器学习模型变得不那么难。但是不得不承认对于一些数据相关的工...

鼠须管输入法rime for Mac

鼠须管输入法forMac是一款十分新颖的跨平台输入法软件,全名是中州韵输入法引擎,鼠须管输入法mac版不仅仅是一个输入法,而是一个输入法算法框架。Rime的基础架构十分精良,一套算法支持了拼音、...

Go语言 1.20 版本正式发布:新版详细介绍

Go1.20简介最新的Go版本1.20在Go1.19发布六个月后发布。它的大部分更改都在工具链、运行时和库的实现中。一如既往,该版本保持了Go1的兼容性承诺。我们期望几乎所...

iOS 10平台SpriteKit新特性之Tile Maps(上)

简介苹果公司在WWDC2016大会上向人们展示了一大批新的好东西。其中之一就是SpriteKitTileEditor。这款工具易于上手,而且看起来速度特别快。在本教程中,你将了解关于TileE...

程序员简历例句—范例Java、Python、C++模板

个人简介通用简介:有良好的代码风格,通过添加注释提高代码可读性,注重代码质量,研读过XXX,XXX等多个开源项目源码从而学习增强代码的健壮性与扩展性。具备良好的代码编程习惯及文档编写能力,参与多个高...

Telerik UI for iOS Q3 2015正式发布

近日,TelerikUIforiOS正式发布了Q32015。新版本新增对XCode7、Swift2.0和iOS9的支持,同时还新增了对数轴、不连续的日期时间轴等;改进TKDataPoin...

ios使用ijkplayer+nginx进行视频直播

上两节,我们讲到使用nginx和ngixn的rtmp模块搭建直播的服务器,接着我们讲解了在Android使用ijkplayer来作为我们的视频直播播放器,整个过程中,需要注意的就是ijlplayer编...

IOS技术分享|iOS快速生成开发文档(一)

前言对于开发人员而言,文档的作用不言而喻。文档不仅可以提高软件开发效率,还能便于以后的软件开发、使用和维护。本文主要讲述Objective-C快速生成开发文档工具appledoc。简介apple...

macOS下配置VS Code C++开发环境

本文介绍在苹果macOS操作系统下,配置VisualStudioCode的C/C++开发环境的过程,本环境使用Clang/LLVM编译器和调试器。一、前置条件本文默认前置条件是,您的开发设备已...