統計交易數據的方法及系統的制作方法
【技術領域】
[0001]本發明涉及數據處理技術,尤其涉及與數據統計有關的技術。
【背景技術】
[0002]在許多數據處理系統中,都涉及到數據統計,比如,與交易數據有關的處理系統,就需要接收不間斷的交易流水,對交易數據進行多方位統計分析,快速獲取準確的統計結果O
[0003]現有技術中,統計功能的實現是通過事先確定統計量的具體業務邏輯,然后把具體邏輯固化到系統中。這種方法的缺點在于,當對統計量的需求發生變化時,都需要對系統進行重新改造,這種變化可能是統計業務邏輯的變化,也可能是任何一個相關參數的變化。如此,這種事先確定業務邏輯的統計方式便不再適應這種業務需求的變化。
[0004]此外,現有技術中,一般是通過數據庫操作來實現統計計算,這需要應用系統與數據庫之間頻繁交互,包括記錄的插入及查詢,在數據量較大的情況下,頻繁的插入及查詢操作效率較低,響應時間比較慢,不能滿足即時統計的需求。
【發明內容】
[0005]本發明提供一種統計交易數據的方法,可有效改善上述問題。該統計交易數據的方法包括:預設可滑動時間窗,該可滑動時間窗將當前時間作為一個時間端點,位于該時間窗的其它時間均早于該當前時間;接收交易數據;將所接收的交易數據存儲到第一存儲區,同時將第一存儲區中不在該時間窗內的交易數據從該第一存儲區去除;依據預設的過濾條件將統計不需要的數據從第一存儲區傳輸過來的交易數據中濾去;基于過濾后的數據,執行統計算法以獲得統計結果。
[0006]優選地,該統計交易數據的方法還包括將統計結果以樹狀數據結構存儲在第二存儲區。優選地,該樹狀數據結構為紅黑樹狀數據結構或二叉樹狀數據結構。優選地,該樹狀數據結構中,每個存儲節點包括與統計維度有關的主鍵及基于該主鍵的統計結果。
[0007]優選地,該統計交易數據的方法中,該將所接收的交易數據存儲到第一存儲區包括將應用到不同統計算法的交易數據分別存儲到第一存儲區的不同存儲區域。
[0008]優選地,該統計交易數據的方法中,各統計算法具有相應的過濾條件。
[0009]根據本發明的示例,還提供一種統計交易數據的系統,其包括:設置模塊,其用于預設可滑動時間窗,該可滑動時間窗將當前時間作為其一個時間端點,位于該時間窗內的該端點之前的時間均早于該當前時間;接收模塊,其用于接收交易數據;第一存儲模塊,其用于存儲所接收的交易數據,同時將其所存儲的交易數據中不在該時間窗內的數據去除;統計模塊,其設置成依據預設的過濾條件從所接收的交易數據中濾去統計不需要的數據,并基于過濾后的數據,執行統計算法以獲得統計結果。
[0010]優選地,該統計交易數據的系統中,該統計模塊包括多個統計子模塊,各統計子模塊包括過濾單元與計算單元,各過濾單元依據預設的過濾條件從所接收的交易數據中濾去與其對應的計算單元不需要的數據,各計算單元基于過濾后的數據,執行統計算法以獲得統計結果。
[0011]優選地,該統計交易數據的系統中,該系統還包括第二存儲模塊,用于以樹狀數據結構存儲統計結果。優選地,該樹狀數據結構為紅黑樹狀數據結構或二叉樹狀數據結構。優選地,該樹狀數據結構中,每個存儲節點包括與統計維度有關的主鍵及基于該主鍵的統計結果。
[0012]優選地,該統計交易數據的系統中,該第一存儲模塊包括不同的存儲單元,用于分別存儲應用到不同統計算法的交易數據。
[0013]通過設置可滑動時間窗,盡可能及時地將統計過的數據濾去,只保留時間窗內的交易數據,可大大降低了數據量,從而節約存儲空間。因此,執行本發明所述的統計交易數據的方法或采用本發明所述的統計交易數據的系統,可將所需數據直接存儲在執行該方法或采用該系統的設備的內存中,由此在處理時無需再像常規計數那樣從數據庫讀取交易數據到內存再進行統計計算。
【附圖說明】
[0014]圖1是根據本發明示例的統計交易數據的方法的流程圖。
[0015]圖2非限制地示意了第一存儲區與第二存儲區的存儲形態,該示例僅示意了針對一種統計算法的第一存儲區10與第二存儲區20。
[0016]圖3是根據本發明示例的統計交易數據的系統的結構示意圖。
[0017]圖4是統計模塊36的示例性結構。
【具體實施方式】
[0018]現在參照附圖描述本發明的示意性示例,相同的附圖標號表示相同的元件。下文描述的各實施例有助于本領域技術人員透徹理解本發明,且意在示例而非限制。除非另有限定,文中使用的術語(包括科學、技術和行業術語)具有與本發明所屬領域的技術人員普遍理解的含義相同的含義。
[0019]圖1是根據本發明示例的統計交易數據的方法的流程圖。所示例的方法可由任意可以處理數據的設備執行。
[0020]在步驟100,預設可滑動時間窗。該可滑動時間窗以當前時間作為一個時間端點,處于該可滑動時間窗內的其它時間均早于當前時間。舉例來說,所預設的可滑動時間窗的時間長度為3秒,當前時間為t,則該時間窗指的是t 一 2到t時間段內的所有時間,包括t 一 2與t。由于以當前時間t作為該時間窗的一個端點,且該時間窗具有一定的時間長度,因此該可滑動時間窗并非固定在某兩個具體時間點之間的時間段,而是隨著當前時間t的變化而滑動的時間段。
[0021]在步驟102,接收交易數據。交易數據可來自參與交易執行的終端,例如pos機、運行于電子設備的網銀支付系統等,在此該電子設備指的是可進行交易的各類電子設備,例如臺式PC、筆記本電腦、平板電腦以及手機等。
[0022]在步驟104,將所接收的交易數據存儲到第一存儲區,同時將第一存儲區中不在該時間窗內的交易數據從該第一存儲區去除。根據本發明的示例,該第一存儲區可以是執行本發明所述方法的設備的內存中的一塊存儲區域,但也不排除該設備的其它存儲部件。依據時間窗,將第一存儲區內不在該時間段內的數據去除,具體地,可通過刪除的方式去除不在該時間窗內的數據,也可通過例如以新增的交易數據覆蓋的方式去除。
[0023]在步驟106,依據預設的過濾條件將統計不需要的數據從第一存儲區傳輸過來的交易數據中濾去。所需要的統計一般都基于不同的需求,因此可配置不同的統計算法。各統計算法所需的數據不盡相同,如果針對每一種統計算法,無論其需要與否,都將所存儲的交易數據傳送給它,則浪費了數據傳輸資源與傳輸時間。因此,根據本發明的示例,針對不同的統計算法過濾從第一存儲區傳送來的數據,濾去與統計無關的數據,僅保留與該統計有關的數據。預設條件例如是要求包括某些參數的數據,則不包括這些參數的數據將被過濾掉;或預設條件例如是要求在某個區間范圍的數據等,則不在該區間范圍的數據被過濾;或預設條件例如是要求大于某個值的數據等,則小于該值的數據被過濾。進一步,在該示例中,位于第一存儲區的交易數據也是基于不同的統計算法而存儲在該第一存儲區的不同存儲區域。
[0024]在步驟108,基于過濾后的數據,執行統計算法以獲得統計結果。根據本發明的一個示例,該統計結果以樹狀數據結構存儲在第二存儲區,該樹狀數據結構例如為紅黑樹或二叉樹等。在該數據結構中,每個存儲節點包括與統計維度有關的主鍵值以及基于該主鍵值的統計結果。
[0025]此外,根據本發明的又一個示例,在步驟106與步驟108之間,還包括針對被去除的數據,對已有的統計結果進行逆向運算的步驟。該逆向運算是與統計算法相逆的,例如:統計算法為求和運算,則逆向運算為減法。該示例一般針對的是只需要時間窗內的統計結果的應用環境。
[0026]圖2非限制地示意了第一存儲區與第二存儲區的存儲形態,該示例僅示意了針對一種統計算法的第一存儲區10與第二存儲區20。如圖所示,位于第一存儲區10的交易數據以隊列方式存儲,當前交易隊列中的數據是針對一種統計算法的交易數據。如上文所述,第一存儲區10會將該存儲區中不在時間窗內的數據去除,因此,位于當前交易隊列中的交易數據都在時間窗內。第二存儲區20的數據采用紅黑樹狀的數據結構存儲數據。第二存儲區20包括多個節點。各節點存儲一個主鍵值,主鍵值表明該節點的統計維度,舉例如下:節點I中的主鍵值為卡號,則節點I中的統計結果就是與該卡號有關的交易數據的統計結果;節點2的主鍵值為用戶身份證號碼,則節點2的統計結果就是與該身份證有關的交易數據的統計結果。各節點還存儲針對該主鍵值的統計結果。在某些情況下,依據統計算法的不同,每個節點還存儲輔助信息。例如求和、計數等疊加類統計算法,則無需存儲輔助信息;求平均的統計算法,則需要存儲交易條數與時間窗內的交易總和等輔助信息。所示意的例子中,第一存儲區10中五條交易數據分別應用到了第二存儲區中的五個節點。
[0027]圖3是根據本發明示例的統計交易數據的系統的結構示意圖。如圖所