本文为朱卫军原创,未经授权,禁止转载!

前不久,⼀位准备⼊职阿⾥的学弟问我,他要做电商数据分析,电商有庞杂的标签、模型、数据和业务逻辑,菜⻦应该要具备什么样的分析能⼒啊?

我看了他的岗位职责,主要是负责经营决策支持、专题分析和数据看板搭建,对代码算法涉及很少,更适合⽤BI⼯具来构建业务-数据-洞察的闭环场景。

BI⼯具是⼀类专注于数据驱动业务的分析⼯具,集合了模型开发、可视化、报表设计、实时分析、汇报展⽰等功能,部分还涉及到数仓、ETL,通俗点说就是数据“变现”的⼀站式服务。

目前市场上可选择的BI很多,像Tableau、Power BI、FineBI、永洪BI、⽹易有数、Superset等都是较受欢迎的BI产品。

其中Tableau、Power BI是国外BI,也算家喻户晓了,FineBI等是国内的后起之秀,Superset是Airbnb的开源BI。

如何选⼀个合适的BI分析⼯具?考虑到市场普及度和学习性价⽐,我觉得Tableau、Power BI、FineBI这三款主流BI应⽤⽐较值得花⼼思去学习,⼯作中⽤得更多。

结合我之前使用的⼼得,我⼜特地花了⼤半天去评测了这三款BI,通过搭建⼀个完整的仪表板,来⽐较易⽤性、数据源⽀持、分析建模、可视化搭建、分享汇报、市场普及度等各

⽅⾯指标。

1、认识和使⽤BI数据⼯具

⾸先简单介绍下出场的三位BI选手。

Tableau:

以可视化著称的BI领域⽼⼤哥,看板制作非常精美。它诞⽣于斯坦福大学,后来被saleforce收购,听说现在在国内由阿⾥代理提供服务。

PowerBI:

微软的BI产品,数据处理和建模能⼒⾮常强⼤,当然DAX函数也⾮常难学。基于Excel⽣态,PowerBI的打通性⽐较好,积累了⼤量⽤户。

能⼒全⾯,容易上⼿,可以在浏览器上进⾏⾃助分析。⽐较了解国内⽤户使⽤习惯,更适合国内企业的数据应⽤环境,听说FineBI的国内市占率排第⼀。

现在FineBI更新到了6.0版本,有许多新的功能,⽐如DEF函数、多维智能分析、协同编辑、⾎缘分析等。总得来说,不管从分析能⼒、便捷程度、协同合作等都有了很⼤的进步,对个⼈⾃助分析更加友好。

对很多初学者来说,以为BI就像Excel⼀样,功能就是做做表画画图。

其实不然,使⽤BI⼯具有⼀套完善的流程,⽬地是构建⼀套数据看板,就像产品开发⼀样。

BI和Excel最⼤的不同在于,Excel是个⼈的数据处理表格,适⽤于⼩规模数据的加载、分析、展⽰;⽽BI是基于数据库的⼀站式数据-业务分析平台,偏向于业务信息挖掘。

我把BI开发过程分为认识数据、连接数据、处理数据、分析数据、可视化表达、看板制作,共6⼤步。

最终⽬的是实现对业务的⽀持、洞察、驱动,这是数据分析的核⼼,不然前⾯的⼯作都是花架⼦。

⽐如说我在FineBi上看到的⼀个例⼦,基于电商超市业务搭建的配送分析、商品分析、利润分析、退货分析、客户分析全场景看板,可以及时发现经营数据变化,快速制定决策。

作者基于电商超市业务绘制了BI系统架构,然后针对其中每⼀个业务场景开发数据指标和报表。

我觉得这就是能为业务带来价值的BI分析,上⾯只是案例之⼀,⼤家可以去FineBI⽂档看详细资料。

2、如何连接数据源

BI⼯具基本上都⽀持多维度的数据源,⽐如Excel、⽂本数据、数据库、⼤数据、云平台等。

