使用pymongo解析文本格式日志后放入mongo

栏目: Python · 发布时间: 5年前

内容简介:拿到的文本是二进制的,在查看文件的时候可以加上-rb以二进制读的形式打开。文件格式如下:可以看到日志里面的分隔符是制表符t,行末尾有换行符n

思路

拿到的文本是二进制的,在查看文件的时候可以加上-rb以二进制读的形式打开。

文件格式如下:

b’2019-03-29 10:55:00\t0\192.168.31.123:8080\t5\t12345678\t0\t44560\t953864\t2\t192.168.31.123\tmd5\n’

可以看到日志里面的分隔符是制表符t,行末尾有换行符n

处理日志文件的基本逻辑

  1. 链接数据库
  2. 逐行读txt
  3. 将一行的数据分割为数组
  4. 将数据放入list
  5. 将list逐条转化为json
  6. 存入数据库

分片集群的mongo链接

用于存储日志的mongo集群有三个分片:flux-stat-1.mongo:27017,flux-stat-2.mongo:27017和flux-stat-3.mongo:27017.

假设用户名是flux-stat,密码是flux-stat-mongo123,登录方法:

from pymongo import MongoClient
import urllib.parse
#创建 MongoDB 链接对象
username = urllib.parse.quote_plus(‘flux-stat’)
password = urllib.parse.quote_plus(‘flux-stat-mongo123’)
uri = 'mongodb://%s:%s@flux-stat-1.mongo:27017, flux-stat-2.mongo:27017, flux-stat-3.mongo:27017/admin' % (username,password)
client = MongoClient(uri)

注意:username和password必须要进行转换,否则链接不正确

pymongo逐行读取日志文本

with open(“d:/user/ServerLog/test.txt”,’rb’) as file:
    for line in file:
        #这里放操作
file.close()

分割日志内容转化为json,并把每行json放到数组中

#引入json模块
import json
total=[]
logList = line.split(‘\t’)    #line分割为list
keyList = [‘time’,’status’,’ip’,’type’,’userid’,’v1’,’v2’,’v3’,’v4’,’ip’,’md5’]    #key的list
logDict = dict(zip(keyList, logList))    #把二者以字典的方式拼起来
logJson = json.dumps(logDict)    #把字典转换为string形式的json
#json转字典的方法为dictinfo = json.loads(json_str)
total.append(logJson)

日志存入mongo

insert_one和insert_many是两种插入的方式,但是采用insert_one进行逐条插入会进行大量的访问,大幅降低插入效率,采用insert_many进行json为基本单位的list批量插入,效率明显提高。

db = client['log']             #获取数据库
coll = db[‘data’]              #获取表
coll.insert_many(total)        #插入到数据库

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Python机器学习基础教程

Python机器学习基础教程

[德]安德里亚斯·穆勒、[美]莎拉·吉多 / 张亮 / 人民邮电出版社 / 2018-1 / 79.00元

本书是机器学习入门书,以Python语言介绍。主要内容包括:机器学习的基本概念及其应用;实践中最常用的机器学习算法以及这些算法的优缺点;在机器学习中待处理数据的呈现方式的重要性,以及应重点关注数据的哪些方面;模型评估和调参的高级方法,重点讲解交叉验证和网格搜索;管道的概念;如何将前面各章的方法应用到文本数据上,还介绍了一些文本特有的处理方法。一起来看看 《Python机器学习基础教程》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具