项目介绍

什么是BI?

BI是商业智能(Business Intelligence)的缩写。它是一种通过收集、分析和呈现数据来帮助企业做出更好决策的技术和过程。BI通常涉及使用各种数据仓库、数据挖掘和数据分析工具,以提取有关企业绩效、市场趋势、客户行为等方面的信息。这些数据可以被转化为可视化图表、报表和仪表盘,可协助企业管理层了解他们所运营的公司的情况,并根据这些信息制定更明智的商业决策。

类似于下图:

商业

BI 商业智能:数据可视化,报表可视化系统

主流BI平台:帆软BI、小马BI、微软Power BI

传统BI平台:

https://chartcube.alipay.com/

1.需要人工上传数据

2.需要人工推选分析要用到的数据行和列(数据分析师)

3.需要人工选择图表类型(数据分析师)

4.生成图表(保存配置)

本智能BI平台

区别于传统的BI,用户(数据分析师),只需要导入最最最最原始的数据集,输入想要进行分析的目标(比如帮我分析一下网站的增长趋势),就能利用AI自动生成一个符合要求的图表以及结论。

优点:让不会数据分析的用户也可以通过输入目标快速完成数据分析,大幅节约人力成本,将会用到 AI 接口生成分析结果

会用到AI接口

此项目的BI平台

区别于传统的BI,用户(数据分析者)只需要导入最原始的数据集,输入想要进行分析的目标(比如帮我分析一下网站的增长趋势),就能利用AI自动生成一个符合要求的图表以及分析结论。此外,还会有图表管理、异步生成等功能。

优点:让不会数据分析的用户也可以通过输入目标快速完成数据分析,大幅节约人力成本,将会用到 AI 接口生成分析结果

需求分析

1.智能分析:用户输入目标和原始数据(图标类型),可以自动生成图表和分析结论

2.图表管理

3.图表生成的异步化(消息队列)

4.对接AI能力

项目架构图

基础流程

基础流程:客户端输入分析诉求和原始数据,向业务后端发送请求。业务后端利用AI服务处理客户端数据,保持到数据库,并生成图表。处理后的数据由业务后端发送给AI服务,AI服务生成结果并返回给后端,最终将结果返回给客户端展示。

要根据用户的输入生成图标,借助AI服务

image-20240418093146287

上图的流程会出现一个问题:

假设一个 AI 服务生成图表和分析结果要等50秒,如果有大量用户需要生成图表,每个人都需要等待50秒,那么 AI 服务可能无法受这种压力。为了解决这个问题,可以采用消息队列技术。

这类以于在餐厅点餐时,为了避免顾客排队等待,餐厅会给顾客一个取餐号码,上顾客可以先去坐下或做其他事情,等到餐厅叫到他们的号码时再去领取餐点,这样就能节省等待时间。

同样地,通过消息队列,用户可以提交生成图表的请求,这些请求会进入队列,AI 服务会衣次处理队列中的请求,从而避免了同时处理大量请求造成的压力,同时也影更好地控制资源的使用。

优化流程

image-20240418093411720

优化流程(异步化):客户端输入分析诉求和原始数据,向业务后端发送请求。业务后端将请求事件放入消息队列,并为客户端生成取餐号,让要生成图表的客户端去排队,消息队列根据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工具库