Excel就是⼤家最常⽤的xlsx、xls⽂件,估计也是个⼈连接数据最多的数据源。
⽂本数据源包括CSV、TXT、JSON、XML等。
数据库包括MySQL、Oracle、SQLServer、Access、MongoDB等,既有关系型数据
库,也有⾮关系型数据库。
⼤数据主要是Spark、Hadoop、Presto等。
云平台⽀持像阿⾥云、华为云、腾讯云、AWS等各种云数据平台。

针对上述常规的数据源,Tableau、Power BI、FineBI都会⽀持。相⽐较Power BI,Tableau和FineBI⽀持的数据源更加丰富,⽐如JDBC驱动(阿⾥云Maxcomputer)、SAP BW、Essbase等。

FineBI对国内云数据的⽀持更加到位,还⽀持⼀些Java API,可以灵活地进⾏数据连接。

三个BI产品连接数据源的⽅法都很简单,且操作数据库⽅法也类似。

Tableau

PowerBI

FineBI

以FineBI为例连接MySQL

具体的连接⽅法可以查看相应BI⽂档

https://help.fanruan.com/finebi/doc-view-94.htmlhttps://learn.microsoft.com/zh-cn/power-bi/connect-data/desktop-quickstart-connect-to-datahttps://help.tableau.com/current/guides/get-started-tutorial/zh-cn/get-started-tutorial-connect.htm

3、如何处理数据

数据导⼊完成后就需要对数据进⾏处理,虽然BI并不承担ETL功能,也很难进⾏复杂的数据处理,但是像筛选、过滤、分组、排序、合并、类型转换等基础功能还是要具备的。

数据处理是BI分析的重中之重,需要重视起来。因为建模分析、可视化表达都需要进⾏数据处理,很少有现成的数据让你⽤。

Tableau、Power BI、FineBI在基础的数据处理能⼒上表现都很好,主要差异体现在交互界⾯的易⽤性上。

Tableau有专门的Prep⼯具⽤对数据进⾏ETL,也可以在Desktop上进⾏简单的数据处理。

PowerBI则接近Excel的界⾯,通过Power Query进⾏数据调整转换,需要⼀定的学习成本。

FineBI数据处理是这三者中最容易上⼿的,通过完善的数据编辑功能,让分析师⾃⼰能轻松处理清洗数据。

编辑数据可实现新增列,分组统计,过滤,排序, 上下合并,左右合并、⾃循环列、⾏列转换等功能,⽽且界⾯⽐较简洁,⼀⽬了然。

⽐如说实现分组功能,通过菜单的分组按钮可实现自定义分组。

PowerBI和Tableau很多基础的数据处理都需要DAX和LOD函数实现,但是FineBI提供的编辑数据功能能覆盖⼤部分需求,更容易⼊⼿。

当然FineBI也提供了⼤量的函数⽤于复杂的数据处理,能满⾜各种分析需求。

我对⽐了下FineBI和Tableau函数,其实FineBI在函数的使⽤上反⽽更简洁,⽽且FineBI最新增加的DEF函数也可以处理更加复杂的分析。

DEF函数的语法是:

def(指标, [维度1,维度2,...], [过滤条件1, 过滤条件2,...])

它以函数中维度作为分组、函数中过滤条件进⾏过滤,实现对指标的计算,在组件的计算中使⽤。

⽐如说针对以下表,设计相应的计算。

该表是分城市不同⻋型的销售情况。

案例⼀:计算不同⻋型A城市的总销售额,不区分⽉份。

使⽤FineBI,新建计算字段,DEF公式可以输⼊:

DEF(SUM_AGG(${销量}*${单价}),[${⻋型},${城市}],[${城市}="A"])

只需⼀⾏代码便可以计算出A城市分⻋型销售额,⾮常简单。

因为DEF是定义静态指标,所以只规定计算了城市、⻋型维度的销售额,不⽀持去钻取计算分⽉汇总。

这样的计算在Tableau需要⽤到if判断函数和FIXED表达式:

if [城市]='A' then { FIXED [城市],[⻋型]:sum([单价]*[销量])} end

这⼀点上FineBI和Tableau代码复杂度差不多,但DEF似乎更加简洁,它把判断语句也集成到DEF中。

