[發明專利]日志數據的去重方法及裝置有效
| 申請號: | 201310575306.5 | 申請日: | 2013-11-15 |
| 公開(公告)號: | CN103593442B | 公開(公告)日: | 2017-08-01 |
| 發明(設計)人: | 吳充;郭濤 | 申請(專利權)人: | 北京國雙科技有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京康信知識產權代理有限責任公司11240 | 代理人: | 吳貴明,張永明 |
| 地址: | 100086 北京市海淀區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 日志 數據 方法 裝置 | ||
技術領域
本發明涉及數據處理領域,具體而言,涉及一種日志數據的去重方法及裝置。
背景技術
現有技術中日志文件導入數據庫的通常做法為:通過程序逐行讀取指定格式的日志文件并逐行寫入內存,處理完該日志文件后,把內存中的數據一次性寫入數據庫,在數據庫中去重合并。
在存在大量數據的情況下,需要向數據庫寫入大量數據,在全部數據寫入完成后,在數據庫中去重合并,采用本發明的上述方案會耗費大量的IO、CPU資源,隨著數據量的增大,處理壓力也會線性增大,同時等待時間變長。當短時間內數據量級達到一定級別會造成數據庫的內存溢出以至崩潰。
針對現有技術在數據庫中對數據去重會耗費大量資源且處理速度慢的問題,目前尚未提出有效的解決方案。
發明內容
針對相關技術在數據庫中對數據去重會耗費大量資源且處理速度慢的問題,目前尚未提出有效的解決方案,為此,本發明的主要目的在于提供一種日志數據的去重方法及裝置,以解決上述問題。
為了實現上述目的,根據本發明的一個方面,提供了一種日志數據的去重方法,該方法包括:獲取日志文件的對象元素;根據對象元素的快照ID將對象元素保存入數據集合;在將日志文件讀取完畢之后,將數據集合中的數據插入到第一臨時表;對第一臨時表中的數據進行去重處理得到第二臨時表;將第二臨時表中的數據插入到數據庫的正式表中。
進一步地,獲取日志文件的對象元素的步驟包括:從日志文件中逐行讀取第一日志數據;對第一日志數據進行過濾處理得到第二日志數據;將第二日志數據反序列化得到對象元素。
進一步地,根據對象元素的快照ID將對象元素保存入數據集合的步驟包括:在數據集合中查找是否存在快照ID;在數據集合中不存在快照ID的情況下,將當前的對象元素按照鍵值對的形式保存入數據集合;在數據集合中存在快照ID的情況下,比較對象元素的元素發送序號與數據集合的集合發送序號的大小;在元素發送序號大于集合發送序號的情況下,獲取數據集合中該快照ID對應的第一數據,將第一數據替換為對象元素;在元素發送序號不大于集合發送序號的情況下,返回執行獲取日志文件的對象元素的步驟,直至將日志文件讀取完。
進一步地,在將日志文件讀取完畢之后,將數據集合中的數據插入到第一臨時表的步驟包括:判斷數據集合中的數據條數是否大于零;在數據條數大于零的情況下,將數據集合中的數據插入到第一臨時表中。
進一步地,對第一臨時表中的數據進行去重處理得到第二臨時表的步驟包括:獲取快照ID在第一臨時表中的最大發送序號;在第一臨時表中查詢所有比最大發送序號小的元素發送序號生成第一序號集合;獲取與第一序號集合中的元素發送序號對應的對象元素,得到對象元素集合;從第一臨時表中刪除對象元素集合中的對象元素得到第二臨時表。
為了實現上述目的,根據本發明的一個方面,提供了一種日志數據的去重裝置,該裝置包括:元素獲取模塊,用于獲取日志文件的對象元素;元素保存模塊,用于保存根據對象元素的快照ID將對象元素保存入數據集合;第一插入模塊,用于在將日志文件讀取完畢之后,將數據集合中的數據插入到第一臨時表;去重模塊,用于對第一臨時表中的數據進行去重處理得到第二臨時表;第二插入模塊,用于將第二臨時表中的數據插入到數據庫的正式表中。
進一步地,元素獲取模塊包括:讀取模塊,用于從日志文件中逐行讀取第一日志數據;過濾模塊,用于對第一日志數據進行過濾處理得到第二日志數據;反序列化模塊,用于將第二日志數據反序列化得到對象元素。
進一步地,元素保存模塊包括:查找模塊,用于在數據集合中查找是否存在快照ID;第一子保存模塊,用于在數據集合中不存在快照ID的情況下,將當前的對象元素按照鍵值對的形式保存入數據集合;比較模塊,用于在數據集合中存在快照ID的情況下,比較對象元素的元素發送序號與數據集合的集合發送序號的大小;替換模塊,用于在元素發送序號大于集合發送序號的情況下,獲取數據集合中該快照ID對應的第一數據,將第一數據替換為對象元素;返回模塊,用于在元素發送序號不大于集合發送序號的情況下,返回執行獲取日志文件的對象元素的步驟,直至將日志文件讀取完。
進一步地,去重裝置包括:判斷模塊,用于判斷數據集合中的數據條數是否大于零;第三插入模塊,用于在數據條數大于零的情況下,將數據集合中的數據插入到第一臨時表中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京國雙科技有限公司,未經北京國雙科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310575306.5/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





