过早客
  • 首页
  • 节点
  • 成员
  • 广告投放
  • 登录
  • 注册

大量数据写入文件

IT技术 • lou_Mr • 发表于 8 年前 • 最后回复来自 catdoo • 8 年前

今天遇到一个问题,从数据库(oracle)查询出大量数据(百万行,上百列),并将该数据进行处理(特定格式)写入到文件。发现内存溢出。靠单纯的jdbc 好像根本处理不了这么多数据(好像还会超时,jdbc好像在处理结果集默认是60秒)。求助社区大牛有没有什么解决方案?小弟在此先谢谢了。
有想过用线程池(但是最后数据写入的文件是同一个文件如果用多线程是不是汇出问题。)
小弟我还是菜鸟 说得不对的请多包涵

加入收藏 新浪微博 分享到微信 ❤赞 2431 次点击 0 人赞 0 人收藏

打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

共收到22条回复
ZhuLiangliang 8 年前 #1 赞 0

出现内存溢出,是不是一次全部读出来了?

lou_Mr 楼主 8 年前 #2 赞 0

嗯

gocome 8 年前 #3 赞 0

@lou_Mr 试试

conn.setAutoCommit(false);
Statement st = conn.createStatement();
// Turn use of the cursor on.
st.setFetchSize(50);

topology 8 年前 #4 赞 0

我做过mysql大数据量导出 mysql有专门的导出命令 分批导出 一次导出不可能 用多线程不一定合适 磁盘IO有瓶颈

topology 8 年前 #5 赞 0

用多线程你也是在加速内存爆啊

tracymcladdy 8 年前 #6 赞 0

关系型数据库的数据处理用sql都能搞定啊,为什么要读出来处理。

内存溢出的话可以改容器(tomcat?)的最大内存参数和jdbc的最大连接时间。

也可以处理完数据后,用python或者shell批处理写回去。

办法总是有的嘛。。

ZhuLiangliang 8 年前 #7 赞 0

@lou_Mr 可以不要一次读全部数据到内存,可以分批读取。另外,也可以导出为 cvs 或者其他格式,当做文件来处理,会快一些,推荐用 shell 或者 python,当然 Java 来处理也行的。

ZhuLiangliang 8 年前 #8 赞 0

@tracymcladdy 导出个文件,为毛要用上 tomcat 了。。。

tracymcladdy 8 年前 #9 赞 0

@ZhuLiangliang 他用的jdbc多半是跑在容器里哇

ZhuLiangliang 8 年前 #10 赞 0

@tracymcladdy 妥妥的不一定,jdbc 和容器没啥关系吧

topology 8 年前 #11 赞 0

@tracymcladdy 你把设备所有的内存分配过去也不够

tracymcladdy 8 年前 #12 赞 0

@ZhuLiangliang 当然jvm上就能跑,不过你让楼主说话,多半肯定是用ide编译跑在容器上

tracymcladdy 8 年前 #13 赞 0

@topology 我服务器都是64g起的。。算算可以打开多大的文件

lou_Mr 楼主 8 年前 #14 赞 0

@ZhuLiangliang 想过用分批读取 用rownum 就可以实现 但是还有一些业务上的特定需求
例如: 字段type 为1的写入文件时 要进行求和处理 用分批实现的话 业务上好像有瓶颈
不知道还有没有其它思路

lou_Mr 楼主 8 年前 #15 赞 0

@tracymcladdy 用不用容器都可以 用完全的jdbc 也是可以的 另外 您说的 jdbc 跑在容器里 是个啥意思?
用的是完全的jdbc

lou_Mr 楼主 8 年前 #16 赞 0

@gocome 嗯 好的 我试一试 谢谢了

gocome 8 年前 #17 赞 0

@lou_Mr 字段type为1, 怎么读都是为1吧?用上rownum就不为1了? 那这个不是表里的字段啊

topology 8 年前 #18 赞 0

@tracymcladdy 我做的数据量每天是T级别的

lou_Mr 楼主 8 年前 #19 赞 0

@topology 大神 你6 可以提供处理大数据的思路吗 你用的是什么数据库

topology 8 年前 #20 赞 0

@lou_Mr mysql,大数量不要一次性导出,容错低,硬件也吃不了

zhouzhe8013 8 年前 #21 赞 0

数据泵

catdoo 8 年前 #22 赞 0

终于感觉楼上诸位是程序员了……

请绑定手机号后,再发言,点击此处
Guozaoke.com—源自武汉的高端交流分享社区
相关主题
618打算攒一套mac mini,有没有入手过的童鞋,说说体验
开发了一个管理 Linux 服务器的桌面可视化管理工具,求蹂躏
阿里巴巴华中总部今天正式入驻阿里中心·武汉
服务器可视化采用纯前端渲染,这个技术实现难度如何
想配一个台式机,求推荐
最近时间少了, 隔了这么久, 才做了一个网站
做了一款摸鱼软件,有人要试用吗?
有搞嵌入式硬件的吗?
搞了个AI 生图的网站,不需要登录,永久免费
社友们,你们是怎么入编程这行的?

过早客微信公众号:guozaoke • 过早客新浪微博:@过早客 • 广告投放合作微信:fullygroup50 鄂ICP备2021016276号-2 • 鄂公网安备42018502001446号