阿里创业员工分享公司的BI选型之路!自研、开源的坑都踩过

一、业务背景与需求梳理

年初盘年度计划的时候计划今年要上BI的,但疫情的原因一拖再拖,也正好在那时候需求爆发,各种业务各种问题各种数据各种分析,意识到不上不行了,负荷扛不住啊,于是就开始立项,进行BI选型调研。

 

这里把自己的调研笔记整理成文分享,仅代表个人观点。

公司现在的数据需求主要分为两类:

  • 临时需求:业务突然想看看这波活动的效果怎样,(数据指标的定义可能随时改,随时加)
  • 固化需求:每周要看,每月要看的数据,(数据的定义已经非常明确)。

对于这两类需求,我们现在的处理方案是:

  • 对于临时需求:写HQL到Hive里去查一遍,然后将结果转为excel发送给需求人员。
  • 对于固化需求:编写脚本,结合Hive跑出结果,将结果写入对应DB库,然后通过第三方开源的BI工具进行汇总展现。

这样做简洁明了,但很明显的问题:

  • 开发成本太高:每来一个需求,不管是临时需求还是长期需求,都需要进行定制开发,这种情况下,我们的人力深陷其中。
  • 使用不灵活:一个报表,只能进行展示,没有分析功能,如果要进行分析,需要将数据复制到excel里,利用excel进行处理分析,而我们的数据使用人员不一定具备这种能力。
  • 资源浪费:不同人员开发的报表,很多情况下存在很多重复计算。
  • 体验吐槽:hue的查询速度特别慢,做select from简单的查询,要等一分钟以上(底层引擎tez太慢!!)

在这种情况下,我们准备构建其实就是选型一个多维分析平台,让业务方自己能够取数,而且最好不用SQL,因为我们的业务方大部分不会SQL(尽管我们已经开展SQL培训,但还是有一定门槛)。

基于以上,我们进行了BI选型的产品调研。

二、产品试用分析分析

基于大家讨论了解以及几个群里同行推荐比较多的BI工具,一轮筛选后,最后筛选出了下面几个产品作为重点调研对象:Superset、Metabase、FineBI。

1、Superset

阿里创业员工分享公司的BI选型之路!自研、开源的坑都踩过_第1张图片

 

整体上,个人体验下来,感觉如下:

  • 安装教程较为蛋疼,和装mysql一样蛋疼
  • 只支持单表获取,不支持表连接计算速度取决于你的数据库的速度
  • 可视化选择非常丰富,基于经纬度的地理位置可视化方案有好几套
  • 权限控制非常细,细到每个功能键;
  • 可惜最大的问题是对于业务分析师的用户体验不是很好,可视化流程是要对不同图形方案做对应参数设置,权限控制也非常复杂。

各方面的具体情况如下:

1)数据源与数据管理

  • 支持的数据库非常丰富:Druid、Hive、Impala、Kylin、Spark SQL、BigQuery、Pinot、ClickHouse、Google Sheets、Greenplum、IBM Db2、MySQL、Oracle、PostgreSQL、Presto、Snowflake、SQLite、SQL Server、Teradata、Vertica、支持上传本地CSV文件
  • 数据表模型的管理,可设置字段类型,维度/可否过滤/可否做时间列,二次加工字段,统计指标
  • chart可用的数据表得一个一个从数据库里添加(SQL工具箱可以全部看到),不是很方便。
  • 深度支持durid

2)chart单图&dashboard看板

  • 单图制作流程:选择数据源(表或视图)->选择图表类型->设置图表参数(指标/维度/过滤条件)。选择数据源只能从数据表列表页选择,进到分析页面后无法更换数据源;由于切换不同的图表类型时就要按照不同图重新填写参数,在自助分析时用起来不大方便;
  • 支持的可视化图形种类十分丰富,48种可视化方案;
  • 看板的过滤功能非常弱,连最基本的日期过滤组件没有,通过单图中的过滤器组件实现,只能针对单个数据表做出过滤组件,然后应用到看板上,此功能也很不方便。
  • 提供简单的图表钻取探索功能(直接跳入到单图里面),但不支持图表的联动;
  • 看板不能直接复制克隆,要做复制一个看板只能重新编辑选择单图;
  • 看板支持自动刷新,刷新最小时间粒度为10秒


