前不久,一位准备入职阿里的学弟问我,他要做电商数据分析,电商有庞杂的标签、模型、数据和业务逻辑,菜鸟应该要具备什么样的分析能力啊?
我看了他的岗位职责,主要是负责经营决策支持、专题分析和数据看板搭建,对代码算法涉及很少,更适合用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的国内市占率排第一。
现在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.html
https://learn.microsoft.com/zh-cn/power-bi/connect-data/desktop-quickstart-connect-to-data
https://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和Tableau,公司和个人大大小小的看板、报告都是基于FineBI进行搭建,基于其成熟的组件进行BI开发,省了很多事。Tableau则会用来做一些可视化设计的工作。