文章 62
浏览 15135
我用spark导出500万数据

我用spark导出500万数据

背景 最近公司需要实现一个报表功能,需要导出近一段时间内的数据,时间段由用户在页面填写,作为 SQL 参数查询过滤,因为涉及到查询的信息详细,需要关联的表过多和字段过多,以及数据量过大,可能会有性能方面的问题 方案一: 多线程分页多 sheet+ 队列(发布订阅) 网上有很多的方案说了,用多线程分批处理,自己也写了个 demo 实现,多线程分批分页查询 + 发布订阅队列 + 分 sheet 写入,虽然功能实现了,最终测试 500 万数据,结果需要将近 8 分钟了,感觉不太满意这种方式,后面想到我们公司的服务器有大数据方面环境,想着能不能用大数据解决,最终决定用 spark 方案二:spark+cxv 经过查找资料和自己学习,基本掌握了一点 spark 的知识和整合 Java +springboot,发现 spark 天生支持这种大数据量的整合处理 基本思路就是,通过 spark 大数据引擎分布式连接 JDBC 读取数据库的数据,然后写入到 CSV 文件到 hdfs 或者到本地文件系统,最终从 hdfs 或者本地写入搭配 response 响应流给前端下载 @GetMapping("/d....

人民有信仰 民族有希望 国家有力量