数据分析数据挖掘系统
创建于 2026 年 3 月 16 日
项目介绍
本项目在若依 RuoYi-Vue v3.9.1 快速开发框架(Spring Boot + Vue 前后端分离)之上扩展出”数据分析 / 数据挖掘”业务模块,目标是让一套数据从”文件上传”到”图表成果展示”在同一个平台内闭环。项目以旧金山市政府公开的 Employee Compensation(雇员薪酬)数据集为实战对象,该数据集包含部门、职位家族、薪资、加班费、福利、工会归属等字段,天然适合做薪酬结构、加班规律与福利覆盖的多维分析。
系统最终交付两块能力:一是数据集管理,把原始 CSV / Excel 文件变成平台内可查询、可维护的结构化数据集;二是成果画廊,把离线分析(统计分析、数据挖掘)产出的图表统一收纳、按数据分析与数据挖掘两个维度展示,形成”数据入库 → 分析出图 → 平台归档”的完整工作流。
项目架构
系统沿用若依经典的多模块 Maven 工程结构(ruoyi-admin / ruoyi-system / ruoyi-common / ruoyi-framework 等),新增业务代码集中在 ruoyi-admin 的 dataset、gallery 两个 controller 包与 ruoyi-system 的 domain / mapper / service 层,前端在 ruoyi-ui/src/views 下新增 dataset/manage 与 gallery 两个视图。
数据层引入两张业务表:data_dataset 记录数据集元信息(名称、编码、源文件名、文件类型、列数、记录数、列结构 JSON),data_dataset_record 以 JSON 形式存储每一行明细并按 dataset_id + row_no 建索引。画廊模块不落库,通过 ruoyi.gallery.folders 配置(analysis → “分析图片”、mining → “挖掘图片”)把资源目录映射到图片类型,前端按菜单携带的 type 参数加载对应目录。
核心功能
- 多格式数据集导入:仅接受 CSV / XLS / XLSX 文件(前端限制单文件 200MB)。CSV 使用 commons-csv 解析,先经
BOMInputStream剥离 UTF-8 BOM,再统一做 trim、忽略空行与表头规范化(空表头自动命名为column_N,重名自动加后缀去重);Excel 经 Apache POI 的WorkbookFactory读取首个工作表,并用DataFormatter + FormulaEvaluator对公式单元格求值后落库,首行作为表头。 - 大文件分批入库:导入逻辑按 500 条一批调用
batchInsertDatasetRecord批量插入,避免大文件一次性入库撑爆内存与 SQL 长度限制;导入完成后自动回写列数、记录数,前端列表页也给出”针对 80MB 以上大文件分批入库”的明确提示。 - 数据明细管理:每条记录以
data_json保存,查询时cast(data_json as char) like实现任意字段关键字搜索;前端”数据明细”抽屉按数据集列结构动态渲染表格列与录入表单,支持记录新增、修改、删除,删除数据集时级联清空明细,行号与记录数统计自动维护。 - 数据分析 / 数据挖掘画廊:
GalleryController按类型读取图片目录,仅放行 jpg、jpeg、png、gif、bmp、webp、svg 七类扩展名;对配置路径做normalize()规范化并校验必须位于资源根目录下,杜绝目录穿越;返回相对资源 URL、文件大小与修改时间,前端以卡片网格展示并支持点击放大预览。 - 若依生态集成:通过菜单 SQL 注册”数据集管理 / 数据分析 / 数据挖掘”三个菜单及
dataset:manage:*、gallery:view:list按钮权限,导入、增删改、查看均带操作日志,搜索、分页、字典、权限指令全部复用若依原生能力。
功能截图
暂无运行截图。
快速上手
环境要求与若依官方一致(JDK 8+、Maven、MySQL、Redis、Node.js)。初始化数据库时依次执行 sql/ry_20250522.sql(基础库)与 sql/ry_20260409_dataset_manage.sql(数据集与画廊菜单),再修改 ruoyi-admin/src/main/resources/application-druid.yml 中的数据库连接,启动 RuoYiApplication(默认端口 8082):
mvn clean package -DskipTests
java -jar ruoyi-admin/target/ruoyi-admin.jar
前端进入 ruoyi-ui 目录执行 npm install && npm run dev,浏览器访问前端地址并以 admin/admin123 登录。使用流程三步走:
- 在”数据集管理”菜单点击导入,选择薪酬数据 CSV / Excel 文件,等待分批入库完成;
- 点击”明细”查看动态列渲染的数据,用关键字搜索任意字段;
- 把分析图表 PNG 放入
ruoyi/uploadPath/分析图片(或”挖掘图片”)目录,刷新”数据分析 / 数据挖掘”菜单即可看到成果画廊。
总结
项目把若依的管理系统底座与数据分析工作流结合起来:数据集管理解决了”原始文件进系统”的入口问题,双画廊解决了”分析结果出系统”的出口问题,中间的分析计算由离线工具完成,平台承担数据治理、检索维护与成果归档职责,分工清晰、各司其职。实现上对表头规范化、BOM、公式单元格、超大文件分批写入、图片目录穿越防护等细节处理扎实,代码风格与若依原生模块保持一致,可读性和可维护性都不错。后续可继续扩展数据集预览图表(在明细抽屉内直接绘制统计图)、分析任务的在线调度(复用 Quartz),或把画廊图片接入更大尺寸的原图下载与多目录分类,让平台从”展示层”走向”分析执行层”。