3)SQL查询

  • 支持关联填补字段/表信息
  • 支持跨库关联查询
  • 一个多选项卡环境,一次处理多个查询
  • 查询结果可视化,需要保存成视图,再跳转到chart页面;且需要对该视图做赋权(过程非常不方便)
  • 可对查询历史记录做搜索;
  • 支持使用Jinja模板语言 进行模板化,该语言允许在SQL代码中使用宏

4)权限管理

  • 通过对角色设置权限,用户指定角色,实现权限的控制
  • 权限控制的粒度非常细,支持功能型的权限控制(表的修改可细分到删除,新增操作),支持对菜单,数据源,数据表,字段,图表,看板的权限控制
  • 权限的配置非常复杂,繁琐
  • 不支持数据行级控制

5) 二次开发

  • 技术架构:Python+Flask+Recat+Redux+SQLAlchemy
  • 原属Airbnb的开源项目,背后有大公司团队支持维护,版本更新,bug修复,二次开发有较大保障
  • 支持restful API

2、Metabase (开源,gihub star 15,670)

阿里创业员工分享公司的BI选型之路!自研、开源的坑都踩过_第2张图片

 

整体上,个人体验下来,亮点特色如下:

  • 交互体验对业务人员非常友好。通过一个对看板和单图做了一个全局搜索的功能,营造一种”ask a question“的智能场景,即通过搜索框咨询,系统告诉你答案,且整个产品的界面非常简洁明。
  • 制作单图时非常简单,以数据为中心,去选择不同的图形(不可选的图形自动打灰)。基本做到了半分钟就能完成一个单图的分析。
  • 但但是最大的不足是权限管理实在太弱,只有可修改/可见的粗粒度控制,对表是否可删除都没法单独控制。

各方面的具体情况如下:

1)数据源与数据管理

  • 支持的数据库相对较弱:Postgres、MySQL、SQL Server、Redshift、SQLite、Google BigQuery、H2、Oracle、Vertica、Snowflake、MongoDB、Druid、Presto、SparkSQL
    (特别需要注意的是:其中Druid的版本为2.0版本,所以不支持sql查询,威力大打折扣;另外也不支持Hive,Kylin)
  • 统一的数据模型管理入口,添加数据表/视图后,设置维度/度量字段(该部分做得很细,设定的类型做了很丰富的扩展)
  • 提供定时任务,数据库同步(小时级别)
  • 自助的表字段信息透视功能,智能化探索,自动出看板,自动关联数据的分布(加分酷炫功能)

阿里创业员工分享公司的BI选型之路!自研、开源的坑都踩过_第3张图片

 

2)chart单图&dashboard看板

  • 单图制作流程非常简单:选择数据源->选择过滤条件->选择分析指标->选择分组维度->选择可视化类型
  • 支持的可视化图形种类仅能满足基本需求,14种可视化方案(包含漏斗、带变化的数字、地图)
  • 对一些图表可做细节控制,比如表单按条件控制行颜色,调整字段位置,显示迷你彩条,前后缀设定
  • 支持基本的过滤条件,包含日期段(通过筛选器的字段与单图中字段的关联)
  • 提供简单的图表钻取功能,但不支持图表的联动
  • 可一键复制已有看板
  • 自动刷新数据最小粒度到1分钟
  • 分享上支持:公开链接,公开嵌入(博客网页),在应用中嵌入
  • 使用Pulses按计划发送数据给Slack(一个国外的聊天工具)或发送电子邮件

3)SQL查询

  • 支持关联填补字段/表信息
  • sql查询结果可直接切换图形展示方案
  • 不支持跨库关联查询
  • 原生查询中的变量允许使用筛选组件或URL参数来动态替换查询中的值

4)权限管理

  • 通过对角色设置权限,用户指定角色,实现权限的控制
  • 权限设置力度非常弱,只能设置是否可访问权限(可访问的数据可能直接被删除)
  • 权限设置对象较浅:仅可对数据源,数据表,图表,分析项目集合的权限控制,不到数据行级
  • 字段级的字段控制可设置可见不可见(敏感字段场景),但不能分角色管理

5)二次开发

  • 技术架构:Clojure+Recat+Redux
  • 提供了完整的API文档,可凭借丰富的API与文档完成许多二次开发

3、FineBI(商业)

(此处已添加小程序,请到今日头条客户端查看)

  • 5分钟完成数据分析,零代码操作,点击和拖拽完成分析,可半小时内作出数据报表。
  • 满足多样的分析需求,数据处理,探索式OLAP分析,自助数据分析
  • 主打自助数据集功能,普通业务人员就能对数据做筛选、切割、排序、汇总等,自助灵活地达成期望的数据结果
  • 一键实现数据共享与管控,细致精准的数据权限管控,数据和报告可在全公司内分享,分享结果实时更新
  • 支持超大数据量分析,采用先进的列式存储,具备高效计算能力和强大的数据压缩能力,支撑前端快速数据分析。

阿里创业员工分享公司的BI选型之路!自研、开源的坑都踩过_第4张图片

 

整体上,个人体验下来,亮点特色如下:

  • 上手使用需要适应下流程,先配置数据,处理自助数据集,再是可视化仪表板和图表,有点懵
  • 制作可视化非常简单,交互有点类似Tableau,拖拽数据字段到维度框,立马呈现可视化,然后再基于可视化组件构建仪表板
  • 有联动钻取功能大,也很智能,能自动关联到共性字段
  • 数据处理功能很强大,自助数据集,能对数据处理的功能很多,包括分组汇总、修改数据字段、表合并等等
  • 最大的亮点,权限控制非常细且实用,能细分到原始数据源、处理后的数据集、仪表板,能对不同角色用户管理,包括职位、部门等,有管理员和用户等权限管控,有点OA的味道,算是这几个里面最强大的

各方面的具体情况如下:

1)数据源与数据管理

  • 支持的数据库非常丰富,下图可见
  • 有个业务包功能,能够对不同的数据源做好分类,比如按部门或者按业务需求
  • 可对数据表进行可视化管理、数据预览、血缘分析、关联视图等

2)chart单图&dashboard看板

  • 可视化制作流程:连接数据源(数据库或导入excel)——自助数据集处理数据——根据数据制作图表组件——制作可视化仪表板。
  • 可视化图表种类丰富,有50多种基本图表,然后加上图表间的重叠使用样式设置能达到100多种样式;
  • 有分组、交叉、明细3种表格类型,特别复杂的表格不支持,有另外的报表软件finereport
  • 仪表板有时间、文本、数值、查询等过滤组件,还有自定义条件过滤,过滤功能比较强大;
  • 提供数据钻取、联动、跳转功能,能在仪表板直接互动,也能和其他仪表板互动,支持图表的联动;
  • 组件、看板都可以直接复用,直接复制即可
  • 有丰富的函数功能,在做可视化时可对数据进行二次的过滤、汇总、排序、以及自己写公式计算
  • 仪表板有定时刷新功能,能单个仪表板、多个仪表板板和单个组件的自动定时刷新,需要JS写定时刷新频率
  • 分享上支持仪表板公开链接,也可挂到它的决策系统中,也可嵌入到网页
  • 仪表板直接分享、仪表板创建公共链接、挂出仪表板。

阿里创业员工分享公司的BI选型之路!自研、开源的坑都踩过_第5张图片

 

3)SQL查询

通过 JDBC 的方式直接连接数据库

  • 支持跨库关联查询
  • 支持SQL数据集,允许写SQL取数
  • 支持可视化的数据预览,在业务包中添加并更新完成数据表以后,业务包编辑界面存在数据预览区域,可以查看已编辑成功的表数据。
  • 可视化关联表和血缘分析
  • 提供实时数据和抽取数据两种计算模式的 BI 工程

4)权限管理

  • 可通过角色设置权限,权限受体包括部门、角色、职务、用户
  • 可对人员管理、目录权限、管理系统、数据连接、数据权限(数据表)、分享权限、定时调度管理权限等设定权限,权限设置力度丰富
  • 权限设置对象较深,可细致到组件还是数据行级

阿里创业员工分享公司的BI选型之路!自研、开源的坑都踩过_第6张图片

 

5) 二次开发

  • 纯java开发,基本是零代码的工具
  • 支持一定的二次开发,有API文档

总结

最后综合选型来看,此次BI选型的选项落在Metabase和FineBI,前者开源,后者商业。

 

开源有其弊端,权限功能太弱,没有平台运维的功能,界面都是英文,我们部门几个开发用还行,但考虑到后面可能面向全公司推广BI,选型上需要工具上手度能被业务方接受,且产品稳定性,需要技术和服务的保障。

 

横竖都是要采购成熟平台的,所以在预算可接受的范围内更青睐后者,功能满足度达90%,具体性能还得等测试,价格大概在二十万~几十万,看并发还有服务项目等。

你可能感兴趣的:(数据库,大数据,数据分析,java,开源)