欢迎来到天天文库
浏览记录
ID:37514547
大小:103.50 KB
页数:11页
时间:2019-05-24
《java千万级别数据处理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、java千万级别数据生成文件思路和优化博客分类: ·java大数据处理javajava大数据java数据处理千万级别数据 一年前写过一个百万级别数据库数据生成配置xml文件的程序,程序目的是用来把数据库里面的数据生成xml文件.程序可以配置多少文件生成到一个文件中去. 程序刚开始设计的时候说的是最多百万级别数据,最多50W数据生成到一个xml文件里面去,所以在做测试的时候自己也只是造了100W的数据并没有做过多数据量的测试,然后问题就来了....由于程序使用的局点数据量巨大
2、,需要生成xml文件的客户资料接近千万级别的程度,而现场对程序的配置大约是100W条数据生成一个xml文件里面去,程序在这样的大数据量下面偶尔会有崩溃. 最近几天现场催的比较紧,最近抽空把这个问题处理了一下,在解决问题的过程中我把解决的步骤和方法记录了下来,正好和大家共享一下 现场提的问题概况: 数据量:生成xml,每个文件100W+条的数据 内存控制:最好不要超过512M 问题详情:在处理70W左右的时候内存溢出一、先来看一下程序要生成的xml文件的结构Xml代码 1.<
3、File> 2. 1 3. 12 4. 03 5. 004 6. 5 7. 0006 8. 1000000 1. 2. 3. 4、isdn>10350719507 4. 1 5. 20110303 6. 20110419 7. 45000 8. 9. ... 10. 二、给大家说一下如何把大数据生成xml文件 1
4、isdn>10350719507 4. 1 5. 20110303 6. 20110419 7. 45000 8.
5、、小数据量的情况下 < 1W条数据 比较好用的方法是使用开源框架,比如XStream直接把javabean生成xml 优点:api操作简单,方便维护 缺点:数据量大的情况下太消耗内存 2、大数据量生成一个xml文件(本程序采用的方法) 自己做的一个可以使用极少的内存生成无限制大的xml文件框架由3部分生成xml文件 第一部分:生成文件头 例如:xxx.toXML(Objecto
6、bj,StringfileName) 第二部分:通过每次向文件里面追加3000(可配置)条数据的形式生成文件块 例如:xxx.appendXML(Objectobject); //object可以是ArrayList或者一个单独的javaBean 第三部分:生成xml文件尾巴 例如:xxx.finishXML(); 程序中的调用:调用xxx.toXML(Objectobj,Stringf
7、ileName)生成文件头之后,可以循环从数据库中读取数据生成ArrayList,通过xxx.appendXML(Objectobject)方法追加到xml文件里面,xxx.finishXML()对文件进行收尾 对框架说明:我上面提供的例子有文件头+文件块+文件尾巴.如果和你们的实际使用文件不太一致的话,可以参考上面提供的思路修改一下即可,主要的方法是把相同的文件块部分分离出来通过追加的形式写入xml文件. 有了思路之后,大家可以尝试着自己写一个类似的大数据处理
8、框架(千万级别以上),如何有什么需要帮助的可以直接联系我,因为是公司的程序,不太敢放出来,怕...... 三、我是如何测试性能和优化的 1、手动排除 根据文件崩溃时候的日志发现是在生成xml的框架里面报的错误,第一想到的是框架有些资源没有释放.于是把自己做的文件生成框架整体的排查了一遍,并且自己写个简单程序生成200万条数据,使用xml框架生成一个xml文件,整个生成过程中任务管理器(xp)查看程序对应的jav
此文档下载收益归作者所有