国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

Meathill / 336人閱讀

摘要:思路拿到的文本是二進(jìn)制的,在查看文件的時(shí)候可以加上以二進(jìn)制讀的形式打開。獲取數(shù)據(jù)庫獲取表插入到數(shù)據(jù)庫

思路

拿到的文本是二進(jìn)制的,在查看文件的時(shí)候可以加上-rb以二進(jìn)制讀的形式打開。

文件格式如下:

b’2019-03-29 10:55:00	0192.168.31.123:8080	5	12345678	0	44560	953864	2	192.168.31.123	md5
’

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

處理日志文件的基本邏輯

鏈接數(shù)據(jù)庫

逐行讀txt

將一行的數(shù)據(jù)分割為數(shù)組

將數(shù)據(jù)放入list

將list逐條轉(zhuǎn)化為json

存入數(shù)據(jù)庫

分片集群的mongo鏈接

用于存儲日志的mongo集群有三個(gè)分片:flux-stat-1.mongo:27017,flux-stat-2.mongo:27017和flux-stat-3.mongo:27017.

假設(shè)用戶名是flux-stat,密碼是flux-stat-mongo123,登錄方法:

from pymongo import MongoClient
import urllib.parse
#創(chuàng)建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必須要進(jìn)行轉(zhuǎn)換,否則鏈接不正確

pymongo逐行讀取日志文本
with open(“d:/user/ServerLog/test.txt”,’rb’) as file:
    for line in file:
        #這里放操作
file.close()
分割日志內(nèi)容轉(zhuǎn)化為json,并把每行json放到數(shù)組中
#引入json模塊
import json
total=[]
logList = line.split(‘	’)    #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)    #把字典轉(zhuǎn)換為string形式的json
#json轉(zhuǎn)字典的方法為dictinfo = json.loads(json_str)
total.append(logJson)
日志存入mongo

insert_one和insert_many是兩種插入的方式,但是采用insert_one進(jìn)行逐條插入會進(jìn)行大量的訪問,大幅降低插入效率,采用insert_many進(jìn)行json為基本單位的list批量插入,效率明顯提高。

db = client["log"]             #獲取數(shù)據(jù)庫
coll = db[‘data’]              #獲取表
coll.insert_many(total)        #插入到數(shù)據(jù)庫

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/19515.html

相關(guān)文章

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

    摘要:思路拿到的文本是二進(jìn)制的,在查看文件的時(shí)候可以加上以二進(jìn)制讀的形式打開。獲取數(shù)據(jù)庫獲取表插入到數(shù)據(jù)庫 思路 拿到的文本是二進(jìn)制的,在查看文件的時(shí)候可以加上-rb以二進(jìn)制讀的形式打開。 文件格式如下: b’2019-03-29 10:55:00 0192.168.31.123:8080 5 12345678 0 44560 953864 2 192.168.31.123 md5 ’ ...

    Freelander 評論0 收藏0
  • 分析了京東內(nèi)衣銷售記錄,告訴你妹子們的真Size!

    摘要:今天閑暇之余寫了一個(gè)爬蟲例子。后兩個(gè)為分頁參數(shù),是每個(gè)商品的,通過這個(gè)去獲取商品的評價(jià)記錄,所以我們只需要知道每個(gè)商品的就輕而易舉的獲取評價(jià)了。大概了解了整個(gè)流程,就可以開始我們的爬蟲工作了。 今天閑暇之余寫了一個(gè)爬蟲例子。通過爬蟲去爬取京東的用戶評價(jià),通過分析爬取的數(shù)據(jù)能得到很多結(jié)果,比如,哪一種顏色的胸罩最受女性歡迎,以及中國女性的平均size(僅供參考哦~) 打開開發(fā)者工具-ne...

    Coly 評論0 收藏0
  • 經(jīng)驗(yàn)拾憶(純手工)=> MongoDB與PyMongo語法對比解析

    摘要:舉個(gè)栗子你有一個(gè)箱子,里面有一個(gè)兒子級別和孫子級別的箱子共層現(xiàn)在你把孫子級別的箱子單獨(dú)拿出來,把整個(gè)箱子替換掉就是這種思想。。。自己體會吧這種語法,好像列表的切片賦值。。官方建議我們用它的好處是把和由兩個(gè)函數(shù)調(diào)用變?yōu)閭€(gè)參數(shù)傳進(jìn)去了。 閱讀須知 由于是對比書寫: M: 代表 Mongo原生語法 P: 代表 PyMongo書寫方法 后面提到:同上 字眼: ...

    mo0n1andin 評論0 收藏0
  • scrapy 實(shí)戰(zhàn)練習(xí)

    摘要:爬取百思不得姐首先一步一步來,我們先從爬最簡單的文本開始。將百思不得姐段子保存到中別忘了將管道加到配置文件中。雖然我只是簡單的爬了百思不得姐,不過這些方法可以應(yīng)用到其他方面,爬取更多更有用的數(shù)據(jù)。 前一篇文章介紹了很多關(guān)于scrapy的進(jìn)階知識,不過說歸說,只有在實(shí)際應(yīng)用中才能真正用到這些知識。所以這篇文章就來嘗試?yán)胹crapy爬取各種網(wǎng)站的數(shù)據(jù)。 爬取百思不得姐 首先一步一步來,我...

    betacat 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<