[發明專利]數據清洗的方法和裝置有效
| 申請號: | 201710555814.5 | 申請日: | 2017-07-10 |
| 公開(公告)號: | CN109241040B | 公開(公告)日: | 2021-05-25 |
| 發明(設計)人: | 弋佐明 | 申請(專利權)人: | 北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司 |
| 主分類號: | G06F16/215 | 分類號: | G06F16/215 |
| 代理公司: | 中原信達知識產權代理有限責任公司 11219 | 代理人: | 張一軍;姜勁 |
| 地址: | 100195 北京市海淀區杏石口路6*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據 清洗 方法 裝置 | ||
本發明公開了數據清洗的方法和裝置,涉及計算機技術技術領域。該方法的一具體實施方式包括:利用內存映射的方式將源文件切割為多個子文件;將子文件的內容讀取到內存中,對子文件進行處理后發送至消息中間件平臺進行數據清洗。該實施方式避免在讀取數據的過程中出現內存溢出,提高了程序的可用性;同時,縮短了數據清洗的處理時間,提高了數據清洗的效率。
技術領域
本發明涉及計算機技術領域,尤其涉及一種數據清洗的方法和裝置。
背景技術
數據清洗是指對數據進行重新審查和校驗的過程,目的在于刪除重復信息、糾正存在的錯誤,并提供數據一致性。一般來說,數據清洗是一個反復的過程,利用有關技術如數理統計、數據挖掘或預定義的清理規則將數據轉化為滿足數據要求的數據的過程。
如圖1所示,現有的數據清洗技術直接利用同步輸入/輸出(I/O)流逐行讀取文件的數據內容,對讀取的數據處理后判斷數據的內容是否合規(即進行數據清洗),如果數據的內容合規,則寫入目標文件;否則,重新讀取該文件的數據內容。
在實現本發明過程中,發明人發現現有技術中至少存在如下問題:
對于數據量較小的文件,直接使用同步I/O流讀取就可以處理了,但是對于數據量較大的文件,在讀取數據的過程中容易造成內存溢出,導致數據清洗失敗,程序可用性低;
同時,對于數據量較大的文件,讀寫數據的過程耗時時間長,效率極低。
發明內容
有鑒于此,本發明實施例提供一種數據清洗的方法和裝置,能夠避免在讀取數據的過程中出現內存溢出,提高了程序的可用性;同時,縮短了數據清洗的處理時間,提高了數據清洗的效率。
為實現上述目的,根據本發明實施例的一個方面,提供了一種數據清洗的方法。
本發明實施例的一種數據清洗的方法包括:利用內存映射的方式將源文件切割為多個子文件;將所述子文件的內容讀取到內存中;對所述子文件進行處理后發送至消息中間件平臺進行數據清洗。
可選地,對所述子文件進行處理包括:在所述子文件的第一行數據和最后一行數據中添加標識,并分別存儲至緩存系統,通過定時任務對已添加標識的所述第一行數據和所述最后一行數據分別進行數據整合以得到第一待清洗數據;以及將所述子文件的其它數據封裝成第二待清洗數據。
可選地,發送至消息中間件平臺進行數據清洗包括:將所述第一待清洗數據和所述第二待清洗數據經所述消息中間件平臺的生產端分配至所述消息中間件平臺的消費端進行數據清洗;將符合清洗規則的數據寫入目標文件;以及將不符合清洗規則的數據記錄到日志文件。
可選地,所述方法還包括:將所述目標文件封裝成清洗結果發送至數據倉庫或數據集市。
可選地,將源文件切割為多個子文件包括:將所述源文件根據切割規則切割為多個所述子文件。
可選地,將所述子文件的內容讀取到內存中包括:利用非阻塞輸入/輸出流將所述子文件的內容讀取到內存中。
為實現上述目的,根據本發明實施例的另一方面,提供了一種數據清洗的裝置。
本發明實施例的一種數據清洗的裝置包括:切割模塊,用于利用內存映射的方式將源文件切割為多個子文件;讀取模塊,用于將所述子文件的內容讀取到內存中;處理模塊,用于對所述子文件進行處理后發送至消息中間件平臺進行數據清洗。
可選地,所述處理模塊還用于:在所述子文件的第一行數據和最后一行數據中添加標識,并分別存儲至緩存系統,通過定時任務對已添加標識的所述第一行數據和所述最后一行數據分別進行數據整合以得到第一待清洗數據;以及將所述子文件的其它數據封裝成第二待清洗數據。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司,未經北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710555814.5/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





