數(shù)據(jù)處理系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的實施例涉及一種數(shù)據(jù)處理系統(tǒng)及方法,尤其涉及一種用于在加載大容量數(shù)據(jù)時自動處理數(shù)據(jù)錯誤的數(shù)據(jù)處理系統(tǒng)及方法。
【背景技術(shù)】
[0002]在大容量日志數(shù)據(jù)的分析初始階段中,數(shù)據(jù)的結(jié)構(gòu)化、加載和存儲是非常重要的作業(yè)。加載或存儲需執(zhí)行為符合用于數(shù)據(jù)分析的最低限度的數(shù)據(jù)結(jié)構(gòu)信息。然而,大部分現(xiàn)有的日志數(shù)據(jù)卻大量包含不符合這樣的數(shù)據(jù)結(jié)構(gòu)信息的非正常數(shù)據(jù)。尤其對于大容量數(shù)據(jù)而言,這樣的非正常數(shù)據(jù)可能導致數(shù)據(jù)加載過程中發(fā)生嚴重的錯誤,或者以錯誤的形態(tài)加載而導致出現(xiàn)不正確的數(shù)據(jù)分析結(jié)果。現(xiàn)有技術(shù)不具備加載日志數(shù)據(jù)時自動修正錯誤部分或結(jié)構(gòu)化的處理功能,且錯誤修正或結(jié)構(gòu)化過程均由手動作業(yè)實現(xiàn)。
[0003]具體地說,對于現(xiàn)有技術(shù)而言,如果在數(shù)據(jù)輸入的過程中發(fā)生錯誤,則數(shù)據(jù)的加載作業(yè)中斷并找出錯誤原因而進行修正,然后從頭開始重新執(zhí)行數(shù)據(jù)加載。如果多次發(fā)現(xiàn)非正常數(shù)據(jù),則這樣的作業(yè)只能每次都重復執(zhí)行,尤其在加載大容量數(shù)據(jù)時,由于這樣的繁瑣而存在浪費時間和成本的問題。
[0004][現(xiàn)有技術(shù)文獻]
[0005][專利文獻]
[0006]韓國公開專利公報第10-2014-0001910 號(2014.01.07)
【發(fā)明內(nèi)容】
[0007]本發(fā)明的實施例的目的在于提供一種用于有效地存儲大容量數(shù)據(jù)并自動處理包含于數(shù)據(jù)中的錯誤的數(shù)據(jù)處理系統(tǒng)及方法。
[0008]根據(jù)本發(fā)明的示例性實施例,提供一種數(shù)據(jù)處理系統(tǒng),包括:數(shù)據(jù)判別單元,接收輸入數(shù)據(jù)以及與所述輸入數(shù)據(jù)的結(jié)構(gòu)有關(guān)的元數(shù)據(jù),并基于所述元數(shù)據(jù)而判別所述輸入數(shù)據(jù)究竟是正常數(shù)據(jù)還是非正常數(shù)據(jù);第一存儲單元,存儲所述正常數(shù)據(jù);第二存儲單元,存儲所述非正常數(shù)據(jù);數(shù)據(jù)處理單元,將存儲于所述第二存儲單元的所述非正常數(shù)據(jù)修正為具有與所述正常數(shù)據(jù)相同的結(jié)構(gòu),并將修正的所述非正常數(shù)據(jù)存儲于所述第一存儲單元。
[0009]所述數(shù)據(jù)判別單元可以以所述輸入數(shù)據(jù)的記錄(record)單位判別所述輸入數(shù)據(jù)究竟是正常數(shù)據(jù)還是非正常數(shù)據(jù)。
[0010]所述元數(shù)據(jù)可包括如下信息中的一種以上的信息:與每一記錄各自的數(shù)據(jù)字段(data field)的個數(shù)有關(guān)的信息;與用于分隔各個所述數(shù)據(jù)字段的分隔符的個數(shù)有關(guān)的信息;與每一所述數(shù)據(jù)字段各自的數(shù)據(jù)模式有關(guān)的信息。
[0011]所述數(shù)據(jù)判別單元可將包含于所述元數(shù)據(jù)的數(shù)據(jù)字段的個數(shù)或所述分隔符的個數(shù)中的一個與包含于所述輸入數(shù)據(jù)的記錄的數(shù)據(jù)字段的個數(shù)或分隔符的個數(shù)中的一個進行比較,或者按包含于所述輸入數(shù)據(jù)的記錄的每一數(shù)據(jù)字段分別判斷包含于所述元數(shù)據(jù)的每一數(shù)據(jù)字段各自的數(shù)據(jù)模式是否匹配,從而判別所述輸入數(shù)據(jù)的各個記錄究竟是正常數(shù)據(jù)還是非正常數(shù)據(jù)。
[0012]所述數(shù)據(jù)處理單元可提取所述正常數(shù)據(jù)內(nèi)的特定數(shù)據(jù)模式,并將所述非正常數(shù)據(jù)內(nèi)的數(shù)據(jù)字段中與所述特定數(shù)據(jù)模式相匹配的數(shù)據(jù)字段作為基準而將所述非正常數(shù)據(jù)分隔為多個虛擬記錄,并以所述虛擬記錄單位修正所述非正常數(shù)據(jù)。
[0013]所述數(shù)據(jù)處理單元可按所述正常數(shù)據(jù)內(nèi)的每一數(shù)據(jù)字段分別提取一個以上的特定數(shù)據(jù)值,并將所述虛擬記錄內(nèi)的數(shù)據(jù)字段中除了存在所述特定數(shù)據(jù)值的數(shù)據(jù)字段以外的其余數(shù)據(jù)字段所包含的數(shù)據(jù)進行修正。
[0014]所述數(shù)據(jù)處理單元可將包含于所述其余數(shù)據(jù)字段的數(shù)據(jù)內(nèi)的特定字符串或字符刪除,或者置換為已設(shè)定的字符串或字符。
[0015]所述數(shù)據(jù)處理單元每當修正所述虛擬記錄時判別所述虛擬記錄是否為正常數(shù)據(jù),并在所述虛擬記錄被判別為正常數(shù)據(jù)的情況下,可將所述虛擬記錄存儲于所述數(shù)據(jù)處理單元內(nèi)的數(shù)據(jù)庫,而在虛擬記錄全部都存儲于所述數(shù)據(jù)庫的情況下,可將修正的所述非正常數(shù)據(jù)存儲于所述第一存儲單元。
[0016]所述數(shù)據(jù)處理單元每當修正所述虛擬記錄時判別所述虛擬記錄是否為正常數(shù)據(jù),并在所述虛擬記錄被判別為不是正常數(shù)據(jù)的情況下,可再次修正目前為止修正的全部虛擬記錄。
[0017]根據(jù)本發(fā)明的另一示例性實施例,提供一種數(shù)據(jù)處理方法,包括如下步驟:由數(shù)據(jù)判別單元接收輸入數(shù)據(jù)以及與所述輸入數(shù)據(jù)的結(jié)構(gòu)有關(guān)的元數(shù)據(jù);由所述數(shù)據(jù)判別單元基于所述元數(shù)據(jù)而判別所述輸入數(shù)據(jù)究竟是正常數(shù)據(jù)還是非正常數(shù)據(jù);由所述數(shù)據(jù)判別單元將所述正常數(shù)據(jù)存儲于第一存儲單元;由所述數(shù)據(jù)判別單元將所述非正常數(shù)據(jù)存儲于第二存儲單元;由數(shù)據(jù)處理單元將存儲于所述第二存儲單元的所述非正常數(shù)據(jù)修正為具有與所述正常數(shù)據(jù)相同的結(jié)構(gòu);由所述數(shù)據(jù)處理單元將修正的所述非正常數(shù)據(jù)存儲于所述第一存儲單元。
[0018]在判別所述輸入數(shù)據(jù)究竟是正常數(shù)據(jù)還是非正常數(shù)據(jù)的步驟中,可以以所述輸入數(shù)據(jù)的記錄(record)單位判別所述輸入數(shù)據(jù)究竟是正常數(shù)據(jù)還是非正常數(shù)據(jù)。
[0019]所述元數(shù)據(jù)可包括如下信息中的一種以上的信息:與每一記錄各自的數(shù)據(jù)字段(data field)的個數(shù)有關(guān)的信息;與用于分隔各個所述數(shù)據(jù)字段的分隔符的個數(shù)有關(guān)的信息;與每一所述數(shù)據(jù)字段各自的數(shù)據(jù)模式有關(guān)的信息。
[0020]在判別所述輸入數(shù)據(jù)究竟是正常數(shù)據(jù)還是非正常數(shù)據(jù)的步驟中,可將包含于所述元數(shù)據(jù)的數(shù)據(jù)字段的個數(shù)或所述分隔符的個數(shù)中的一個與包含于所述輸入數(shù)據(jù)的記錄的數(shù)據(jù)字段的個數(shù)或分隔符的個數(shù)中的一個進行比較,或者按包含于所述輸入數(shù)據(jù)的記錄的每一數(shù)據(jù)字段分別判斷包含于所述元數(shù)據(jù)的每一數(shù)據(jù)字段各自的數(shù)據(jù)模式是否匹配,從而判別所述輸入數(shù)據(jù)的各個記錄究竟是正常數(shù)據(jù)還是非正常數(shù)據(jù)。
[0021]在修正所述非正常數(shù)據(jù)的步驟中,可包括如下步驟:提取所述正常數(shù)據(jù)內(nèi)的特定數(shù)據(jù)模式;將所述非正常數(shù)據(jù)內(nèi)的數(shù)據(jù)字段中與所述特定數(shù)據(jù)模式相匹配的數(shù)據(jù)字段作為基準而將所述非正常數(shù)據(jù)分隔為多個虛擬記錄;以所述虛擬記錄單位修正所述非正常數(shù)據(jù)。
[0022]在以所述虛擬記錄單位修正所述非正常數(shù)據(jù)的步驟中,可包括如下步驟:按所述正常數(shù)據(jù)內(nèi)的每一數(shù)據(jù)字段分別提取一個以上的特定數(shù)據(jù)值;將所述虛擬記錄內(nèi)的數(shù)據(jù)字段中除了存在所述特定數(shù)據(jù)值的數(shù)據(jù)字段以外的其余數(shù)據(jù)字段所包含的數(shù)據(jù)進行修正。
[0023]在修正包含于所述其余數(shù)據(jù)字段的數(shù)據(jù)的步驟中,可將包含于所述其余數(shù)據(jù)字段的數(shù)據(jù)內(nèi)的特定字符串或字符刪除,或者置換為已設(shè)定的字符串或字符。
[0024]在以所述虛擬記錄單位修正所述非正常數(shù)據(jù)的步驟中,可包括如下步驟:每當修正所述虛擬記錄時判別所述虛擬記錄是否為正常數(shù)據(jù);在所述虛擬記錄被判別為正常數(shù)據(jù)的情況下,將所述虛擬記錄存儲于所述數(shù)據(jù)處理單元內(nèi)的數(shù)據(jù)庫;在虛擬記錄全部都存儲于所述數(shù)據(jù)庫的情況下,將修正的所述非正常數(shù)據(jù)存儲于所述第一存儲單元。
[0025]在以所述虛擬記錄單位修正所述非正常數(shù)據(jù)的步驟中,可包括如下步驟:每當修正所述虛擬記錄時判別所述虛擬記錄是否為正常數(shù)據(jù);在所述虛擬記錄被判別為不是正常數(shù)據(jù)的情況下,再次修正目前為止修正的全部虛擬記錄。
[0026]根據(jù)本發(fā)明的實施例,在數(shù)據(jù)輸入過程中將非正常數(shù)據(jù)臨時存儲于第二存儲單元并繼續(xù)進行針對正常數(shù)據(jù)的輸入,從而可以防止基于非正常數(shù)據(jù)的輸入錯誤的數(shù)據(jù)處理時間的延遲。據(jù)此,可以防止非正常數(shù)據(jù)引起數(shù)據(jù)的存儲及加載作業(yè)中斷,且無需將已存儲的正常數(shù)據(jù)無效化。而且,可以改善不必要的存儲、加載反復作業(yè)。
[0027]并且,根據(jù)本發(fā)明的實施例,可利用正常數(shù)據(jù)的數(shù)據(jù)模式和數(shù)據(jù)值而有效地探尋非正常數(shù)據(jù)內(nèi)的出錯位置。
【附圖說明】
[0028]圖1為表示根據(jù)本發(fā)明的一個實施例的數(shù)據(jù)處理系統(tǒng)的詳細構(gòu)成的模塊圖。
[0029]圖2為根據(jù)本發(fā)明的一個實施例的輸入數(shù)據(jù)的示例。
[0030]圖3為根據(jù)本發(fā)明的一個實施例的正常數(shù)據(jù)和非正常數(shù)據(jù)的示例。
[0031]圖4為概略地表示根據(jù)本發(fā)明的一個實施例的數(shù)據(jù)處理過程的圖。
[0032]圖5為表示將根據(jù)本發(fā)明的一個實施例的非正常數(shù)據(jù)修正為具有與正常數(shù)據(jù)相同的結(jié)構(gòu)的結(jié)果的圖。
[0033]圖6為表示根據(jù)本發(fā)明的一個實施例的輸入數(shù)據(jù)被存儲和加載的最終結(jié)果的圖。
[0034]圖7為用于說明根據(jù)本發(fā)明的一個實施例的數(shù)據(jù)處理方法的順序圖。
[0035]圖8為用于說明圖7的S706的示例性實施例的順序圖。
[0036]圖9為用于說明圖7的S706的另一示例性實施例的順序圖。
[0037]圖10為用于說明圖7的S714的示例性實施例的順序圖。
[0038]符號說明:
[0039]100:數(shù)據(jù)處理系統(tǒng) 102:數(shù)據(jù)判別單元
[0040]104:第一存儲單元 106:第二存儲單元
[0041]108:數(shù)據(jù)處理單元 150:輸入數(shù)據(jù)
[0042]160:元數(shù)據(jù)
【具體實施方式】
[0043]以下,參照【附圖說明】本發(fā)明的具體實施例。然而這只不過是示例性實施例,本發(fā)明并不局限于此。
[0044]在說明本發(fā)明時,如果認為對有關(guān)本發(fā)明的公知技術(shù)的具體說明有