python脚本解析日志文件入库一般有三个重要的步骤:读文件、解析文件、入库。在这三个方面下功夫,可确保我们获得最优的性能(这里不讨论并发)

1 读文件:一次读一行,磁盘IO太多,效率低下;一次性读如全部文件内容,可能内存不够。采取一个折中的办法,每次读若干byte(具体大小视实际情况而定)。

经过测试,得到结论,在我们写代码的时候应该这样写

f = open(path,'r')

for line in f :

.............

这是系统提供的一种读文件的方法,一般比我们自己每次读若干byte要快(f.read(20000)),具体怎么做到的,现在还不清楚。总之,系统提供的,

应该差不了,不然也太丢人。啊哈!

2 解析日志,如果用到正则表达式,应该先编译然后再查找,这样可以提高速度。例如 :

regex0 = re.compile("(^|;)mobile=(\d+)")

mobile_number=regex0.search(self.resp_log).group(2)

当然,这是一个大方面,精细的方面我们还要在正则的写法上下功夫。关于Python的正则的高效写法,后续会专门用一边文章来写。

3 入库:网上有好多建议使用executemany()这个写法,insert into tablename(xx,xx) values(yy,yy),(yy,yy)....的形式却会快很多,

我们应 该直接把我们的SQL拼接成这种形式,效率远远高于executemany(),具体一次性要插入多少行,自己测一下哦。每秒1W应该没问题。

==============================================================================

按照上面的写法,可以保证读文件、解析文件、入库每个环节都做到最优,但是在整体结构上还有优化的空间,详细如下:

1  启一个线程readThread只负责读文件,然后把读到的内容放到队列Queue1中;

2  启一个线程manageThread只负责解析文件内容,然后把解析好的东西放到Queue2中;

3  启动第三个线程writeDB负责将解析好的文件内容入库;

4 开启一个后台线程对1、2、3三个线程的运行状况进行监控、记录与处理。

python日志分析库_python高效解析日志入库相关推荐

  1. python 文本分析库_Python有趣|中文文本情感分析

    前言 前文给大家说了python机器学习的路径,这光说不练假把式,这次,罗罗攀就带大家完成一个中文文本情感分析的机器学习项目,今天的流程如下: 数据情况和处理 数据情况 这里的数据为大众点评上的评论数 ...

  2. php日志分析,PHP SeasLog实现高性能日志记录

    简介 为什么使用SeasLog log日志,通常是系统或软件.应用的运行记录.通过log的分析,可以方便用户了解系统或软件.应用的运行情况:如果你的应用log足够丰富,也可以分析以往用户的操作行为.类 ...

  3. dump文件分析工具_使用这个 Python 工具分析你的 Web 服务器日志文件 | Linux 中国...

    导读:这个 Python 模块可以以多种格式收集网站使用日志并输出良好结构化数据以进行分析. 本文字数:3262,阅读时长大约:4分钟https://linux.cn/article-12512-1. ...

  4. 转 android anr 分析示例,[摘]Android ANR日志分析指南之实例解析

    前文<[摘]Android ANR日志分析指南>也摘抄了如何分析,接下来通过实例解析. 一.主线程被其他线程lock,导致死锁 waiting on <0x1cd570> (a ...

  5. python日志配置文件解释_python 之 logger日志 字典配置文件

    importosimport logging.config #不能只导入logging BASE_DIR=os.path.dirname(os.path.dirname(__file__))#DB_P ...

  6. python自然语言处理库_Python自然语言处理工具库(含中文处理)

    自然语言处理(Natural Language Processing,简称 NLP),是研究计算机处理人类语言的一门技术.随着深度学习在图像识别.语音识别领域的大放异彩,人们对深度学习在 NLP 的价 ...

  7. python数据科学库_Python数据科学库

    python数据科学库 什么是数据科学? (What is Data Science?) We live in an information age, where the challenge is t ...

  8. ELK日志处理之使用Grok解析日志

    一.简介 Grok是迄今为止使蹩脚的.无结构的日志结构化和可查询的最好方式.Grok在解析 syslog logs.apache and other webserver logs.mysql logs ...

  9. python 的blaze库_Python 开发者 2017 应该关注的 7 个类库

    Python 开发者 2017 应该关注的 7 个类库 jango 依然是 Python 开发者值得信赖的库 .然而,在 2016 年几个还不太知名的库引起了 Python 开发者的关注.在这篇博文中 ...

最新文章

  1. 2020ICPC(上海) - Walker(分类讨论+二分)
  2. 常熟理工学院计算机网络基础,常熟理工学院计算机网络复习题之简答题
  3. hadoop集群中客户端修改、删除文件失败
  4. LeetCode 124. 二叉树中的最大路径和(DFS)
  5. python 爬关键词,Python爬虫实战:爬取微博热搜关键词
  6. 【javascript动画系列之网页白板】javascript实现的白板(兼容ff,ie,chrome,……)
  7. CCF201512-2 消除类游戏
  8. MyCat分布式数据库集群架构工作笔记0023---高可用_单表存储千万级_海量存储_分表扩展范围约定
  9. ceph 代码分析 读_五大常见存储系统PK | Ceph、GlusterFS、MooseFS、HDFS、DRBD
  10. typecho 全站ajax,Typecho全站启用HTTPS教程
  11. ad中按钮开关的符号_弱电图纸中敷设方式符号表示大全
  12. 50页PPT,让你全面了解物联网产业链及发展趋势 | 附下载
  13. Mysql/Oracle——常用SQL语句
  14. linux tcp调优
  15. 判断无线网卡是否支持监听模式
  16. ODT,ZQ校准,OCT,TDQS
  17. 在单点登录中,如果cookie被禁用了怎么办?
  18. 监控摄像头进行网页直播
  19. 南浔区跨境电子商务公共服务中心今日揭牌!
  20. 宁夏开票系统服务器地址,宁夏增值税发票综合服务平台网址

热门文章

  1. fatal error C1071: 在注释中遇到意外的文件结束
  2. kaldi基础介绍(一)在说话人识别中的数据准备
  3. 【贪心算法】空酒瓶换酒问题
  4. windows生成ios上架截屏的方法
  5. plsql developer建立数据库
  6. scala语法 -多维数组
  7. 利用官方工具刷REC
  8. Android备份软件Migrate找不到备份文件解决方案
  9. 【架构师之路 四】需要掌握的技能点---架构性能优化
  10. 学院计算机和英语b没过能不能毕业,英语B级没过能拿到毕业证吗?