分析文件后,记录入库 请教

色郎中 2017-04-12 10:45:54

写段代码,分析文件夹内的文本文件,每秒产生一个文件,每个文件大概500-1000条记录,简单分析一下,将每条记录存入数据库;
按最低记录数算 500条,一天下来也有5000-6000W条记录了:

处理过程:在一个线程里处理文本文件,分析文件后,将500条记录,一次性也在线程里插入数据库,程序跑一段时发现后,感觉本本抗不住,文件夹里很多文件来不及处理;
大概如下的样子;

json= parsing_files(currentFileName) //保存处理一个文本后的500条记录
db_handle.write_points( json)//调用库函数,写数据库


分别测试,只分析文件,并生成json(类似一个文件,即将文本文件分析过后的500条记录存一个json里),不做插入数据库操作,发现CPU, 内存,磁盘IO 都变化不大;
但是,调用库接口函数做入库操作,跑一段时间后,发现CPU,内存基本都给占用了

请教一下有啥的办法,分析文本 和 入库操作分开? 处理的结果放队列,然后,开新线程做入库? 或者其他,
...全文
121 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
色郎中 2017-04-15
  • 打赏
  • 举报
回复
哈哈 想多了,,是数据库自身原因,或者说,对这个数据库特性不熟悉,influxDB数据库,,tags的值乘积越大越耗内存, 调整Tags, 就OK了
wutong9509 2017-04-12
  • 打赏
  • 举报
回复
sqlldr命令就可以解决解析文本然后导入数据库问题。
sanGuo_uu 2017-04-12
  • 打赏
  • 举报
回复
"发现CPU, 内存,磁盘IO 都变化不大" 这个你是怎么看的?启动任务管理器? 处理的结果放队列,队列还不是要占内存哈。这样应该没用吧 听你的意思,是操作数据库的时候占cpu和内存,那分开后,也还是要写入数据库啊 --------------------------------------------------- 定个临界值,让它只执行固定时间or固定数据。然后手动执行下一次。——这也是一种思路啦。 看看是“数据分析”or“入库操作”占资源。 如果是“入库操作”的问题,那优化下sql语句?

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