上一篇《企业级BI为什么这么难做?》,谈到了企业级BI项目所具有的特殊背景,以及在“破局”方面的一点思考,其中谈论的焦点主要是在IT开发项目组外部。本篇会再谈一谈在开发项目组内部,应该如何选择企业级BI的实施方案:是自主研发还是采购商业BI产品?
(写在前面的话:如果你所在的企业预算非常充足,并且处于BI项目的初创期,那么这个问题不存在,后文可以直接略过,以节省大家宝贵的时间。)
接下来会分别从商业BI产品的系统架构和自研技术方案进行介绍与对比。
/请尊重作者劳动成果,转载请标明原文链接:/
/* https://www.cnblogs.com/jpcflyer/p/15685268.html
一、主流商业BI产品方案介绍
近几年国内BI发展如火如荼,已经有不少相对成熟BI产品,这里仅举例介绍几个,供参考。
-
FineBI
帆软的FineBI的核心功能架构如下图所示,主要包括Spider引擎和上层自助分析功能两部分。
其中Spider引擎是核心,也应该是FineBI的核心竞争所在吧,所以这里要重点研究一下。Spider能够支持抽取模式,也能支持直连模式,这也是目前成熟BI都应具备的基础功能。对于抽取模式,Spider的技术架构如下图所示。
可以看出帆软的抽取模式中,底层使用了大数据的相关技术:持久化存储用HDFS,计算引擎使用spark,缓存加速使用了Alluxio......细节描述本篇不再展开。除了FineBI,帆软公司还有FineReport产品支持传统固定报表及复杂报表的制作、简道云产品支持轻应用等。
-
永洪BI
关于永洪BI的技术资料不多,更多的是联合企业共创的解决方案,正面消息居多,说明永洪BI的公关与宣传工作做的十分到位。下面是能找到的官方认可的最偏技术的架构图了。
当然这个图描述的都是各BI产品共性的东西,看不出来有什么亮点(保密工作做的挺好),大家就将就着看一下吧。
-
Smartbi
主要包含三个产品:Smartbi Insight(中国式传统报表)、Smartbi Eagle(自助分析平台)、Smartbi Mining(数据挖掘平台)。
Insight和Eagle产品主要是借助excel实现报表计算与自助分析,Mining的架构图如下:
-
观远guandata
观远也是最近比较火的商业BI工具,其技术架构如下图所示。和帆软差不多,也具有直连和抽取两种模式,均基于spark计算,缓存用的是Cassandra。和帆软不同的是,为加速查询,观远尝试引入了Clickhouse,并且增加了AI方面的功能。
5、BI商业产品对比
从附录1文章中引一张对比图如下所示,综合来看,帆软和观远处于行业第一梯队(该图仅代表源文作者观点,供学习交流使用)。
二、自研技术方案介绍
一般企业级BI从系统架构角度可分为数据存储层、计算加工层、BI展现层等。企业内部基本都会有数据仓库、数据湖等企业级数据存储归档库,也有spark、clickhouse等计算引擎,所以本篇假设企业的数据底座能力已比较完善,已经具备BI工具所需要的存储与计算能力。后面重点说下BI展现层的实现方案。
建议选择在开源BI框架的基础上,按企业需求进行定制化开发。目前开源BI框架有Superset、Redash、Metabase,以及最近越来越红火的Davinci等。
-
Superset
Superset采用技术栈为 Python + Flask + React + Redux + SQLAlchemy ,支持多种数据源和图表类型,在Davinci出现之前,Superset的评价最高,stars数量也是最多的。
-
Redash
Redash采用技术栈为 Python + Flask + AngularJS + SQLAlchemy ,需要手写SQL,对业务人员不太友好,支持数据源较Superset略少。
-
Metabase
Metabase采用技术栈为 Clojure + React + Redux ,是页面布局和体验最好的,适合业务人员使用,但支持数据源少。
下图为Superset、Redash和Metabase的详细对比图(图片来源参考附录2)。
-
Davince
Davinci是宜信在2017年开源的可视化分析工具,面向业务人员/数据工程师/数据分析师/数据科学家,致力于提供一站式数据可视化解决方案 。其架构如下图所示。
相关概念及设计理念可以参考官网https://edp963.github.io/davinci/。对于金融行业来说,选择基于宜信的Davinci进行定制化开发还是比较合适的。(最近有核心成员离开成立了datart项目,对datart感兴趣的可以自行github)。
以上均为敏捷BI开源框架,可能需要做大量的定制化开发工作才能满足企业内部BI用户的需求,需要提前做好开发资源方面的准备。
三、采购商业BI产品与自研方案对比
1、自研
自研的优势在于可以自主进行定制化开发,能够更好的满足用户的需求。
缺点在于对产品经理、技术团队的能力要求比较高,需要非常专业的产品+开发团队,同时由于开发过程中的细节比较多、坑也多,所以在时间、人力资源有限的情况下,项目可能存在实施方面的风险。
另外从0开始建设企业级BI,在产品功能和用户体验方面可能永远追不上专业BI公司的脚步,永远在步别人的后尘,因为商业BI公司都是在市场上摸爬滚打多年、经过时间检验的,所以时间久了,业务满意度可能会持续降低,转而偏向于引入商业BI公司的产品。
2、采购
采购的优势在于能够快速引入产品部署,及时响应业务在BI方面的共性需求,用户体验也会不错。
缺点在于产品的定制化成本比较高,需要有足够的预算支持,在商务方面,也要考虑产品升级、运维等的合作模式。
四、总结
方案 | 优势 | 不足 |
---|---|---|
自主研发,基于开源敏捷BI框架或从0开始搭建企业级BI | 1、可按需满足企业内部数据分析场景2、成本相对偏低 | 1、实施周期长,难以快速释放业务价值2、需要一只非常专业的开发团队3、用户需求场景多,产品设计和功能实现存在难度,对产品经理和开发团队有较高的专业要求 |
采购产品,采购新的BI产品作为企业级BI体系 | 1、快速部署,能够快速释放价值2、业务能够一起参与选型,引入外部先进经验3、功能细节比较完善,项目实施风险小 | 1、定制化开发成本高,难以满足企业内部特殊业务分析场景2、产品与厂商绑定,运维升级需要商务谈判 |
各企业的情况不同,需结合预算、开发资源、上线时间等方面综合考虑决策,部分企业还会涉及到存量BI系统的数据迁移、与企业内部系统进行定制化对接等等内容,所以需要企业因地制宜,自行设计企业级BI方案。当然如果在设计过程中有什么问题,也可以随时与我沟通交流,希望本篇对您所在企业的BI建设能有帮助,也祝各位的企业级BI越来越好。
参考资料: