python处理海量多需求数据方案

劲草 2010-11-10 11:26:16
我每天会处理数据量G级甚至更高的报文数据,用python写了脚本每天定时或后台自动运行,因为同一批数据可能有好几个不同的需求,有的是扫描统计,有的是分析入库,有的是临时查询……
这些需求的一个共同特点就是去读这些报文,然后按照各自需求去解析这些数据,现在一些需求中在分析时加了一些新的协议规则,而且数据量越来越大,一个脚本跑下来要两三个小时,好几个类似的的脚本,每天需要大量的时间,现在想优化一下,提高运行效率。

我自己也考虑过一些方案,比如把核心代码用c或c++写,然后python调用,但我感觉还是解决不了我面临的问题;我想我需要的是一种新的架构,思想 去解决这个问题,一个脚本两三个小时不可怕,可怕的是多个需求,读取同一批数据解析,时间却不得不累积。
请教一下各位有没有一些想法可以解决这个运行效率的问题,感谢~~
...全文
280 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
劲草 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 oldjwu 的回复:]

如果有足够的硬盘的话,可以试试用空间换时间。先把可能的查询从技术上分成几类,然后针对每一类的特点先把原始数据预处理一下,之后的查询只需要操作预处理后的数据,可能会好一些。

不过缺点就是预处理机制可能会比较复杂,而且可能需要较多的存储空间。
[/Quote]
和6楼的想法有相似之处,感谢大家,思路已经有一点了!
劲草 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tim_spac 的回复:]

def parserFile(fname, attentionconfig)
# 按指定的关注配置(attentionconfig) 解析给定的文件(fname)
# 将所有解析到的数据结构化
# 输出到输出流
pass

def app1(data):
# 从输入的结构化数据中捕获本应用关注的信息进行内部处理

...

def ……
[/Quote]
6楼的想法是种不错的建议,研究研究……
iambic 2010-11-10
  • 打赏
  • 举报
回复
那就具体分析下瓶颈,具体到是那个正则表达式的问题,占用了多少百分之几的计算。
如果计算有相当一部分的重复,那就想办法减少冗余计算。但是这些要具体问题具体分析了。
劲草 2010-11-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 iambic 的回复:]

先分析下性能瓶颈在哪里。
另外运行的时候你的系统的CPU使用是多少,如果比较低,可以并行处理,如果比较高,只能先优化单任务的性能。
[/Quote]
性能瓶颈在于报文都是xml格式,分析数据的时候采用正则,还有就是分析数据时与一些数据做差集操作
CPU一般使用70%多,应该无法并行处理,其实一个脚本的运行时间3个小时都能接受,只是好几个需求不一样的脚本,数据源头相同,每次都得去解析一次
iambic 2010-11-10
  • 打赏
  • 举报
回复
先分析下性能瓶颈在哪里。
另外运行的时候你的系统的CPU使用是多少,如果比较低,可以并行处理,如果比较高,只能先优化单任务的性能。
tim_spac 2010-11-10
  • 打赏
  • 举报
回复
def parserFile(fname, attentionconfig)
# 按指定的关注配置(attentionconfig) 解析给定的文件(fname)
# 将所有解析到的数据结构化
# 输出到输出流
pass

def app1(data):
# 从输入的结构化数据中捕获本应用关注的信息进行内部处理

...

def main():
for data in parserFile(fname, attentionconfig):
app1(data)
app2(data)
app3(data)
...
I_NBFA 2010-11-10
  • 打赏
  • 举报
回复
找到瓶颈就想法改进,你描述的太笼统具体算法爱莫能助。
oldjwu 2010-11-10
  • 打赏
  • 举报
回复
如果有足够的硬盘的话,可以试试用空间换时间。先把可能的查询从技术上分成几类,然后针对每一类的特点先把原始数据预处理一下,之后的查询只需要操作预处理后的数据,可能会好一些。

不过缺点就是预处理机制可能会比较复杂,而且可能需要较多的存储空间。

37,743

社区成员

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

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