案例⼆:计算A城市的销售额,可动态汇总⻋型、⽉份等。

这⾥和案例⼀的区别在于,案例⼆不光只汇总城市、⻋型字段,⽽且根据视图情况,动态汇总其他类别字段。

在FineBI中需要⽤DEFADD函数,可以定义动态指标,输⼊:

DEF_ADD(SUM_AGG(${销量}*${单价}),[${城市}],[${城市}="A"])

对于动态指标,在FineBI中能⽀持钻取计算,选择区域维度中的±即可实现钻取聚合。

这⼀点是⾮常强⼤的,我们可以通过⾃定义维度+动态维度的结合,能实现任何逻辑的聚合。

Tableau实现该功能则通过if判断和INCLUDE表达式:

if [城市]='A' then { INCLUDE [城市]:sum([单价]*[销量])} end

除此之外,FineBI中还有个动态函数DEF_SUB,即排除某特定维度的动态聚合。

这个在Tableau对应的表达式是EXCLUDE,使⽤⽅法和上⾯案例⼀致。

综上对于复杂函数计算,FineBI和Tableau都有相应的解决⽅案,且使⽤复杂度相差⽆⼏,FineBI把判断语句集成到DEF中则更为简洁易懂。

4、如何分析数据

当数据按照需求处理完成后,就需要进⾏数据分析来提取关键信息。

BI中的分析能⼒主要指统计计算、OLAP、趋势判断、预测建模、对外接⼝等。

统计计算很好理解,就是数据的聚合、同环⽐、排序、累计等等。

BI⼯具都会提供基础的统计计算快捷⽅式,覆盖常⽤的需求。
Tableau

FineBI

OLAP是联机处理分析,主要包括钻取、分组、透视、联动、切⽚、切块等分析操作,是BI的主要功能。

Tableau可以连接到OLAP多维数据集,以便在最深层次上探索数据。向下钻取、数据过滤和⾃动⽣成时间序列功能可作为深⼊了解这些多维数据集以及访问数据洞察所需的⼯具。

PowerBI 通过SQL服务器连接到OLAP数据集,它提供了要在报告中显⽰的数据度量列表。在创建报告时,所选维度和可视化选项⼀起显⽰。

FineBI也 提供了多种OLAP 功能:数据钻取、跳转、联动、使⽤过滤组件、Tab组件、⽂本组件、图⽚组件、Web组件、参数。

从计算能⼒来看,Tableau更胜⼀筹,但PowerBI、FineBI也没什么⼤的短板,听说FineBI的Spider 引擎很快,OLAP组件也更加多元。

预测建模是针对历史数据的模型分析,⽐如回归、分类、聚类等,这是BI的⼀⼤亮点。

基本上Tableau、PowerBI、FineBI中都有主流的预测函数,⽐如Tableau中的MODEL_QUANTILE、MODEL_PERCENTILE。

另外还⽀持连接Python、R进⾏建模分析,FineBI、PowerBI⽐较容易实现,Tableau需要安装插件⿇烦⼀些。

除了预测建模,FineBI具备优势的⼀点在于集成了很多商业模型,可以⽤数据分析中,⽐如RFM、AARRR等。

如下是在FineBI中搭建RFM模型:

综上,Tableau、PowerBI、FineBI在分析能⼒上不相伯仲,可能Tableau、PowerBI对复杂模型⽀持和软件性能上稍领先,但是FineBI集成了很多拿来即⽤的模型,⽽且对现实⼯作更具指导意义。

5、可视化和看板制作

可视化表达就是将数据变成能说话的图表,让观众⼀⽬了然,知道你⽤数据表达了什么观点。

BI制作看板的步骤是先制作单个图表,然后拼接成看板。

可视化遵循的逻辑层次是:⼯作表——看板。最基础的单元是⼯作表,⼯作表不同于excel的work sheet,⽽是相当于excel上的⼀个图,或BI上的⼀个视觉对象,是最⼩的可视化单元(⽂字、图⽚除外)。

