本發(fā)明涉及數(shù)據(jù)處理領域,尤其涉及一種數(shù)據(jù)預處理方法及裝置。
背景技術:
:隨著計算機、互聯(lián)網(wǎng)和物聯(lián)網(wǎng)等技術在各個領域的大規(guī)模應用,產(chǎn)生的數(shù)據(jù)量也隨之增多。由于數(shù)據(jù)源產(chǎn)生的數(shù)據(jù)類型多樣,格式不一,因此,在處理數(shù)據(jù)之前,要先對數(shù)據(jù)進行預處理,并在預處理后才執(zhí)行對數(shù)據(jù)的具體處理操作,而由于數(shù)據(jù)的類型多樣和格式不一,導致數(shù)據(jù)的結構各不相同,對于不同的數(shù)據(jù),需要開發(fā)不同的軟件,分別對每種數(shù)據(jù)進行預處理,并在預處理結束后,才將數(shù)據(jù)集中到處理器中執(zhí)行后續(xù)的處理操作,而通過不同的開發(fā)軟件對數(shù)據(jù)進行預處理,導致數(shù)據(jù)預處理的過程操作耗時,效率低,操作成本高。技術實現(xiàn)要素:本發(fā)明的主要目的在于提出一種數(shù)據(jù)預處理方法及裝置,旨在解決傳統(tǒng)的處理預處理方式,對數(shù)據(jù)預處理的過程操作耗時,效率低,操作成本高的技術問題。為實現(xiàn)上述目的,本發(fā)明提供的一種數(shù)據(jù)預處理方法,所述數(shù)據(jù)預處理方法包括以下步驟:在接收到數(shù)據(jù)預處理指令時,獲取待處理的數(shù)據(jù);將獲取的所述數(shù)據(jù)映射為預設消息模型對應的輸入消息;采用預設的處理器對所述輸入消息進行邏輯處理,以得到輸出消息,其中,所述處理器對所述輸入消息進行邏輯處理包括:提取所述輸入消息的字段信息,并對所述字段信息進行加工變形,以得到輸出消息。優(yōu)選地,所述采用預設的處理器對所述輸入消息進行邏輯處理,以得到輸出消息的步驟包括:確定所述輸入消息的類型;根據(jù)預設的類型與消息執(zhí)行流的映射關系,獲取確定的類型對應的消息 執(zhí)行流;基于獲取的所述消息執(zhí)行流確定所述處理器,其中,確定的所述處理器包括輸出消息處理器;根據(jù)確定的所述處理器對所述輸入消息進行邏輯處理,以得到輸出消息。優(yōu)選地,在確定的所述處理器還包括臨時消息處理器及/或緩存消息處理器時,所述根據(jù)確定的所述處理器對所述輸入消息進行邏輯處理,以得到輸出消息的步驟包括:確定所述臨時消息處理器及/或所述緩存消息處理器對應的屬性;在所述臨時消息處理器及/或所述緩存消息處理器對應的屬性為可創(chuàng)建屬性時,根據(jù)所述臨時消息處理器對所述輸入消息進行邏輯處理以得到臨時消息,及/或根據(jù)所述緩存消息處理器對所述輸入消息進行邏輯處理以得到緩存消息;根據(jù)所述輸出消息處理器對所述臨時消息及/或所述緩存消息進行邏輯處理,以得到輸出消息。優(yōu)選地,所述根據(jù)所述輸出消息處理器對所述臨時消息及/或所述緩存消息進行邏輯處理,以得到輸出消息的同時,若接收到臨時消息的存儲指令,執(zhí)行以下步驟:將所述臨時消息存儲到預設的緩存區(qū)域中,以生成緩存消息,以供下次接收到數(shù)據(jù)預處理指令時,將所述緩存區(qū)域中的緩存消息作為新的輸入消息的被引用數(shù)據(jù)。優(yōu)選地,所述數(shù)據(jù)預處理方法還包括:在所述緩存區(qū)域的消息存儲容量值達到預設容量值時,刪除所述緩存區(qū)域中的部分緩存消息,其中,刪除的緩存消息的訪問時間早于未刪除的緩存消息的訪問時間;或者,在所述緩存區(qū)域中有緩存消息的訪問時間點距離當前時間點達到預設時長時,刪除所述緩存消息。此外,為實現(xiàn)上述目的,本發(fā)明還提出一種數(shù)據(jù)預處理裝置,所述數(shù)據(jù)預處理裝置包括:獲取模塊,用于在接收到數(shù)據(jù)預處理指令時,獲取待處理的數(shù)據(jù);映射模塊,用于將獲取的所述數(shù)據(jù)映射為預設消息模型對應的輸入消息;處理模塊,用于采用預設的處理器對所述輸入消息進行邏輯處理,以得到輸出消息,其中,所述處理器對所述輸入消息進行邏輯處理包括:提取所述輸入消息的字段信息,并對所述字段信息進行加工變形,以得到輸出消息。優(yōu)選地,所述處理模塊包括:第一確定子模塊,用于確定所述輸入消息的類型;獲取子模塊,用于根據(jù)預設的類型與消息執(zhí)行流的映射關系,獲取確定的類型對應的消息執(zhí)行流;第二確定子模塊,用于基于獲取的所述消息執(zhí)行流確定所述處理器,其中,確定的所述處理器包括輸出消息處理器;處理子模塊,用于根據(jù)確定的所述處理器對所述輸入消息進行邏輯處理,以得到輸出消息。優(yōu)選地,在確定的所述處理器還包括臨時消息處理器及/或緩存消息處理器時,所述處理子模塊包括:確定單元,用于確定所述臨時消息處理器及/或所述緩存消息處理器對應的屬性;第一處理單元,用于在所述臨時消息處理器及/或所述緩存消息處理器對應的屬性為可創(chuàng)建屬性時,根據(jù)所述臨時消息處理器對所述輸入消息進行邏輯處理以得到臨時消息,及/或根據(jù)所述緩存消息處理器對所述輸入消息進行邏輯處理以得到緩存消息;第二處理單元,用于根據(jù)所述輸出消息處理器對所述臨時消息及/或所述緩存消息進行邏輯處理,以得到輸出消息。優(yōu)選地,所述數(shù)據(jù)預處理裝置還包括:存儲單元,用于若接收到臨時消息的存儲指令,將所述臨時消息存儲到預設的緩存區(qū)域中,以生成緩存消息,以供下次接收到數(shù)據(jù)預處理指令時,將所述緩存區(qū)域中的緩存消息作為新的輸入消息的被引用數(shù)據(jù)。優(yōu)選地,所述數(shù)據(jù)預處理裝置還包括:刪除模塊,用于在所述緩存區(qū)域的消息存儲容量值達到預設容量值時,刪除所述緩存區(qū)域中的部分緩存消息,其中,刪除的緩存消息的訪問時間早于未刪除的緩存消息的訪問時間;或者,在所述緩存區(qū)域中有緩存消息的訪問時間點距離當前時間點達到預設時長時,刪除所述緩存消息。本發(fā)明提出的數(shù)據(jù)預處理方法及裝置,在接收到數(shù)據(jù)預處理指令時,獲取待處理的數(shù)據(jù),將獲取的所述數(shù)據(jù)映射為預設消息模型對應的輸入消息,采用預設的處理器對所述輸入消息進行邏輯處理,以得到輸出消息,其中,所述處理器對所述輸入消息進行邏輯處理包括:提取所述輸入消息的字段信息,并對所述字段信息進行加工變形,以得到輸出消息,實現(xiàn)了將不同類型的數(shù)據(jù)映射為消息模型對應的輸入消息,也就是將數(shù)據(jù)去結構化,以提取出輸入消息的字段信息,并對提取的字段信息進行邏輯處理,最終得到輸出消息,而不是在數(shù)據(jù)的類型結構不同時,需要不同的軟件分別對所述進行預處理,本發(fā)明提高了數(shù)據(jù)預處理的效率,并降低了數(shù)據(jù)預處理的操作成本。附圖說明圖1為本發(fā)明數(shù)據(jù)預處理方法較佳實施例的流程示意圖;圖2為本發(fā)明采用預設的處理器對所述輸入消息進行邏輯處理,以得到輸出消息較佳實施例的流程示意圖;圖3為本發(fā)明根據(jù)確定的所述處理器對所述輸入消息進行邏輯處理較佳實施例的流程示意圖;圖4為本發(fā)明數(shù)據(jù)預處理裝置較佳實施例的功能模塊示意圖;圖5為圖4中處理模塊的細化功能模塊示意圖;圖6為圖5中處理子模塊的細化功能模塊示意圖;圖7為本發(fā)明的實施場景的示意圖;圖8為本發(fā)明預設的消息執(zhí)行流的示意圖;圖9為圖8中消息執(zhí)行流中各個消息對應的高度值的示意圖。本發(fā)明目的實現(xiàn)、功能特點及優(yōu)點將結合實施例,參照附圖做進一步說明。具體實施方式應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限 定本發(fā)明。本發(fā)明提供一種數(shù)據(jù)預處理方法。參照圖1,圖1為本發(fā)明數(shù)據(jù)預處理方法第一實施例的流程示意圖。本實施例提出一種數(shù)據(jù)預處理方法,所述數(shù)據(jù)預處理方法包括:步驟s10,在接收到數(shù)據(jù)預處理指令時,獲取待處理的數(shù)據(jù);在本實施例中,在接收到所述數(shù)據(jù)預處理指令時,獲取所述待處理的數(shù)據(jù),所述待處理數(shù)據(jù)包括:數(shù)據(jù)源產(chǎn)生的數(shù)據(jù),值得注意的是,在數(shù)據(jù)預處理過程中,可獲取上一次數(shù)據(jù)預處理過程產(chǎn)生的臨時消息或緩存消息,并將所述臨時消息或緩存消息作為待處理數(shù)據(jù)的被引用數(shù)據(jù),進一步地,在上一次數(shù)據(jù)預處理過程中產(chǎn)生的臨時消息可先存儲到預設的緩存空間中成為緩存消息,然后在本次進行數(shù)據(jù)預處理時,將所述緩存區(qū)域中的緩存消息作為待處理數(shù)據(jù)的被引用數(shù)據(jù)。步驟s20,將獲取的所述數(shù)據(jù)映射為預設消息模型對應的輸入消息;在本實施例中,數(shù)據(jù)預處理過程中是先將數(shù)據(jù)抽象成消息,再對抽象后的消息進行預處理,將數(shù)據(jù)抽象成消息的方式通過加載預設的消息模型,并將所述數(shù)據(jù)映射為所述消息模型對應的輸入消息,將所述數(shù)據(jù)映射為所述消息模型對應的輸入消息的方式為:提取所述數(shù)據(jù)中包含的各個字段信息,根據(jù)預設的消息模型,將提取的各個字段信息按照所述消息模型的形式進行排列,最終將排列好的字段信息作為輸入消息。具體地,所述輸入消息是由一組連續(xù)的字段組成,字段可以是簡單的數(shù)據(jù)類型,也可以是復雜的組合數(shù)據(jù)類型。而所述消息模型的結構內容包括:1、消息名稱、消息類型;其中,所述消息名稱是以字母開頭的字符串,不能包含的特殊字符包括空格,‘.’,‘-’等,并且由于消息名稱需要在模型中相互引用,因此模型名稱必須全局唯一,且能代表描述消息的含義,消息名稱同時也作為模型配置的文件名;而所述消息類型具體為所述消息模型的編碼方式,所述消息模型的編碼方式可以是固定格式編碼,如tlv(type-length-value,一種編碼格式)編碼,也可以是自定義的一些復雜編碼等等。2、消息的邏輯條件表達式:模型中會配置一些邏輯表達式來控制消息被處理的流程,比如緩存消息的創(chuàng)建條件表達式處理器和刪除條件表達式處理器,當創(chuàng)建條件表達式滿足時,消息才會被創(chuàng)建并緩存,刪除條件表達式滿足時,相應的消息在流程處理完就會從緩存中刪除;3、 消息的組成:消息由字段組成。通常,消息模型用xml(extensiblemarkuplanguage,可擴展標記語言)表示,考慮到消息模型動態(tài)變更,可以用關系數(shù)據(jù)庫保存消息模型。本實施例中,所述輸入消息可以為移動網(wǎng)絡的呼叫信令,也可以是用戶的上網(wǎng)記錄。而所述字段的結構內容包括:1、字段名稱、字段類型、字段長度等;其中,所述字段名稱以字母開頭的字符串,不能包含的特殊字符包括空格,‘.’,‘-’等,而且字段名稱在每個消息模型內必須唯一,且能代表字段的含義;而所述字段類型可以是基本的字段類型如整型、字符串等,也可以復合的字段類型,其中,整型可以分為單字節(jié)、雙字節(jié)、四字節(jié)和長整型等;而字段長度例如[0,65535],值得注意的是,當字段是字符串的類型時,length表示字符串最大長度。2、字段的處理器:數(shù)據(jù)預處理過程新生成的消息字段可以由已經(jīng)生成的消息字段經(jīng)過加工或運算得到,這種加工和運算可以抽象出通用的處理器。對于復雜的加工邏輯可以通過內置處理器實現(xiàn),一般的邏輯處理可以通過表達式處理器實現(xiàn),表達式處理器是支持在線編輯和編譯的邏輯處理代碼,表達式隱含了消息的關聯(lián)關系和處理邏輯。其中,每個表達式中可以包含多個子表達式,每個子表達式之間用“:”分隔或其他特殊符號分隔,當?shù)谝粋€子表達式處理失敗時,就會處理第二個子表達式,直到成功才中止繼續(xù)處理后續(xù)的表達式??梢岳斫獾氖?,表達式處理器系統(tǒng)會動態(tài)地編譯成機器碼而不是解釋執(zhí)行,這樣即可以保證處理器能靈活配置同時又能高效執(zhí)行,內置處理器和表達式處理器相互可以組合成組合處理器。為了模型的字段描述更加直觀,將處理器作為字段的屬性放到模型配置中。步驟s30,采用預設的處理器對所述輸入消息進行邏輯處理,以得到輸出消息,其中,所述處理器對所述輸入消息進行邏輯處理包括:提取所述輸入消息的字段信息,并對所述字段信息進行加工變形,以得到輸出消息。在本實施例中,采用預設的處理器對所述輸入消息進行邏輯處理,以得到輸出消息,也就是說先提取所述輸入消息的字段信息,然后對所述字段信息進行邏輯加工處理,將所述字段信息進行加工變形,得到待輸出形式的消息,并將所述待輸出的形式的消息作為輸出消息。為更好理解本方案,舉例應用場景如下:數(shù)據(jù)預處理系統(tǒng)啟動時會加載預設的消息模型,參照圖7,消息模型包括輸入消息模型、中間消息(包括臨 時消息和緩存消息)模型和預處理后的輸出消息模型。加載完所述消息模型后,將數(shù)據(jù)映射為可以直接高效定位的內部結構,得到輸入消息,進一步地,此時可加載配置信息,將加載的配置信息轉化為緩存消息,配置信息可以以多種形式存在,比如關系數(shù)據(jù)庫、屬性文件、xml文件等,緩存消息存在存在關鍵字,在內部會建立關鍵字和緩存消息的映射,允許按關鍵字查找或條件匹配查找。緩存消息可以用于數(shù)據(jù)回填、數(shù)據(jù)歸約等大數(shù)據(jù)預處理,同時,加載消息接收服務,即確定數(shù)據(jù)預處理后待傳輸?shù)膶ο螅铀鱿⒔邮辗?,所述消息接收服務可以是udp(userdatagramprotocol,用戶數(shù)據(jù)報協(xié)議)協(xié)議或tcp(transmissioncontrolprotocol,傳輸控制協(xié)議)協(xié)議的網(wǎng)絡接收服務,具體根據(jù)實際網(wǎng)絡場景選擇相應的協(xié)議。最后,通過預設的處理器對所述輸入進行處理,以提取所述輸入消息中的字段信息,并對提取的所述字段信息進行邏輯加工,以得到待輸出形式的消息,最終將所述輸出消息進行輸出。本實施例提出的數(shù)據(jù)預處理方法,在接收到數(shù)據(jù)預處理指令時,獲取待處理的數(shù)據(jù),將獲取的所述數(shù)據(jù)映射為預設消息模型對應的輸入消息,采用預設的處理器對所述輸入消息進行邏輯處理,以得到輸出消息,其中,所述處理器對所述輸入消息進行邏輯處理包括:提取所述輸入消息的字段信息,并對所述字段信息進行加工變形,以得到輸出消息,實現(xiàn)了將不同類型的數(shù)據(jù)映射為消息模型對應的輸入消息,也就是將數(shù)據(jù)去結構化,以提取出輸入消息的字段信息,并對提取的字段信息進行邏輯處理,最終得到輸出消息,而不是在數(shù)據(jù)的類型結構不同時,需要不同的軟件分別對所述進行預處理,本發(fā)明提高了數(shù)據(jù)預處理的效率,并降低了數(shù)據(jù)預處理的操作成本。進一步地,為了提高數(shù)據(jù)預處理的靈活性,基于第一實施例提出本發(fā)明數(shù)據(jù)預處理方法的第二實施例,在本實施例中,參照圖2,所述步驟s30包括:步驟s31,確定所述輸入消息的類型;步驟s32,根據(jù)預設的類型與消息執(zhí)行流的映射關系,獲取確定的類型對應的消息執(zhí)行流;步驟s33,基于獲取的所述消息執(zhí)行流確定處理器,其中,確定的所述處理器包括輸出消息處理器;在本實施例中,先確定所述輸入消息的類型,所述類型包括呼叫類型、上網(wǎng)類型等等,在確定輸入消息的類型后,根據(jù)預設的類型與消息執(zhí)行流的映射關系,獲取確定的類型對應的消息執(zhí)行流,可以理解的是,系統(tǒng)中事先存儲了消息類型與消息類型對應的執(zhí)行流,即哪種消息對應哪種執(zhí)行流,具體參照圖8,將輸入消息的類型定義為a,則可知道輸入消息對應的執(zhí)行流為a-b-c-e-d??梢岳斫猓藭r所述執(zhí)行流對應的處理器包括中間消息處理器和輸出消息處理器,而所述中間消息處理器包括緩存消息處理器和臨時消息處理器。值得注意的是,每個輸入消息類型對應的執(zhí)行流只有一種。步驟s34,根據(jù)確定的所述處理器對所述輸入消息進行邏輯處理,以得到輸出消息。本實施例中,同樣參照圖8,當所述輸入消息的類型為e時,所述消息執(zhí)行流為e-d,此時,可知道數(shù)據(jù)預處理過程中僅包括輸入消息和輸出消息,不包含中間消息,此時,所述確定的所述處理器為輸出消息處理器,所述輸出消息處理器對所述輸入消息e進行邏輯加工變形處理,以得到輸出消息d。在本實施例中,參照圖3,在確定的所述處理器還包括臨時消息處理器及/或緩存消息處理器時,所述步驟s34包括:步驟s341,確定所述臨時消息處理器及/或所述緩存消息處理器對應的屬性;步驟s342,在所述臨時消息處理器及/或所述緩存消息處理器對應的屬性為可創(chuàng)建屬性時,根據(jù)所述臨時消息處理器對所述輸入消息進行邏輯處理以得到臨時消息,及/或根據(jù)所述緩存消息處理器對所述輸入消息進行邏輯處理以得到緩存消息;步驟s343,根據(jù)所述輸出消息處理器對所述臨時消息及/或所述緩存消息進行邏輯處理,以得到輸出消息。在本實施例中,在確定了所述處理器后,先確定所述處理器對應的屬性,即在確定的所述處理器還包括臨時消息處理器及/或緩存消息處理器時,確定所述臨時消息處理器及/或所述緩存消息處理器對應的屬性,在所述臨時消息處理器及/或所述緩存消息處理器對應的屬性為可創(chuàng)建屬性時,根據(jù)所述臨時消息處理器對所述輸入消息進行邏輯處理以得到臨時消息,及/或根據(jù)所述緩存消息處理器對所述輸入消息進行邏輯處理以得到緩存消息,根據(jù)所述輸出 消息處理器對所述臨時消息及/或所述緩存消息進行邏輯處理,以得到輸出消息??梢岳斫獾氖?,除了輸入消息外,其他消息都可以存在創(chuàng)建條件處理器,即所述臨時消息、緩存消息以及所述輸出消息都存在創(chuàng)建條件處理器,而所述創(chuàng)建條件處理器用于創(chuàng)建消息,例如,在臨時消息的創(chuàng)建條件處理器對應的屬性為可創(chuàng)建屬性時,此時,所述輸入消息通過所述臨時消息處理器對應的創(chuàng)建條件處理器可生成臨時消息,在臨時消息的創(chuàng)建條件處理器對應的屬性為不可創(chuàng)建屬性時,此時,則所述輸入消息不生成臨時消息,進一步地,所述緩存消息還存在更新條件處理器和刪除條件處理器,即僅僅所述緩存消息處理器才對應更新條件處理器和刪除條件處理器,所述更新處理器用于更新緩存消息,所述刪除條件處理器用于刪除老化的緩存消息。本實施例中,為更好理解本實施例,同樣參照圖8,當所述輸入消息的類型為a時,所述消息執(zhí)行流為a-b-c-e-d,可以理解的是,在得到所述消息執(zhí)行流后,還可以根據(jù)消息模型中的創(chuàng)建條件和刪除條件,決定是否生成該緩存消息或輸出消息,或者一個消息執(zhí)行流處理完后,是否刪除該消息。即根據(jù)所述消息執(zhí)行流中對應的處理器的屬性確定是否能生成消息,若處理器的屬性為不可創(chuàng)建屬性,則所述處理器無法生成消息內容,在所述輸入消息的類型為a時,所述執(zhí)行流為a-b-c-e-d,若此時僅僅是消息c對應的處理器的屬性為可創(chuàng)建屬性,其它各個消息對應的處理器的屬性為不可創(chuàng)建屬性,則最終生成的輸出消息為c。若各個消息對應的處理器的屬性都為可創(chuàng)建屬性,則需要先確定各個消息對應的高度值,按照各個消息的高度值確定各個消息的輸出順序。即,首先加載消息模型,建立內部映射關系。根據(jù)消息之間的引用關系建立消息執(zhí)行流,當一個消息沒有依賴其他消息時,可以認為是輸入消息,那么就以該消息作為引用關系的入口,遍歷關系圖,找到引用關系的列表。如下表1:a、b、c、d和e五個消息依賴關系,a是沒有依賴任何其他消息,所以它是輸入消息,那么就可以以a為入口,遍歷引用關系,每個消息的高度都是等于被其依賴的消息中高度最大值加上一。根據(jù)每個消息的高度值大小進行排序,最后得到一個依賴鏈表,保證被依賴的消息排在前面,可參照圖9,最終,可得知輸出消息為d。進一步地,為了提高數(shù)據(jù)預處理的靈活性,基于第二實施例提出本發(fā)明數(shù)據(jù)預處理方法的第三實施例,在本實施例中,所述執(zhí)行步驟s343的同時,若接收到臨時消息的存儲指令,執(zhí)行以下步驟:將所述臨時消息存儲到預設的緩存區(qū)域中,以生成緩存消息,以供下次接收到數(shù)據(jù)預處理指令時,將所述緩存區(qū)域中的緩存消息作為新的輸入消息的被引用數(shù)據(jù)。在本實施例中,在根據(jù)所述輸出消息處理器對所述臨時消息及所述緩存消息進行邏輯處理,以得到輸出消息的同時,若接收到臨時消息的存儲指令,將所述臨時消息存儲到預設的緩存區(qū)域中,以生成緩存消息,可參照圖7,將臨時消息流到緩存消息處理器中,以存儲到預設的緩存區(qū)域中生成緩存消息,根據(jù)生成的緩存消息,可以理解的是,根據(jù)所述緩存消息處理器對所述輸入消息進行邏輯處理生成的緩存消息也是存儲到預設的緩存區(qū)域中,在下次接收到數(shù)據(jù)預處理指令時,可將所述緩存區(qū)域中的緩存消息作為新的輸入消息的被引用數(shù)據(jù),實現(xiàn)了下次處理數(shù)據(jù)時,可將本次產(chǎn)生的臨時消息或者緩存消息作為被引用數(shù)據(jù),提高了數(shù)據(jù)處理的效率。本實施例中,數(shù)據(jù)庫中或者是一些配置化的數(shù)據(jù)可以動態(tài)加載到緩存中,以便預處理過程中可以作為被引用的數(shù)據(jù)。進一步地,為了提高數(shù)據(jù)預處理的靈活性,基于第三實施例提出本發(fā)明數(shù)據(jù)預處理方法的第四實施例,在本實施例中,所述數(shù)據(jù)預處理方法還包括:在所述緩存區(qū)域的消息存儲容量值達到預設容量值時,刪除所述緩存區(qū)域中的部分緩存消息,其中,刪除的緩存消息的訪問時間早于未刪除的緩存消息的訪問時間;或者,在所述緩存區(qū)域中有緩存消息的訪問時間點距離當前時間點達到預設時長時,刪除所述緩存消息。在本實施例中,緩存消息可能會隨著消息不斷處理,而越來越多,因此,緩存消息一般需要存在最大數(shù)量限制、保存周期和淘汰刪除機制,因此,本實施例中通過定時刪除所述緩存區(qū)域中的緩存消息,避免了緩存區(qū)域中的緩存消息占用過多的容量,從而降低了數(shù)據(jù)預處理的運行效率,本實施例通過定時刪除緩存消息,增大了緩存區(qū)域的存儲空間,提高了系統(tǒng)的運行效率。進一步地,緩存消息存在對應的定時服務,每個緩存消息本身綁定定時器信息,使得當緩存區(qū)域中存在海量數(shù)據(jù)時,可以自動刪除緩存消息。本發(fā)明進一步提供一種數(shù)據(jù)預處理裝置。參照圖4,圖4為本發(fā)明數(shù)據(jù)預處理裝置第一實施例的功能模塊示意圖。需要強調的是,對本領域的技術人員來說,圖4所示功能模塊圖僅僅是一個較佳實施例的示例圖,本領域的技術人員圍繞圖4所示的數(shù)據(jù)預處理裝置的功能模塊,可輕易進行新的功能模塊的補充;各功能模塊的名稱是自定義名稱,僅用于輔助理解該數(shù)據(jù)預處理裝置的各個程序功能塊,不用于限定本發(fā)明的技術方案,本發(fā)明技術方案的核心是,各自定義名稱的功能模塊所要達成的功能。本實施例提出一種數(shù)據(jù)預處理裝置,所述數(shù)據(jù)預處理裝置包括:獲取模塊10,用于在接收到數(shù)據(jù)預處理指令時,獲取待處理的數(shù)據(jù);在本實施例中,在接收到所述數(shù)據(jù)預處理指令時,所述獲取模塊10獲取所述待處理的數(shù)據(jù),所述待處理數(shù)據(jù)包括:數(shù)據(jù)源產(chǎn)生的數(shù)據(jù),值得注意的是,在數(shù)據(jù)預處理過程中,可獲取上一次數(shù)據(jù)預處理過程產(chǎn)生的臨時消息或緩存消息,并將所述臨時消息或緩存消息作為待處理數(shù)據(jù)的被引用數(shù)據(jù),進一步地,在上一次數(shù)據(jù)預處理過程中產(chǎn)生的臨時消息可先存儲到預設的緩存空間中成為緩存消息,然后在本次進行數(shù)據(jù)預處理時,將所述緩存區(qū)域中的緩存消息作為待處理數(shù)據(jù)的被引用數(shù)據(jù)。映射模塊20,用于將獲取的所述數(shù)據(jù)映射為預設消息模型對應的輸入消息;在本實施例中,數(shù)據(jù)預處理過程中是先將數(shù)據(jù)抽象成消息,再對抽象后 的消息進行預處理,將數(shù)據(jù)抽象成消息的方式通過加載預設的消息模型,即所述映射模塊20將所述數(shù)據(jù)映射為所述消息模型對應的輸入消息,所述映射模塊20將所述數(shù)據(jù)映射為所述消息模型對應的輸入消息的方式為:提取所述數(shù)據(jù)中包含的各個字段信息,根據(jù)預設的消息模型,將提取的各個字段信息按照所述消息模型的形式進行排列,最終將排列好的字段信息作為輸入消息。具體地,所述輸入消息是由一組連續(xù)的字段組成,字段可以是簡單的數(shù)據(jù)類型,也可以是復雜的組合數(shù)據(jù)類型。而所述消息模型的結構內容包括:1、消息名稱、消息類型;其中,所述消息名稱是以字母開頭的字符串,不能包含的特殊字符包括空格,‘.’,‘-’等,并且由于消息名稱需要在模型中相互引用,因此模型名稱必須全局唯一,且能代表描述消息的含義,消息名稱同時也作為模型配置的文件名;而所述消息類型具體為所述消息模型的編碼方式,所述消息模型的編碼方式可以是固定格式編碼,如tlv(type-length-value,一種編碼格式)編碼,也可以是自定義的一些復雜編碼等等。2、消息的邏輯條件表達式:模型中會配置一些邏輯表達式來控制消息被處理的流程,比如緩存消息的創(chuàng)建條件表達式處理器和刪除條件表達式處理器,當創(chuàng)建條件表達式滿足時,消息才會被創(chuàng)建并緩存,刪除條件表達式滿足時,相應的消息在流程處理完就會從緩存中刪除;3、消息的組成:消息由字段組成。通常,消息模型用xml(extensiblemarkuplanguage,可擴展標記語言)表示,考慮到消息模型動態(tài)變更,可以用關系數(shù)據(jù)庫保存消息模型。本實施例中,所述輸入消息可以為移動網(wǎng)絡的呼叫信令,也可以是用戶的上網(wǎng)記錄。而所述字段的結構內容包括:1、字段名稱、字段類型、字段長度等;其中,所述字段名稱以字母開頭的字符串,不能包含的特殊字符包括空格,‘.’,‘-’等,而且字段名稱在每個消息模型內必須唯一,且能代表字段的含義;而所述字段類型可以是基本的字段類型如整型、字符串等,也可以復合的字段類型,其中,整型可以分為單字節(jié)、雙字節(jié)、四字節(jié)和長整型等;而字段長度例如[0,65535],值得注意的是,當字段是字符串的類型時,length表示字符串最大長度。2、字段的處理器:數(shù)據(jù)預處理過程新生成的消息字段可以由已經(jīng)生成的消息字段經(jīng)過加工或運算得到,這種加工和運算可以抽象出通用的處理器。對于復雜的加工邏輯可以通過內置處理器實現(xiàn),一般的邏輯處理可以通過表達式處理器實現(xiàn),表達式處理器是支持在線編輯和編譯的邏輯處 理代碼,表達式隱含了消息的關聯(lián)關系和處理邏輯。其中,每個表達式中可以包含多個子表達式,每個子表達式之間用“:”分隔或其他特殊符號分隔,當?shù)谝粋€子表達式處理失敗時,就會處理第二個子表達式,直到成功才中止繼續(xù)處理后續(xù)的表達式??梢岳斫獾氖?,表達式處理器系統(tǒng)會動態(tài)地編譯成機器碼而不是解釋執(zhí)行,這樣即可以保證處理器能靈活配置同時又能高效執(zhí)行,內置處理器和表達式處理器相互可以組合成組合處理器。為了模型的字段描述更加直觀,將處理器作為字段的屬性放到模型配置中。處理模塊30,用于采用預設的處理器對所述輸入消息進行邏輯處理,以得到輸出消息,其中,所述處理器對所述輸入消息進行邏輯處理包括:提取所述輸入消息的字段信息,并對所述字段信息進行加工變形,以得到輸出消息。在本實施例中,所述處理模塊30采用預設的處理器對所述輸入消息進行邏輯處理,以得到輸出消息,也就是說先提取所述輸入消息的字段信息,然后對所述字段信息進行邏輯加工處理,將所述字段信息進行加工變形,得到待輸出形式的消息,并將所述待輸出的形式的消息作為輸出消息。為更好理解本方案,舉例應用場景如下:數(shù)據(jù)預處理系統(tǒng)啟動時會加載預設的消息模型,參照圖7,消息模型包括輸入消息模型、中間消息(包括臨時消息和緩存消息)模型和預處理后的輸出消息模型。加載完所述消息模型后,將數(shù)據(jù)映射為可以直接高效定位的內部結構,得到輸入消息,進一步地,此時可加載配置信息,將加載的配置信息轉化為緩存消息,配置信息可以以多種形式存在,比如關系數(shù)據(jù)庫、屬性文件、xml文件等,緩存消息存在存在關鍵字,在內部會建立關鍵字和緩存消息的映射,允許按關鍵字查找或條件匹配查找。緩存消息可以用于數(shù)據(jù)回填、數(shù)據(jù)歸約等大數(shù)據(jù)預處理,同時,加載消息接收服務,即確定數(shù)據(jù)預處理后待傳輸?shù)膶ο螅铀鱿⒔邮辗?,所述消息接收服務可以是udp(userdatagramprotocol,用戶數(shù)據(jù)報協(xié)議)協(xié)議或tcp(transmissioncontrolprotocol,傳輸控制協(xié)議)協(xié)議的網(wǎng)絡接收服務,具體根據(jù)實際網(wǎng)絡場景選擇相應的協(xié)議。最后,通過預設的處理器對所述輸入進行處理,以提取所述輸入消息中的字段信息,并對提取的所述字段信息進行邏輯加工,以得到待輸出形式的消息,最終將所述輸出消息進行輸出。本實施例提出的數(shù)據(jù)預處理裝置,在接收到數(shù)據(jù)預處理指令時,獲取待處理的數(shù)據(jù),將獲取的所述數(shù)據(jù)映射為預設消息模型對應的輸入消息,采用預設的處理器對所述輸入消息進行邏輯處理,以得到輸出消息,其中,所述處理器對所述輸入消息進行邏輯處理包括:提取所述輸入消息的字段信息,并對所述字段信息進行加工變形,以得到輸出消息,實現(xiàn)了將不同類型的數(shù)據(jù)映射為消息模型對應的輸入消息,也就是將數(shù)據(jù)去結構化,以提取出輸入消息的字段信息,并對提取的字段信息進行邏輯處理,最終得到輸出消息,而不是在數(shù)據(jù)的類型結構不同時,需要不同的軟件分別對所述進行預處理,本發(fā)明提高了數(shù)據(jù)預處理的效率,并降低了數(shù)據(jù)預處理的操作成本。進一步地,為了提高數(shù)據(jù)預處理的靈活性,基于第一實施例提出本發(fā)明數(shù)據(jù)預處理裝置的第二實施例,在本實施例中,參照圖5,所述處理模塊30包括:第一確定子模塊31,用于確定所述輸入消息的類型;獲取子模塊32,用于根據(jù)預設的類型與消息執(zhí)行流的映射關系,獲取確定的類型對應的消息執(zhí)行流;第二確定子模塊33,用于基于獲取的所述消息執(zhí)行流確定處理器,其中,確定的所述處理器包括輸出消息處理器;在本實施例中,所述第一確定子模塊31先確定所述輸入消息的類型,所述類型包括呼叫類型、上網(wǎng)類型等等,在確定輸入消息的類型后,所述獲取子模塊32根據(jù)預設的類型與消息執(zhí)行流的映射關系,獲取確定的類型對應的消息執(zhí)行流,可以理解的是,系統(tǒng)中事先存儲了消息類型與消息類型對應的執(zhí)行流,即哪種消息對應哪種執(zhí)行流,具體參照圖8,將輸入消息的類型定義為a,則可知道輸入消息對應的執(zhí)行流為a-b-c-e-d,可以理解,此時所述執(zhí)行流對應的處理器包括中間消息處理器和輸出消息處理器,而所述中間消息處理器包括緩存消息處理器和臨時消息處理器。值得注意的是,每個輸入消息類型對應的執(zhí)行流只有一種。處理子模塊34,用于根據(jù)確定的所述處理器對所述字段消息進行邏輯處理,以得到輸出消息。本實施例中,同樣參照圖8,當所述輸入消息的類型為e時,所述消息執(zhí) 行流為e-d,此時,可知道數(shù)據(jù)預處理過程中僅包括輸入消息和輸出消息,不包含中間消息,此時,所述第二確定子模塊33確定的所述處理器為輸出消息處理器,所述輸出消息處理器對所述輸入消息e進行邏輯加工變形處理,以得到輸出消息d。在本實施例中,參照圖6,在確定的所述處理器還包括臨時消息處理器及/或緩存消息處理器時,所述處理子模塊34包括:確定單元34,用于確定所述臨時消息處理器及/或所述緩存消息處理器對應的屬性;第一處理單元35,用于在所述臨時消息處理器及/或所述緩存消息處理器對應的屬性為可創(chuàng)建屬性時,根據(jù)所述臨時消息處理器對所述輸入消息進行邏輯處理以得到臨時消息,及/或根據(jù)所述緩存消息處理器對所述輸入消息進行邏輯處理以得到緩存消息;第二處理單元36,用于根據(jù)所述輸出消息處理器對所述臨時消息及/或所述緩存消息進行邏輯處理,以得到輸出消息。在本實施例中,在確定了所述處理器后,所述確定單元34先確定所述處理器對應的屬性,即在確定的所述處理器還包括臨時消息處理器及/或緩存消息處理器時,確定所述臨時消息處理器及/或所述緩存消息處理器對應的屬性,在所述臨時消息處理器及/或所述緩存消息處理器對應的屬性為可創(chuàng)建屬性時,所述第一處理單元35根據(jù)所述臨時消息處理器對所述輸入消息進行邏輯處理以得到臨時消息,及/或根據(jù)所述緩存消息處理器對所述輸入消息進行邏輯處理以得到緩存消息,所述第二處理單元36根據(jù)所述輸出消息處理器對所述臨時消息及/或所述緩存消息進行邏輯處理,以得到輸出消息。可以理解的是,除了輸入消息外,其他消息都可以存在創(chuàng)建條件處理器,即所述臨時消息、緩存消息以及所述輸出消息都存在創(chuàng)建條件處理器,而所述創(chuàng)建條件處理器用于創(chuàng)建消息,例如,在臨時消息的創(chuàng)建條件處理器對應的屬性為可創(chuàng)建屬性時,此時,所述輸入消息通過所述臨時消息處理器對應的創(chuàng)建條件處理器可生成臨時消息,在臨時消息的創(chuàng)建條件處理器對應的屬性為不可創(chuàng)建屬性時,此時,則所述輸入消息不生成臨時消息,進一步地,所述緩存消息還存在更新條件處理器和刪除條件處理器,即僅僅所述緩存消息處理器才對應更新條件處理器和刪除條件處理器,所述更新處理器用于更新緩存消息, 所述刪除條件處理器用于刪除老化的緩存消息。本實施例中,為更好理解本實施例,同樣參照圖8,當所述輸入消息的類型為a時,所述執(zhí)行流為a-b、a-b-c-e-d,可以理解的是,在得到所述消息執(zhí)行流后,還可以根據(jù)消息模型中的創(chuàng)建條件和刪除條件,決定是否生成該緩存消息或輸出消息,或者一個消息執(zhí)行流處理完后,是否刪除該消息。即根據(jù)所述消息執(zhí)行流中對應的處理器的屬性確定是否能生成消息,若處理器的屬性為不可創(chuàng)建屬性,則所述處理器無法生成消息內容,在所述輸入消息的類型為a時,所述執(zhí)行流為所述消息執(zhí)行流中對應的,若此時僅僅是消息c對應的處理器的屬性為可創(chuàng)建屬性,其它各個消息對應的處理器的屬性為不可創(chuàng)建屬性,則最終生成的輸出消息為c。若各個消息對應的處理器的屬性都為可創(chuàng)建屬性,則需要先確定各個消息對應的高度值,按照各個消息的高度值確定各個消息的輸出順序。即,首先加載消息模型,建立內部映射關系。根據(jù)消息之間的引用關系建立消息執(zhí)行流,當一個消息沒有依賴其他消息時,可以認為是輸入消息,那么就以該消息作為引用關系的入口,遍歷關系圖,找到引用關系的列表。如下表1:消息依賴消息列表abacade,a,ceb,aa、b、c、d和e五個消息依賴關系,a是沒有依賴任何其他消息,所以它是輸入消息,那么就可以以a為入口,遍歷引用關系,每個消息的高度都是等于被其依賴的消息中高度最大值加上一。根據(jù)每個消息的高度值大小進行排序,最后得到一個依賴鏈表,保證被依賴的消息排在前面,可參照圖9,最終,可得輸出消息為d。進一步地,為了提高數(shù)據(jù)預處理的靈活性,基于第二實施例提出本發(fā)明數(shù)據(jù)預處理裝置的第三實施例,在本實施例中,所述數(shù)據(jù)預處理裝置還包括:存儲單元,用于若接收到臨時消息的存儲指令,將所述臨時消息存儲到預設的緩存區(qū)域中,以生成緩存消息,以供下次接收到數(shù)據(jù)預處理指令時,將所述緩存區(qū)域中的緩存消息作為新的輸入消息的被引用數(shù)據(jù)。在本實施例中,在根據(jù)所述輸出消息處理器對所述臨時消息及所述緩存消息進行邏輯處理,以得到輸出消息的同時,若接收到臨時消息的存儲指令,將所述臨時消息存儲到預設的緩存區(qū)域中,以生成緩存消息,可參照圖7,將臨時消息流到緩存消息處理器中,以存儲到預設的緩存區(qū)域中生成緩存消息,根據(jù)生成的緩存消息,可以理解的是,根據(jù)所述緩存消息處理器對所述輸入消息進行邏輯處理生成的緩存消息也是存儲到預設的緩存區(qū)域中,在下次接收到數(shù)據(jù)預處理指令時,所述獲取模塊10可將所述緩存區(qū)域中的緩存消息作為新的輸入消息的被引用數(shù)據(jù),實現(xiàn)了下次處理數(shù)據(jù)時,可將本次產(chǎn)生的臨時消息或者緩存消息作為被引用數(shù)據(jù),提高了數(shù)據(jù)處理的效率。本實施例中,數(shù)據(jù)庫中或者是一些配置化的數(shù)據(jù)可以動態(tài)加載到緩存中,以便預處理過程中可以作為被引用的數(shù)據(jù)。進一步地,為了提高數(shù)據(jù)預處理的靈活性,基于第三實施例提出本發(fā)明數(shù)據(jù)預處理裝置的第四實施例,在本實施例中,所述數(shù)據(jù)預處理裝置還包括:刪除模塊,用于在所述緩存區(qū)域的消息存儲容量值達到預設容量值時,刪除所述緩存區(qū)域中的部分緩存消息,其中,刪除的緩存消息的訪問時間早于未刪除的緩存消息的訪問時間;或者,在所述緩存區(qū)域中有緩存消息的訪問時間點距離當前時間點達到預設時長時,刪除所述緩存消息。在本實施例中,緩存消息可能會隨著消息不斷處理,而越來越多,因此,緩存消息一般需要存在最大數(shù)量限制、保存周期和淘汰刪除機制,因此,本實施例中所述刪除模塊通過定時刪除所述緩存區(qū)域中的緩存消息,避免了緩存區(qū)域中的緩存消息占用過多的容量,從而降低了數(shù)據(jù)預處理的運行效率,本實施例通過定時刪除緩存消息,增大了緩存區(qū)域的存儲空間,提高了系統(tǒng)的運行效率。進一步地,緩存消息存在對應的定時服務,每個緩存消息本身綁定定時器信息,使得當緩存區(qū)域中存在海量數(shù)據(jù)時,可以自動刪除緩存消息。需要說明的是,在本文中,術語“包括”、“包含”或者其任何其它變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其它要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,空調器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其它相關的
技術領域:
,均同理包括在本發(fā)明的專利保護范圍內。當前第1頁12