现在市场上开源BI产品比较多,各个产品的侧重点不同,有的以报表为主、有的以可视化为主、有的以查询分析为主。这里我们选取了一些主流的开源BI产品,从产品功能、可视化能力、数据源支持以及使用文档等方面进行对比,希望对你有帮助。
Superset
由Airbnb贡献的轻量级BI产品,目前在GitHub上有3万多颗星,其受欢迎程度可见一斑。Superset提供了Dashboard和多维分析两大类功能,后者可以将制作的结果发布到Dashboard上也可以单独使用。
数据源方面,Superset支持CSV、MySQL、Oracle、Redshift、Drill、Hive、Impala、Elasticsearch等27种数据源,并深度支持Druid。
Superset语义层建模(被称为Table)时只能基于单表,多表关联要事先逻辑化成视图再使用,这点有点别扭。在Table里要显示地将字段标记成可分组、可过滤,指定聚合方式(计数、求和等),页面在使用时需要选择Groupby(并没有叫做维度)、Metrics和Filter进行查询。
Superset可以在多个时间维度上观察,商业分析中的很多问题都是与时间密切相关的。Superset有4种专门针对时间序列的图表,使用这些图表时,你需要指定一个字段为时间维度,之后就可以对时间维度做丰富的操作。
从不同时间粒度去查看你关心的指标(小时/日/周/月/季度/年)
对时间序列做移动平均,比如看一个指标的7日平均线
可以对时间序列做偏移,再做对比,比如把本周的销售业绩与上周同期放在一张图表中对比
不在图表上显示指标的绝对值,而是显示它随着时间变化的增长速度
Superset还提供了直接使用SQL查询生成图表的方式(SQLLab)来强化临时分析,方便数据分析师编写SQL查询数据。
Superset的可视化效果非常好,直接支持了几十种图形,从前面的截图中可以看到可视化效果很棒。重要的是,它还提供了图形扩展支持,通过开发插件还可以对接任意可视化库,如ECharts、AntV、HighCharts、VX和D3,这点对用户非常实用。
文档方面,Superset表现比较糟糕,写的过于简单,虽然在安装与快速入门方面提供了很完整的文档,但在具体功能的介绍方面文档严重缺失。就算有些功能有文档,文档的结构也很混乱,所以大部分功能只能自己去尝试。
Superset作为一个完整的BI系统,除了Dashboard和多维分析还包括调度和邮件报表,以及系统管理和权限控制等平台管理功能。综合来看,Superset作为大厂开源的BI产品还是非常值得一用。
Grafana
GitHub上的星星数比Superset还多,之所以把它放在第二个来说是因为它的适用范围跟大多数BI产品不太一样,Grafana主要用于对接时序数据库,分析展示监控数据。目前支持的数据源包括InfluxDB、Elasticsearch、Graphite、Prometheus等,同时也支持MySQL、MSSQL、PG等关系数据库。
每种数据源的查询语言和功能明显不同,Grafana可以将来自多个数据源的数据组合到一个仪表板上,但每个面板都要绑定到属于特定组织的特定数据源。
话不多说,上张效果图感受一下可视化效果。
Grafana为不同数据源提供了不同的编辑器,这样可以方便使用特定数据源的查询语法,很牛叉。有时经常那Grafana跟Kibana对比,在数据源种类和查询支持上Grafana要丰富得多。
在可视化构建过程中,面板(Panel)是可视化基本模块。每个面板都提供一个查询编辑器(取决于面板中选择的数据源),通过使用查询编辑器,可以提取显示在面板上的完美可视化效果。有各种各样的样式和格式选项,面板可以在仪表板上拖放和重新排列,也可以调整大小。
Dashboard是Grafana可视化最终展现形式,Dashboard(或特定面板)可以通过多种方式轻松共享。可以向登录的Grafana的人发送链接。可以使用快照功能将当前查看的所有数据编码为静态和交互式JSON文档。这比通过电子邮件发送屏幕截图要好得多。
值得一提的是,Grafana的文档写的很棒,除了很详细外很多操作步骤都录成GIF放到文档中让人一目了然。
在实际业务中,什么情况下选择Superset,什么情况下选择Grafana呢?
时间序列,日志与设备运行数据分析选Grafana;企业生产经营数据分析则可以选Superset。
Metabase
Metabase目前在GitHub上受欢迎程度仅次于Superset,Metabase也是一个完整的BI平台,但在设计理念上与Superset大不相同。Metabase非常注重非技术人员(如产品经理、市场运营人员)在使用这个工具时的体验,让他们能自由地探索数据,回答自己的问题。而在Superset里,非技术人员基本上只能看预先建好的Dashboard,不懂SQL或是数据库结构的他们,很难自己去摸索。
Metabase采用“问问题”的方式实现一步步数据探索,探索的结果可以保存并发布为Dashboard。对于复杂问题还提供了Nativequery允许用户编写SQL或nativequery。
数据源方面,Metabase支持Redshift、Druid、GoogleBigQuery、MongoDB、MySQL、PG等15种数据源。
Metabase社区版的文档写的简单到让你不知所措的地步,表现十分糟糕。好在这个产品使用起来不难(本身定位就是给业务用户使用的)。
Redash
如果说Superset和Metabase是构建一个BI平台,那Redash目标就是更纯粹地做好数据查询结果的可视化。Redash支持很多种数据源,除了最常用的SQL数据库,也支持MongoDB,Elasticsearch,GoogleSpreadsheet甚至是一个JSON文件。目前Redash支持超过35种SQL和NoSQL数据源。
它不需要像Superset那样在创建图表前先定义表和指标,而是可以非常直观地将一个SQL查询的结果可视化,这使得它上手很简易。或者说Redash仅仅实现了Superset中SQLLab的功能,但却把这个功能做到了极致。
Redash有两个非常实用的功能,QuerySnippet与QueryParameters。
QuerySnippet很好地解决了查询片段的复用问题。做数据报表时经常要用到十分复杂的SQL语句,这些语句中肯定有一些片段是可以在多个查询中复用的。在Redash中我们可以将这些片段定义成Snippet,之后方便地复用。
QueryParameters可以为查询添加可定制参数,让这个图表变得更灵活。比如一个移动应用的日活指标,我可能有时要按iOS/Android切分,有时要按地域切分,或是按新老用户切分。在Superset的Dashboard上要做三个表图。Redash里我可以把查询的groupby做为一个参数,这样就可以在一张图上搞定。用的时候,运营人员可以在图表上方的一个下拉框里选择切分的方式,非常直观好用。
Redash的Dashboard可以通过命名来进行分组,Dashboard的名字可以有一个前缀并以冒号结尾,前缀相同的Dashboard就会自动被分为一组。例如“Growth:Daily”,“Growth:Weekly”这两个Dashboard都会被分到“Growth”组下。
Redash在文档方面做得很好,除了快速入门教程以外,每一个功能模块都有文档且条理清晰。
当然Redash也有自己的不足之处,它的可视化种类比Superset逊色不少(不过其实也够用了)。另外,由于它只是纯粹地把数据查询结果可视化,所以也没有Superset里那些对时间维度上的聚合与对比的操作。
CBoard
国内由楚果主导的开源BI产品,分社区版和商业版。CBoard提供了一个BI系统,包括Dashboard、多维分析、任务调度等方面。
数据源方面支持JDBC数据源、ElasticSearch、文本文件(文本需要存放于CBoard应用服务器上面,读取本地文件)、Saiku2.x等。
图形方面直接使用了ECharts,多维分析和Dashboard功能中规中矩,可以满足大部分BI需求。
文档方面由于是国内开源的产品,中文文档对国内用户友好,但文档质量一般在使用过程中还需要不断摸索。
值得注意的是,CBoard社区版和商业版功能差异较大,社区版有很多功能都不支持,使用前要认真评估。
BIRT
与前面提到的几个BI产品注重数据探索和可视化不同,BIRT主要用于报表的开发与呈现,在可视化效果方面表现并不出彩,也不包含多维分析。
BIRT是一个Eclipse-based开放源代码报表工具。BIRT主要由两部分组成,一个是基于Eclipse的报表设计器和一个可以加到你应用服务的运行期组件。
BIRT报表引擎以JAR文件方式打包,可以方便的添加到J2EE应用中。采用Taglib方式很容易在JSP页面上集成报表。
BIRT的文档写的很差,可能跟产品诞生年代久远有关,目前社区也不太活跃,好在网上还可以查到很多资料。
如果你的需求是开发常规报表,那么BIRT绝对是一款可以尝试的工具。与BIRT类似的还有一款JasperReports工具,功能方面大同小异。
润乾报表
润乾报表是国内为数不多开源BI产品,虽然产品名称以报表命名,但实际已包含所有BI功能。从功能上来看,润乾报表可以约等于Superset+BIRT,也就是提供了多维分析、Dashboard和报表以及平台管理功能。
数据源方面,润乾报表除支持MySQL、Oracle等传统RDBMS外,还支持MongoDB、Elasticsearch、Redis、Spark以及HDFS等数据源。同时还可以直接使用Excel、CSV、JSON进行报表开发和数据分析。
在可视化方面,润乾报表表现并不十分显著,产品内置的30多种图形中规中矩。如果想使用效果更好的可视化图库可以通过润乾报表提供的第三方图形接口实现,引入图库文件后修改JS用于接收数据集数据即可完成。这跟Superset等扩展可视化图库的方式不太一样,没有繁琐的插件开发过程,简单方便。
润乾报表提供的多维分析功能与Superset类似,通过在页面上拖拽维度和指标进行数据查询,同时可以进行切片和旋转等操作。润乾报表允许用户直接基于文件分析,也可以编写SQL进行数据查询生成图表,同时为了保证性能还可以使用自有的私有存储格式。
在语义层建模中,润乾报表支持多表关联(JOIN)。特别地,在润乾报表中需要将维度显示制定成一个表,如果没有对应的表则需要建立虚拟表,这样做的好处是前端查询分析界面可以很方便地实现多表实时关联查询,而不必每次都必须基于一个(物理或逻辑)宽表。
可以通过多维分析拖拽图表来组织Dashboard,根据指定(或自定义)布局生成,同时可以使用全局参数进行数据过滤分析。
润乾报表的另外一个优势是复杂报表的处理能力。
我们知道,国内的报表具备很强的本土特征,润乾报表最初是为实现复杂报表而设计的报表工具,是目前主流产品(含商业)中做的最早也是实现得最好的一个。
在这方面,无论使用上面提到的任意一款工具都无法很好满足。
润乾报表的定位跟Redash很像,都希望提供便捷的方式让用户迅速得到分析结果。同时也提供了一个轻量级的管理平台(报表中心)包括资源管理、权限控制以及邮件订阅等功能。
润乾报表提供了BI平台的同时也支持按模块集成,可以将产品中各个模块根据需要单独集成到已有的项目中,这对已有平台系统的用户非常方便。
需要注意的是,润乾报表并非所有功能都开源,目前开源的部分包括:多维分析前端界面、报表中心和Dashboard。如果需要使用基础报表、多维分析服务器等部分则需要付费,不过价格并不高。
总结
最后做一下总结,拉个表格方便对比。
国内BI项目以企业级应用解决方案为主,其需求重点落在多维分析式的自助报表、Dashboard以及一些相关平台管理功能,对于多步骤探索式分析需求相对较少(这部分功能一般由桌面BI解决)。从这个角度上看,作为国内产品的润乾报表,对这些需求的适应性要更好,除了具备常规BI该有功能外,还可以处理本土的复杂报表,在选择开源BI的时候不妨一试。