第⼆级是看板,看板是多个⼯作表在同⼀画布上的集合。看板包括图表、表格、组件、⽂字等,通过钻取/联动/筛选的操作对数据进行主题级别的分析。

前⾯我们也说过,Tableau可视化能⼒最强,图表也更美观。其图表配⾊、结构、渲染⾮常适合商业分析,⼩⽩也能做出⾼⼤上的看板。

PowerBI⽐较微软⻛,说不上好看,但中规中矩,现在也在慢慢变好。

要说国内⼤屏,不要错过FineBI,你⻅过所有的看板、⼤屏、报告,FineBI都能搞定。

⽽且FineBI也能轻松搞定分析报告:

从3个BI的可视化组件来看,基本都能完成⼤多数可视化图表。
Tableau
PowerBI

FineBI

从图表丰富度看,Tableau相对最多,FineBI次之,PowerBI原⽣图表差⼀些,但有插件补充。

FineBI和Tableau的图表搭建都相对简易,都是基于图形语法(The Grammar Of Graphics)设计,以“形状“和对应的“颜⾊“,“⼤⼩“,“提⽰“,“标签“等属性进⾏图表类型替代。

以FineBI为例 ,⽤户可在 图形属性、图形组件样式 中设置图表的颜⾊、标签、图例、⽹格线、背景等属性。

图表组件存在多个指标字段时,每个指标字段的图形属性是可以单独设置的。

⼩结

对⽐Tableau、PowerBI、FineBI三款主流BI⼯具,有以下⼏点:

Tableau更加适合对可视化要求较⾼的专业数据分析师,因为其更灵活,适合做数据探索。但是价格较贵,操作更符合国外⽤户习惯,⼀些布局调整不够友好。PowerBI功能上⾯还是很强⼤的。可以连接的数据源⽐较丰富,数据分析建模能⼒也很强⼤。不过界⾯⽐较传统,⽤起来不熟悉的⼈稍微有点费劲,学习成本会⽐较⾼。FineBI⾮常适合企业搭建业务报告和看板,轻松制作和分享管理,⽽且性能速度、建模能⼒、可视化能⼒、服务能⼒都相对较强。

个⼈可以免费使⽤FineBI,有⼤量的中⽂⽂档可供查阅,如果能沉下⼼来去学习,对于熟悉数据分析⽅法论会有很⼤帮助。

我现在⽤的最多的是FineBI和Tableau,公司和个⼈⼤⼤⼩⼩的看板、报告都是基于FineBI进⾏搭建,基于其成熟的组件进⾏BI开发,省了很多事。Tableau则会⽤来做⼀些可视化设计的⼯作。
回复【BI】获取工具!

