首页新闻找找看学习计划

java 大量文件读取策略

0
悬赏园豆:20 [已解决问题] 解决于 2016-07-19 08:50

读取文件夹下log文件

文件量比较多3000+,文件大小平均50K左右,每天还在增加,文件不能删除,

求一个合理的文件读取策略

 

测试了一下,一次性读取完需要将近一天时间,大概470W数据量

 

遥远的守望的主页 遥远的守望 | 初学一级 | 园豆:96
提问于:2016-07-14 10:43
< >
分享
最佳答案
0

3000+文件,一个50K左右, 又不需要一天时间吧!

主要的问题还是读到数据进行处理的时间, 你可以用几个线程读,把相关有用的数据捉出来放在某一地方, 再用10+N个线程去处理。

 

收获园豆:20
风浪 | 老鸟四级 |园豆:2754 | 2016-07-15 11:08

我刚接手.大致看了一下

DELETE TBL_Data         32544行

SELECT TBL_CONFIG          1951行

for(;1951;){

  for(;18;){

    SELECT  AVG()  TBL_LOG        19977行

    for(;32;){

      SELECT  TBL_NCELL  119862行  ,TBL_DATA 317行

    }

    INSERT  TBL_Data

  }  

  for(;18;){

    SELECT  TBL_LOG    19977行

  }

}

测试了一下

73个文件

运行了 三个多小时,也是够了..

我都不知道怎么下手....

遥远的守望 | 园豆:96 (初学一级) | 2016-07-15 11:42

对线程这块不太熟悉,可以用存储过程么?

 

遥远的守望 | 园豆:96 (初学一级) | 2016-07-15 11:53
其他回答(2)
0

如果觉得慢就Spark吧 。这个数据量实在小,一次读完应该不需要那么久。

````` | 园豆:14268 (专家六级) | 2016-07-14 11:13
0

小文件的读取没什么能优化的。

问题是你要做什么业务?查询?统计?读取完,丢mongodb。建立索引去查询好了。

czd890 | 园豆:7984 (大侠五级) | 2016-07-14 11:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册