文章目录
- 积木报表Excel数据量大导出慢导不出问题、大量数据导不出问题优化方案和分析解决思路(优化前一万多导出失败,优化后支持百万级跨库表导出,已开源)
- 反馈官方进度
- 跟官方反馈这个方案后,官方直接优化了但是把原本这个免费的大数据导出做成了收费功能!绝了,我直接把我方案开源
- 优化结果
- 需求背景和解决方案的思考
- 解决方案
- 流程描述:
- 关键代码
- 引入easy excel
- 新建数据库表
- 识别所需注解、基类
- 下载中心服务(报表下载的导出任务)
- 数据跨库获取工具
- 拦截切面
- 报表下载任务处理事件
- 透传信息
- 给前端暴露接口
反馈后看到后续的版本里有说升级了这个,于是我升级了包测试,直接这个功能需要企业版才给用了,寄,不如直接用下载中心模式得了,有空把这个下载中心的代码抽出来封装好开源放github 0
下载中心这个能力抽出来脱敏成开源项目已准备的差不多了,准备好后更新文章,帮忙点star支持开源
地址:https://github.com/HumorChen/JimuExportDataExtension
流程描述:
识别并拦截积木导出操作,透传导出时参数生成自己设计的导出任务,异步执行导出任务(自行实现积木导出的逻辑),并使用高性能的阿里巴巴开源的EasyExcel工具,最后将EasyExcel导出的表格文件上传到OSS变为表格URL(记得做安全防护,避免表格泄漏)
关键代码
大部分代码是不需要你改的,你可以根据自己项目结合使用,例如OSS上传的地方改为你自己的。后面的代码有点长~需要的人依次把代码弄进自己项目。
引入easy excel
新建数据库表
下载任务
使用mabatis plus code generator生成service、mapper等文件
识别所需注解、基类
数据获取api所调用服务上方法上标注的注解
示范给数据接口调用的服务加注解
参数基类
结果基类
下载中心服务(报表下载的导出任务)
实现类
数据跨库获取工具
服务接口
服务实现
拦截切面
报表下载任务处理事件
处理器
透传信息
主要是在这个customApiHeader() 方法里DownloadCenterUtil.copyDownloadCenterHeader(request, header);自定义获取数据请求的header这,读取这次积木导出请求的参数信息,写到获取数据请求的header里去
下载中心工具类
异步线程池
给前端暴露接口
DynamicColumnEasyExcelUtil 动态字段EasyExcel工具
到此这篇sqlldr导入数据比较慢(sqlldr导入导出)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/sjkxydsj/29579.html