对比测评3款BI分析⼯具,还是它最香!相关推荐

  1. QlikSense导入oracle数据,【主流BI分析工具对比】12款顶级BI分析工具最佳用例

    如今的市面上充盈着商务智能(BI)工具,可以解决所有类型业务与行业日益增长的分析需求.然而,哪款(或哪些)分析工具值得购买呢? 在本文中,通过检验来自12家顶级厂商的BI分析工具:Birst.IBM. ...

  2. BI分析工具选型:从PowerBI到FineBI的9个理由!

    现如今,在谈到商业智能(BI)分析工具时,目前国外主要的两个行业领导者分别是微软的PowerBI和Tableau.根据著名国际咨询公司Gartner公布的2017年度北美BI魔力象限报告中内容指出,微 ...

  3. BI工具对比|Smartbi与亿信ABI两款BI数据看板软件对比

    工欲善其事,必先利其器.随着互联网行业的飞速发展,越来越多的企业意识到BI工具对企业的业务发展有很大的推动作用,使得工作效率更高更强.BI工具作为目前最炙手可热的数据分析工具,在数据分析结果的展示方式 ...

  4. cpua55和a53哪个好_OPPOA55和OPPOA53详细参数对比测评详情-哪款更值得购买

    大家都知道今天是oppo手机系列的oppoA55发售的时间,对于很多小伙伴来说oppoA55手机性能的强否是非常重要的,那么今天小编给大家带来OPPOA55和OPPOA53这两款同系列的手机参数对比, ...

  5. SD卡内存卡修复工具哪个好?4款工具对比测评

    现在的内存卡不管是SD卡还是 TF卡还是手机内存卡都或多或少有各种各样的问题,内存卡又不像U盘可以用 量产工具修复,如果出现无法格式化,不能读出数据,不能打开等问题受伤的不止是数据还有内存卡本身也没法 ...

  6. 韶音OpenRun Pro和南卡Runner Pro3哪款更值得入手,看看对比测评

    每个人对于耳机的需求都不一样,有的人是为了跑步时使用,有的人是用于通勤路上打电话,有点人则是用于听音乐.针对不同的需求,市场也出现了不同类型的耳机,骨传导耳机也是近几年兴起的一类,南卡和韶音作为骨传导 ...

  7. 漫步者蓝牙自动断开_真无线主动降噪耳机哪家强?4款500元价位ANC耳机对比测评 漫步者TWS NB2 OPPO W51...

    得益于蓝牙5.0技术的成熟和普及,2020年真无线蓝牙耳机迎来了百家齐放.百家争鸣的盛况,我们消费者已经可以用两三百以内这样很低的价格买到一副彻底摆脱了耳机线的束缚.连接稳定.音质还不错,延迟也很低的 ...

  8. 几款树莓派外壳散热器对比测评推荐

    几款树莓派4B外壳散热器对比测评推荐 #树莓派# 背景故事 相信很多朋友新入手树莓派后,会有2个疑问:1.是否需要增加散热?2.应该用什么样的方式散热?下面一一解答一下. 是否需要散热? 实际网测树莓 ...

  9. java 对比工具_Java几款性能分析工具的对比

    在给客户进行应用程序维护的过程中,我注意到一些关于高负载条件下的性能问题.理论上,增加对应用程序的负载会使性能有所下降,但是我认为性能下降的比率远远高于负载的增加,同时我也发现,性能可以通过改变应用程 ...

最新文章

  1. Spring Boot 2.4.5、2.3.10 发布
  2. 支付宝服务商子商户_支付宝服务商新功能,无需商家花钱的消费券怎么参与
  3. 【Java 虚拟机原理】Class 字节码二进制文件分析 六 ( 属性类型 | Code 属性 | 属性名称索引 | 属性长度 | 操作数栈最大深度 | 局部变量存储空间 | 字节码长度 )
  4. 数据流通与交易国家实验室成立 由上海牵头组建瞄准行业重大需求
  5. JVM:方法区可以GC吗?
  6. page和其它几个内置对象(转)
  7. boost::multi_array模块测试 index_gen 的代码
  8. cpython cython_python – 优化Cython中的字符串
  9. hdu-2421 Deciphering Password 数学姿势
  10. 函数c语言桶排算法,C语言基本排序算法之桶式排序实例
  11. 《Python网络程序设计(微课版)》223道习题参考答案
  12. 写给 Python 开发者的 10 条机器学习建议
  13. IAR常用快捷键及技巧
  14. 兔子问题or斐波那契数列
  15. 在浏览器输入URL,按下回车之后的流程?
  16. kkFileView优化PDF图片预览增加JPEG2000标准图片支持
  17. w3wp ash oracle,Oracle session简介
  18. bnuoj 29065 鸣人的查克拉
  19. Shader toy (顺手写两个Gyro)(纯代码写3D)
  20. C++笔记: 函数_Hammond‘s blog

热门文章

  1. 京东联盟自动转链php,求京东联盟php自动转链源码 请 ZenHaBit 继续帮忙
  2. OSAL多任务资源分配机制
  3. 四、PHP处理字符串常用函数
  4. 京东笔试编程题之方块消除
  5. LeetCode——390.消除游戏
  6. 2017年深圳初中终极排名(四大、八大、十大、公办率)
  7. [转贴]linux下解压有密码的rar压缩包
  8. Android 手机上获取手机当前上网IP地址(手机网关给手机号分配的IP)
  9. 批量图像自动分割 grabcut+阈值分割 opencv
  10. python grad_PyTorch中model.zero_grad()和optimizer.zero_grad()用法