关于csv文件导出的开源框架很多,可以到
http://sourceforge.net/search/?type_of_search=soft&words=csv去了解学习。在典型的基于java的MVC框架中,当要下载数据时需求在页面上添加链接或按钮,触发一次请求返回一个流,在响应中指定mime type类型比如
response.setContentType("application/ms-excel;charset=gbk")
。常用的web框架struts2,webwork,Spring MVC都提供了一致的方式只要你构造一个流。流行的eXtremeComponents分页工具直接向当前页的信息写入到内存中,用一个ByteArrayOutputStream实现,对于分页数据来讲一页通常都不大,内置的导出功能通常也没有问题。当需要根据条件导出所有数据时,对于下载数据很大的情况,更确切的来讲对内存很有影响,一般来讲CPU开销通常都不是问题。对于这种在web界面导出大数据(不是指现在流行的“大数据”)的需求,可以直接在数据库端用存储过程实现,这通常比较容易实现:只需要固定在某时写入到文件中,供后续下载。DB2有相应的工具集导出直接通过SQL导出数据,只需要一个命令而已,前提是要有权限去执行这种命令操作。不管是用何种处理方式:jdbc或存储过程,都不可能把数据集放在一次性放在内存中处理。常用游标作为解决实现,使用游标循环结果集的时候,非常注意循环体代码,不要搞对象封装、缓存因此不要用持久化框架;代码简洁,越少越好;循环体的代码,尽量保证少一些耗内存的不必要代码。特别不要乱用一些开源的API。JXL和POI,搞的很高深;搞数据库中的字符和系统中对应的枚举中文输出转化也是不必要的,总之代码尽量保持简洁。在本系统中开发了一个JAR包用于支持大数据导出。
使用多线程的方式
统一接口调用,sql统一配置
生产者消费者模式避免内存溢出
使用现成的web压缩技术
避免异常处理
日志支持
可扩展,实现自己的输出而非WEB Response
十分高效,经测试,数据输出速度可达 10MB/s(数据库非本机,同一内网)
可配置JDBC连接与CPU核数比例,1是最高效的。如果CPU核数太高,比例配置低些,至少不影响同一系统中的其他的业务操作的JDBC连接请求
分享到:
相关推荐
使用POI、JXL导出大量的数据到Excel很容易造成内存溢出,而CSV采用流的方式将大数据分批并压缩导出
web项目中需要有将数据导出excel的操作需求 使用html格式导出方法,但在导出时,根据最大行数重新建立新的excel文件; 数据从数据库取出使用纯jdbc方式读数据,边读边向文件中写; 待所有数据写完,将各个小excel...
1) 数据采集:定制开发采集程序,或使⽤开源框架flume 2) 数据预处理:定制开发mapreduce程序运⾏于hadoop集群 3) 数据仓库技术:基于hadoop之上的Hive 4) 数据导出:基于hadoop的sqoop数据导⼊导出⼯具 5) 数据...
轻松解决普通poi形式导出Excel的中出现的栈溢出问题,此资源可实现千万级数据分批导出csv文件,测试实现16500000条数据大概80秒左右;具体表里内容。
同时也可以将数据从关系型数据库或者⽂件 服务器导⼊到FusionInsight HD的HDFS/HBase中,或者反过来从HDFS/HBase导出到关系型数据库或者⽂件服务器中。同时提供 REST API接⼝,供第三⽅调度平台调⽤。 Loader模型...
从 Hive 或 HBase 将数据提取至 HDFS (作为文本或 Avro 文件) 使用 Sqoop 将上一步的输出导出至 RDBMS 不支持按照与 Sqoop 1 相同的解决方法操作 大数据-sqoop全文共16页,当前为第5页。 Sqoop的用途 Sqoop可以在...
开发测试时候导入数据遇到大数据导入的问题,整理了下,需要的朋友可以参考下
由于重点强调数据的规模,所以《大数据•互联网大规模数据挖掘与分布式处理》的例子大都来自web本身或者web上导出的数据。另外,《大数据•互联网大规模数据挖掘与分布式处理》从算法的角度来看待数据挖掘,即数据...
本次要实践的数据日志来源于国内某技术学习论坛,该论坛由某培训机构主办,汇聚了众多技术学习者,每天都有人发帖、回帖。...两个日志文件,一共有200MB,符合大数据量级,可以作为推荐系统数据集和hadoop测试集。
大数据实例:网站用户行为分析 本资源摘要信息旨在总结网站用户行为分析的相关知识点,涵盖大数据处理、Linux系统、MySQL、Hadoop、HBase、Hive、Sqoop、R、Eclipse等系统和软件的安装和使用方法。 一、案例简介 ...
为了支持大数据导出,您可以禁用图层到地图的初始加载。 由于 webmap 具有图层控件,因此您可以在之后启用图层的可见性。 特征的弹出窗口是一个包含所有属性的简单表格,或者由 QGIS 矢量层中的属性“html_exp”...
代码如下: <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” ... <head> <... charset=gb2312″> <...WEB页面导出为EXCEL文档的方法</title> </head> <body> <ta
提供大数据报表并导出Excel表格,相关人员通过报表可以一目了然查看相关信息; 所有列表可以进行综合查询,特别是时间字段,并可以排序; 所有列表可以导出excel文件或者pdf文件; 接入莞工中央认证 后台登录使用...
⼤数据应⽤测试经验总结 ⼤数据应⽤测试经验总结 ⼤数据应⽤测试过程与传统的web系统有较⼤的不同,⼤数据应⽤测试通常会分为web侧和ETL侧测试,web侧基本就是功能测试,⽽ETL(Extracting-Transfroming- Loading)...
包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python...
软件开发设计:PHP、QT、...云计算与大数据:数据集、包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。
包含前端、后端、移动开发、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源等各种技术项目的源码。包括C++、Java、python、web、C#、EDA等项目的源码。 【适用人群】:适用于希望学习不同技术...
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...