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

資訊專欄INFORMATION COLUMN

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

Freelander / 1219人閱讀

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

思路

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

文件格式如下:

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

處理日志文件的基本邏輯

鏈接數據庫

逐行讀txt

將一行的數據分割為數組

將數據放入list

將list逐條轉化為json

存入數據庫

分片集群的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(‘	’)    #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)        #插入到數據庫

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43697.html

相關文章

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

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

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

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

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

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

    mo0n1andin 評論0 收藏0
  • scrapy 實戰練習

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

    betacat 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<