1、背景
入職後第一個上手項目。從一堆日誌中提取出特定字段,而後導入數據庫。python
2、問題
1. 日誌在不一樣的服務器上
2. 單個服務器上的內存空間不足,不能用來一次性解壓不少數據
3. 使用python編寫,剛開始對python不熟悉
4. 時間按照秒轉化的,數據庫中是按照毫秒存儲
5. 日誌按照月份、日期排序,存在部分日期的日誌不存在和數據存儲在不一樣位置的狀況正則表達式
3、處理
1. 使用python在線上處理,沒必要轉移到線下。
2. 按照月份進行解壓,避免了不一樣月份日期不一樣的現象,逐月解壓避免了內部存儲空間不足的問題
3. 採用正則表達式匹配數據
4. 在load數據時,採用set關鍵字解決了時間毫秒存儲的問題
5. 部分日期日誌不存在和數據存儲在不一樣位置的問題,程序檢測到某個日期的日誌不存在就會中止,數據存儲在不一樣的位置則要將其移動到統一的解壓位置。數據庫
4、優化
1. 提高處理時間
將每處理一個新文件打開一次write.txt,改成只打開一次待全部文件處理完再關閉。
將每處理一條數據寫一次,改成將全部數據存儲在一個字符串裏,一次寫入。服務器