首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用ResultSet选择10M记录并转储到HDFS

使用ResultSet选择10M记录并转储到HDFS
EN

Stack Overflow用户
提问于 2014-07-10 07:13:15
回答 1查看 209关注 0票数 0

在一个程序中,我做了一些类似的事情:

代码语言:javascript
运行
复制
ResultSet rs = con.executeQuery(sql);
List l = new List();
while(rs.next()){
   l.append(rs.getObject(xxx))
}

fileSys.write(l)

sql有10M条记录。这个函数需要2小时才能完成。循环占用了大部分时间。我想知道有没有更好的方法来做这件事?可以使用多线程吗?

EN

回答 1

Stack Overflow用户

发布于 2014-07-12 16:20:33

如果您必须通过网络将大量数据(千兆字节)从一个系统(SQL)移动到另一个系统(HDFS),那么驱动复制的处理器(您的代码)中的线程将不会有多大帮助

1您可以尝试在具有更好network throughput的服务器上运行代码

HDFS 2您可以尝试仅复制自上次以来更改过的记录(HDFS尚无副本)。从长远来看,这将提高性能。第一次会很慢。第二次和第三次会更快,因为你只移动已经改变的东西。使用UTC时间戳和“更改时间”是基本概念

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24665126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档