百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

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

yuyutoo 2025-02-10 14:59 2 浏览 0 评论

一、业务背景与需求梳理

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


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

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

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

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

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

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

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

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

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

二、产品试用分析分析

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

1、Superset

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

  • 安装教程较为蛋疼,和装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)

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

  • 交互体验对业务人员非常友好。通过一个对看板和单图做了一个全局搜索的功能,营造一种”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)
  • 统一的数据模型管理入口,添加数据表/视图后,设置维度/度量字段(该部分做得很细,设定的类型做了很丰富的扩展)
  • 提供定时任务,数据库同步(小时级别)
  • 自助的表字段信息透视功能,智能化探索,自动出看板,自动关联数据的分布(加分酷炫功能)

2)chart单图&dashboard看板

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

3)SQL查询

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

4)权限管理

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

5)二次开发

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

3、FineBI(商业)

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


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

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

各方面的具体情况如下:

1)数据源与数据管理

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

2)chart单图&dashboard看板

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


3)SQL查询

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

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

4)权限管理

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

5) 二次开发

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

总结

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


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


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

相关推荐

史上最全的浏览器兼容性问题和解决方案

微信ID:WEB_wysj(点击关注)◎◎◎◎◎◎◎◎◎一┳═┻︻▄(页底留言开放,欢迎来吐槽)●●●...

平面设计基础知识_平面设计基础知识实验收获与总结
平面设计基础知识_平面设计基础知识实验收获与总结

CSS构造颜色,背景与图像1.使用span更好的控制文本中局部区域的文本:文本;2.使用display属性提供区块转变:display:inline(是内联的...

2025-02-21 16:01 yuyutoo

写作排版简单三步就行-工具篇_作文排版模板

和我们工作中日常word排版内部交流不同,这篇教程介绍的写作排版主要是用于“微信公众号、头条号”网络展示。写作展现的是我的思考,排版是让写作在网格上更好地展现。在写作上花费时间是有累积复利优势的,在排...

写一个2048的游戏_2048小游戏功能实现

1.创建HTML文件1.打开一个文本编辑器,例如Notepad++、SublimeText、VisualStudioCode等。2.将以下HTML代码复制并粘贴到文本编辑器中:html...

今天你穿“短袖”了吗?青岛最高23℃!接下来几天气温更刺激……

  最近的天气暖和得让很多小伙伴们喊“热”!!!  昨天的气温到底升得有多高呢?你家有没有榜上有名?...

CSS不规则卡片,纯CSS制作优惠券样式,CSS实现锯齿样式

之前也有写过CSS优惠券样式《CSS3径向渐变实现优惠券波浪造型》,这次再来温习一遍,并且将更为详细的讲解,从布局到具体样式说明,最后定义CSS变量,自定义主题颜色。布局...

柠檬科技肖勃飞:大数据风控助力信用社会建设

...

你的自我界限够强大吗?_你的自我界限够强大吗英文

我的结果:A、该设立新的界限...

行内元素与块级元素,以及区别_行内元素和块级元素有什么区别?

行内元素与块级元素首先,CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,分别为块级(block)、行内(inline)。块级元素:(以下列举比较常...

让“成都速度”跑得潇潇洒洒,地上地下共享轨交繁华
让“成都速度”跑得潇潇洒洒,地上地下共享轨交繁华

去年的两会期间,习近平总书记在参加人大会议四川代表团审议时,对治蜀兴川提出了明确要求,指明了前行方向,并带来了“祝四川人民的生活越来越安逸”的美好祝福。又是一年...

2025-02-21 16:00 yuyutoo

今年国家综合性消防救援队伍计划招录消防员15000名

记者24日从应急管理部获悉,国家综合性消防救援队伍2023年消防员招录工作已正式启动。今年共计划招录消防员15000名,其中高校应届毕业生5000名、退役士兵5000名、社会青年5000名。本次招录的...

一起盘点最新 Chrome v133 的5大主流特性 ?

1.CSS的高级attr()方法CSSattr()函数是CSSLevel5中用于检索DOM元素的属性值并将其用于CSS属性值,类似于var()函数替换自定义属性值的方式。...

竞走团体世锦赛5月太仓举行 世界冠军杨家玉担任形象大使

style="text-align:center;"data-mce-style="text-align:...

学物理能做什么?_学物理能做什么 卢昌海

作者:曹则贤中国科学院物理研究所原标题:《物理学:ASourceofPowerforMan》在2006年中央电视台《对话》栏目的某期节目中,主持人问过我一个的问题:“学物理的人,如果日后不...

你不知道的关于这只眯眼兔的6个小秘密
你不知道的关于这只眯眼兔的6个小秘密

在你们忙着给熊本君做表情包的时候,要知道,最先在网络上引起轰动的可是这只脸上只有两条缝的兔子——兔斯基。今年,它更是迎来了自己的10岁生日。①关于德艺双馨“老艺...

2025-02-21 16:00 yuyutoo

取消回复欢迎 发表评论: