java数据可视化平台初步构想
平台架构
权限系统-负责后台用户权限
后台管理系统(oss)-负责后台运营配置相关操作
前端展示-可视化页面展示相关处理
模块划分
第三方平台数据接入:文件管理允许用户上传csv格式,api接口实现第三方数据录入。
项目管理:不同区域的项目,可视化权限独立、可视化模板单独定制、数据隔离,以项目为维度展示数据
系统管理:实现资源-用户-角色等权限控制
组件管理:用户通过组件管理功能创建、编辑等操作,实现数据与组件绑定。
数据发布:可视化大屏模板配置、数据配置、模板保存、数据发布
流程
可视化数据挖掘、采集->存储层mysql数据存储->可视化大屏模板设计->模板组件配置
->数据配置使用sql语句->关联组件与数据入库存储->模板保存->模板发布->生成可视化大屏url
技术实现
shiro:用户-角色-菜单权限控制
mysql:数据存储
redis/ehcache:数据缓存优化
springboot:项目快速构建,集成,部署
百度echarts3.0:数据可视化呈现
swagger:接口文档发布
前后端分离架构:后台直接封装返回echarts要求的option数据
cas:实现不同项目单点登录实现
关键表结构梳理
项目表:项目id 项目名称 项目描述
组件表:组件id 组件类型 组件名称
大屏表:大屏id 大屏名称 大屏描述 项目id 创建者 创建时间
大屏组件信息表:组件信息id 大屏id 排序 组件类型 组件样式(json)
大屏sql信息表: sql信息id 大屏id 排序
权限相关表
用户表
角色表
资源
用户与角色关系表
角色与资源关系表
第三方数据处理
支持csv、api->根据第三方提供的表名、以及数据列名->创建第三方数表->导入数据->后续流程跟现有数据一致
问题
需同时支持报表筛选过滤,分页处理,个人感觉比较麻烦
数据已前后端分离,是否大屏发布时,怎么生成大数据展示url发布。前台只负责渲染数据,是否也可将前台当做一个渲染模板配合,在后台。后台渲染地址也是可配置的。
该方案生成可视化展示,操作人员需要懂sql语法,有一定门槛
实现步骤
1.shiro共用权限平台设计与实现