数据分析系统介绍
项目介绍
什么是BI?
BI是商业智能(Business Intelligence)的缩写。它是一种通过收集、分析和呈现数据来帮助企业做出更好决策的技术和过程。BI通常涉及使用各种数据仓库、数据挖掘和数据分析工具,以提取有关企业绩效、市场趋势、客户行为等方面的信息。这些数据可以被转化为可视化图表、报表和仪表盘,可协助企业管理层了解他们所运营的公司的情况,并根据这些信息制定更明智的商业决策。
类似于下图:
BI 商业智能:数据可视化,报表可视化系统
主流BI平台:帆软BI、小马BI、微软Power BI
传统BI平台:
1.需要人工上传数据
2.需要人工推选分析要用到的数据行和列(数据分析师)
3.需要人工选择图表类型(数据分析师)
4.生成图表(保存配置)
本智能BI平台:
区别于传统的BI,用户(数据分析师),只需要导入最最最最原始的数据集,输入想要进行分析的目标(比如帮我分析一下网站的增长趋势),就能利用AI自动生成一个符合要求的图表以及结论。
优点:让不会数据分析的用户也可以通过输入目标快速完成数据分析,大幅节约人力成本,将会用到 AI 接口生成分析结果
会用到AI接口
此项目的BI平台
区别于传统的BI,用户(数据分析者)只需要导入最原始的数据集,输入想要进行分析的目标(比如帮我分析一下网站的增长趋势),就能利用AI自动生成一个符合要求的图表以及分析结论。此外,还会有图表管理、异步生成等功能。
优点:让不会数据分析的用户也可以通过输入目标快速完成数据分析,大幅节约人力成本,将会用到 AI 接口生成分析结果
需求分析
1.智能分析:用户输入目标和原始数据(图标类型),可以自动生成图表和分析结论
2.图表管理
3.图表生成的异步化(消息队列)
4.对接AI能力
项目架构图
基础流程
基础流程:客户端输入分析诉求和原始数据,向业务后端发送请求。业务后端利用AI服务处理客户端数据,保持到数据库,并生成图表。处理后的数据由业务后端发送给AI服务,AI服务生成结果并返回给后端,最终将结果返回给客户端展示。
要根据用户的输入生成图标,借助AI服务
上图的流程会出现一个问题:
假设一个 AI 服务生成图表和分析结果要等50秒,如果有大量用户需要生成图表,每个人都需要等待50秒,那么 AI 服务可能无法受这种压力。为了解决这个问题,可以采用消息队列技术。
这类以于在餐厅点餐时,为了避免顾客排队等待,餐厅会给顾客一个取餐号码,上顾客可以先去坐下或做其他事情,等到餐厅叫到他们的号码时再去领取餐点,这样就能节省等待时间。
同样地,通过消息队列,用户可以提交生成图表的请求,这些请求会进入队列,AI 服务会衣次处理队列中的请求,从而避免了同时处理大量请求造成的压力,同时也影更好地控制资源的使用。
优化流程
优化流程(异步化):客户端输入分析诉求和原始数据,向业务后端发送请求。业务后端将请求事件放入消息队列,并为客户端生成取餐号,让要生成图表的客户端去排队,消息队列根据I服务负载情况,定期检查进度,如果AI服务还能处理更多的图表生成请求,就向任务处理模块发送消息。
任务处理模块调用AI服务处理客户端数据,AI 服务异步生成结果返回给后端并保存到数据库,当后端的AI工服务生成完毕后,可以通过向前端发送通知的方式,或者通过业务后端监控数据库中图表生成服务的状态,来确定生成结果是否可用。若生成结果可用,前端即可获取并处理相应的数据,最终将结果返回给客户端展示。在此期间,用户可以去做自己的事情。
技术栈
前端
1.React
2.Umi+Ant Design Pro
3.可视化开发库(Echarts+HighCharts+AntV)
4.umi openapi代码生成(自动生成后端调用代码)
后端
1.SpringBoot(万用Java后端模板,快速搭建基础框架,避免重复写代码)
2.MySQL数据库
3.MyBatis Plus数据访问框架
4.消息队列
5.AI能力
6.Excel的上传和数据的解析(Easy Excel)
7.Swagger + Knife4j项目接口文档
8.Hutool工具库