前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Tableau/PowerBI的“割裂”和帆软BI的“集成”

Tableau/PowerBI的“割裂”和帆软BI的“集成”

作者头像
Tableau喜乐君
发布2024-11-25 17:12:23
发布2024-11-25 17:12:23
2200
举报
文章被收录于专栏:Tableau喜乐君Tableau喜乐君

上周,一位Tableau客户辗转发来“问题”,说帆软销售给他们发了一个功能对比清单,大致如下:

  • 不能够将工作表直接复制到其他工作簿中‍
  • 仪表板较多时,不能清楚地知晓工作表引用关系
  • 数据准备:Desktop的数据预处理功能有限,高阶的数据处理需要使用Prep builder,但支持的数据源有限,且数据量大时计算性能会变差
  • 分享与协作:不支持协作场景‍
  • 权限管理:行列权限配置功能局限,运维成本高
  • 数据填报:不支持填报(填报难道属于分析?)

你看前面几道题,简直是“自己打脸题”;对方对 Tableau 的了解远远不及我对帆软的了解,这样的对比只能显得很低劣。

不过,在这里有一个很有意思的对比,非常值得深思和展开。我在多年前和帆软产品经理沟通时,他们就觉得Tableau 把问题弄复杂、误入歧途了:‍‍‍‍‍‍‍‍‍

“帆软 BI 努力把数据准备和分析整合在一起,这对于用户更友好;而 Tableau 还要区分 Prep Builder 和 Desktop,这种‘割裂’是不好的。”‍‍‍‍‍‍‍‍‍‍‍‍

FineBI6.0‍‍

我最近一两年,一直在暗暗地研究 DAX 语言,从而通往我的终极目标:《业务分析通识》一书。近期多有顿悟,我可以结合 Tableau 、PowerBI 和 DAX 发展的相似性,来更好地回答这个问题了。

‍‍‍‍‍‍‍‍‍‍‍‍‍

01—整合还是分离?‍‍‍‍‍‍‍‍

在2018年之前,Tableau 还没有 Prep Builder ,彼此 Desktop 如日中天,但也暴漏了诸多问题:无法完成复杂的数据处理,比如跨 Excel 的 Union、聚合后再转置、行级别的表计算(窗口函数)、数据写入等等。

面对这样的问题,产品经理自然有两个方向:在 Desktop 上“叠床架屋”,比如开放行级别表计算(比如 RANK 可以在明细上排序);或者单独开发一个专门的工具,类似于 Talend、Kettle,功能更加聚焦、强大。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

反观隔壁的PowerBI 家族,曾经的四大金刚各司其职, Power Query 完成数据转换和处理、Power Pivot 完成建模和分析、Power View 完成可视化分析、Power Maps 完成地理空间可视化。即便集成于 Power BI,Power Query 依然以绝对独立的方式存在,甚至还有独立的 M 语言!‍‍‍‍‍‍‍‍‍‍‍

图片来自accountingprofessor.org

还有 DAX,作为对比 SQL 的分析型语言,它既有函数的易用性(各种复杂功能整合成为 expression,故称DAX),又有编程的专业性(比如迭代、类似于 SQL 的 CTE的DEFINE 定义,甚至还能自建表)。‍‍‍‍‍‍‍‍‍‍‍‍‍

最重要的是,DAX 严格区分了 Calculated Columns 和 Calculated Measure两个入口,在语言阶段相当于区分了数据准备、业务分析两大阶段!!‍‍‍‍‍‍‍‍‍‍‍

为什么 Tableau、PowerBI、DAX 都不约而同地走向了“割裂”的道路呢?‍‍‍‍‍‍‍‍‍

因为只有此路,才能通往强大!‍‍‍‍‍‍‍‍‍‍‍

02—Tableau 的两大阶段:Prep + Desktop

如今的业务分析,早已不是当年透视表的年代,在构建一个复杂可视化之前,往往需要多重聚合、彼此嵌套,还要考虑千万、上亿级别数据量下的性能问题,只有专业分工才能胜任!‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

这就好比随着经济的快速发展,人民银行要拆分政策性银行、拆分外汇管理局、拆分金融监管等各种功能出来,相对自成体系。‍‍‍

这就好比餐厅连锁化之后,不仅要有中央预加工厨房,还要有配套的供应链体系、委托加工,这样才能确保餐厅“快捷、卫生、口味”的一致性要求。‍‍‍‍‍‍‍‍‍‍‍‍

Tableau 的方式,就是不在 Desktop 中堆砌与复杂数据准备相关的功能。重点保存行级别不跨行计算,并设计分组、日期字段、拆分等多个功能简化复杂性,以Fixed LOD 完成行级别预先聚合,并兼顾计算优先级调整。在此基础上,重点发展几个功能:‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

- 交互功能,比如参数、集、参数动作、集动作、动态对象可见性、参数关联坐标轴、动态参数……还没有哪家国产 BI ,甚至 PowerBI 能如此优雅地完成(PowerBI 中参数的创建和引用令我“印象深刻”)‍‍‍‍

- 可视化功能,在坚持传统的笛卡尔空间拖拉拽制图的基础上,新增动画、图像角色、线型、地理空间函数、Viz extension 可视化扩展等,在可视化的易用性、美观上,恐怕没有那个产品敢说比 Tableau 更好吧‍‍‍‍‍‍‍‍‍‍‍‍‍

- 建模和性能优化,改进关系模型、共享维度,推出各种 Salesforce、SAP、Oracle 的主题模板,以及“性能加速器”,加速业务开发‍‍‍‍‍‍‍‍‍‍‍‍‍

在 Desktop 之外,这几年重点改进 Server 服务器端和 Prep 的数据准备能力,从而将 Tableau 构建成为“数据仓库+敏捷 BI 一体化的企业分析平台”。‍‍‍‍‍‍‍‍‍‍‍‍

这是 Tableau 的战略,也是业已形成的目标。

在这条路上,Prep Builder以极快地速度完成了六年迭代,至今已经匹敌任何一线的 ETL 工具。结合 Hyper 数据引擎更能完成亿级+的数据处理(某些工具可视化端几千万都慢如老狗,不知道为何来说 Prep 性能弱)。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

- Prep Builder 可以写入多种数据库,可以完成增量更新查询和写入!

- 支持行级别的窗口函数!

- 保留了和 Desktop 完全一样的 LOD 功能!‍‍‍‍‍‍‍

- 转置(行转列、列转行)、聚合、并集、连接一应俱全‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

- 支持插入新行!特别适合自定义展开日期范围‍‍‍‍‍‍‍‍‍

- 批量增加字段前缀、后缀或替换‍‍‍‍‍‍

- 支持流程自动更新、多个流程前后相继的关联任务‍‍‍‍‍‍

- 支持多个处理步骤“分组”,极其灵活的备注

- 支持自定义 SQL,且支持数据世系‍‍‍‍‍‍‍‍‍‍‍‍

- 可以复制节点,可以任意改变次序

……‍

我的各种企业级别项目,Prep 都是我了解业务、快速交付的最佳伴侣,特别是我不熟悉的业务领域,比如第一次完成应收、应付分析,第一次做航空部件和预测性维修分析等。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

简单的流程可以是这样的,结构不复杂,难点是计算的优先级无法在 Desktop 中嵌套实现,而且可以和分析完全独立,多人完成推进:‍‍‍‍‍‍‍‍‍‍

复杂的流程可以是这样的,结构复杂,部分数据节点可以共用,在数据准备的过程中,可以发现很多需求上的疏漏之处!数据准备本身可以成为需求整理的一部分。‍‍‍‍‍‍‍‍‍‍‍‍‍‍

优秀的 ETL 可以帮助分析师发现数据中问题,甚至优化数据处理逻辑。这也是我自己众多项目的体会,数据准备之所以独立,是因为它看似简单,但组合无穷无尽,其复杂性完全对应业务的复杂性。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

同时,ETL是有最优解的,这个是不断优化、改进的过程,应该独立于 Desktop 而存在,方可确保两个阶段的分工迭代。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

03

PowerBI的两大阶段:Query +Power BI

Tableau 如此,PowerBI 也是如此。‍‍‍

PowerBI 甚至走得更远一些,这也让它有点远离业务用户,更靠近 IT 用户。‍‍‍‍‍

- Power Query 不仅将数据准备独立,而且M 语言自成一体!‍‍‍‍‍‍‍

- PowerBI 中看似专注于分析,但DAX 把计算分为两个阶段的精湛设计,使得 PowerBI 能同时身兼数据准备(calculated Columns)和业务分析(measure)两大任务。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

上述两条,任何一条都足以挡住一位分析师的精进之路,特别是 伴随DAX 两个计算阶段而来的 row context、filter context、context transition,更是挡住了一众仰望者。 即便是市面上的不少 MVP,我看在解释相关概念上也多是“鹦鹉学舌”,深陷两位意大利大佬的话语体系不可自拔,为这个伟大的工具遮上了一层厚厚的围栏。

为什么 PowerBI 如此“割裂”呢?

因为它的历史就是诸侯割据而后“分久必合”的时代产物,Power Query 在 PowerBI 整合成立前很久就有了。M 语言延续 Excel 的思路而来,而 DAX 则是基于SQL Server 数据库和 Tabular 而来,没想到最后进了一个家门。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

所以,要批评“割裂”,自然应该是 PowerBI 要挨上一刀。不过,人家的 DAX 同样锋芒毕露,如同倚天屠龙刀一样让人又爱又恨,这是“小丑批评家”没有勇气指摘的。‍‍‍‍‍‍‍‍‍‍‍‍‍

04—帆软 BI 的“整合”之路可好?‍‍‍‍

说完 Tableau 和 PowerBI,我们自然要说说帆软BI 的。硬刚Tableau 的勇气可嘉,只是选了一些不痛不痒的点。而且全然没有意识到,自己之前就是当前批评的样子;未来也大概率就变成批评的样子。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

先看帆软 BI 的分析主题,如下所示,“分析主题”是一个独立的文件,包含数据、组件(图表)和仪表板(多表交互)。从这个意义上说,帆软 BI 追求数据准备和业务分析的整合,而非分割。

不过,如果你认真观察一下它的“数据”,你会发现这几乎就是一个“阉割版的 ETL”界面。它在右侧追求每一步执行的优先级,将行级别的聚合(汇总列,如同 Power Query中的聚合、DAX 的计算列聚合、Tableau 的 Fixed LOD),和转置、合并,甚至行级别排序、删除重复行,都一股脑堆积于此!

看上去棒极了!

如果数据只是几千、几万行的话。

其实在批评 Tableau 和 PowerBI 割裂的时候,帆软应该想反思,为什么迟迟到6.0版本,才把数据和组件作为一个文件出现?这可是 Tableau 将近20年的老设计了,帆软5.0及之前大概率是能力不足所以追求“劳动分工”,现在以为武艺超群了所以可能“天下一统”。

当有人批评“Tableau Desktop 的不能写 RANK( Sales)”的时候,他应该思考,“哪些聪明的斯坦福教授、博士、发明 D3.js 的专家们”为什么会这样设计?不可能是因为知识、才华不如我吧?‍‍‍‍‍‍‍‍‍‍

答案是性能。

为什么 DAX 的 calculated columns 要提前物化?‍‍‍‍‍

为什么 Prep/Query 要独立于 Desktop/PowerBI?

保证性能,在大数据分析中,这是比“复杂”更优先考虑的问题。

所以,当我两年前看到帆软 BI6.0设计成这个样子,再加上它孱弱的计算引擎的时候,我知道它不可能成为国产 BI 的翘楚。‍‍

相比5.0和之前,方向是对了,但是如哈耶克所说“致命的自负”终究会慢慢埋葬。因为设计之初,产品已经对应好了它的未来。

如今的帆软 BI,不过只是站在 Tableau 七八年前甚至更久之前的发展阶段,还在批评“Prep Builder 不应该出现”。这也说明,聒噪的市场和局限的认知,正在把顶层设计者局限在“自以为”的境地上。站在中国特色的场景下,思考当前一两年的“快需求”可以赚到“快钱”,但很可能赚不到“好钱”。

一个优秀的产品应该是10年甚至20年如一日地去精进、迭代。 ‍‍‍‍‍‍‍‍‍‍

当然,还有一个更加深刻的问题,产品经理不得不思考,可以作为本次的思考题,也欢迎各位读者思考和留言。‍‍‍‍‍‍‍‍‍‍

如果这个问题能理解足够深刻,你甚至可以理解 SQL 和 DAX 的“同中之异”和“异中之同”,甚至可以更好地理解 DAX 中的“上下文转换”(因为 SQL 中没有上下文转换)。

为什么都有了 Power Query,Power BI 的 DAX 依然要侵入数据准备的领地?

@喜乐君 咨询顾问|上海唯知唯识创始人‍‍‍‍‍‍‍‍‍‍

业务分析师、数据咨询顾问

Tableau Visionary 2021~2024

《数据可视化分析:Tableau原理与实践》2020.8

《业务可视化分析:从问题到图形的Tableau方法》2021.7

《数据可视化分析:分析原理与Tableau、SQL实践》2023.9‍‍‍

………… MORE …………

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-08-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Tableau喜乐君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档