一種確定大數據流中的特殊數據項的方法及裝置的制造方法
【專利摘要】本發明提供確定大數據流中的特殊數據項的方法及裝置,涉及計算機領域,能夠比較準確確定大數據流中的特殊數據項。包括在采樣周期內獲取采樣的n個數據項,用先獲取的k個均不相同的數據項形成隊列;若k個均不相同的數據項后獲取的第m個數據項與隊列的一數據項相同,則對該數據項計數后移至隊列的隊首;若第m個數據項與隊列的數據項均不同,則將隊列隊尾的數據項換為第m個數據項,并對該數據項計數后移至隊列的隊首;每經過預設時間根據k個計數器的值、前次估算的k個數據項的出現頻率和計算公式,估算k個數據項的出現頻率;數據流采樣周期后,根據最終估算的k個數據項的出現頻率,確定出現頻率滿足預設閾值的數據項為特殊數據項。
【專利說明】
-種確定大數據流中的特殊數據項的方法及裝置
技術領域
[0001] 本發明設及計算機技術領域,尤其設及一種確定大數據流中的特殊數據項的方法 及裝置。
【背景技術】
[0002] 由于大數據流中蘊含著豐富的信息,因此人們可W通過分析運些大數據流從中獲 得有用信息。從而在大數據流分析系統中,如何確定大數據流中的特殊數據項,例如突發 數據項或頻繁數據項成為人們的研究熱點。其中,突發數據項是指在大數據流中出現次數 最少的一個或多個數據項,頻繁數據項是指在大數據流中出現次數最多的一個或多個數據 項。
[0003] 通常,確定大數據流中的特殊數據項的一種常用算法為空間節省法。該空間節省 法具體可W為在本地內存中存儲k對元素化為需要確定的特殊數據項的個數,元素包括特 殊數據項和與特殊數據項對應的計數器),并在對大數據流進行采樣的數據流采樣周期內, 使用最先接收的大數據流中的k個均不相同的數據項和k個均不相同的數據項的出現次數 對k對元素進行賦值,W及當接收到一個新的數據項時,判斷該新的數據項是否被統計過, 如果該新的數據項被統計過,則使與該新的數據項對應的計數器加1,如果該新的數據項未 被統計過,則用該新的數據項替換k個數據項中計數最小的數據項,并將與該計數最小的 數據項對應的計數器清空后加1。W此類推,當數據流采樣周期結束后,本地內存中存儲的 k個數據項即為大數據流中的特殊數據項。
[0004] 然而,當大數據流中的某個特殊數據項的分布隨時間變化(即特殊數據項在每段 時間內的出現次數是不同的)時,采用空間節省法可能無法準確地確定到該特殊數據項。 例如,假設數據流采樣周期內,大數據流為{ABCDACBDABDCABCDDCBABCD},若需確定該大數 據流中的Ξ個頻繁數據項(即應該確定出的Ξ個頻繁數據項為數據項B化次)、數據項"6 次)和數據項D化次)),則當采用上述空間節省法確定該大數據流中的Ξ個頻繁數據項時, 最終獲得的Ξ個頻繁數據項為數據項A巧次)、數據項B化次)和數據項D (1次)。因此采 用空間節省法無法準確地確定大數據流中的特殊數據項。
【發明內容】
陽〇化]本發明提供一種確定大數據流中的特殊數據項的方法及裝置,能夠通過比較準確 地估算數據項的出現頻率,從而比較準確地確定大數據流中的特殊數據項。
[0006] 第一方面,本發明提供一種確定大數據流中的特殊數據項的方法,包括:
[0007] 在數據流采樣周期內,依次獲取采樣數據流中的η個數據項,并采用所述η個數 據項中最先獲取到的k個均不相同的數據項形成數據項隊列,所述k個均不相同的數據 項一一對應k個均不相同的計數器,所述k個均不相同的計數器中的每個計數器用于統計 形成所述數據項隊列之前與該計數器對應的數據項的出現次數,η為正整數,k為正整數, k《η ;
[000引若所述η個數據項中在所述k個均不相同的數據項之后獲取的數據項中的第m個 數據項與前一次更新后的數據項隊列中的第一數據項相同,則將與所述第一數據項對應的 第一計數器加 i,并將所述第一數據項和所述第一計數器移動至所述前一次更新后的數據 項隊列的隊首,所述第一數據項為所述前一次更新后的數據項隊列中的任意一個數據項, 其中,當m = k+1時,所述前一次更新后的數據項隊列為形成后的數據項隊列,m的值依次 從k+1取到n,m為整數,i為正整數;
[0009] 若所述第m個數據項與所述前一次更新后的數據項隊列中的各個數據項均不相 同,則將所述前一次更新后的數據項隊列中的第二數據項替換為所述第m個數據項,并將 與所述第m個數據項對應的第二計數器設置為i,W及將所述第m個數據項和所述第二計數 器移動至所述前一次更新后的數據項隊列的隊首,所述第二數據項為位于所述前一次更新 后的數據項隊列的隊尾的數據項,其中,當m = k+1時,所述前一次更新后的數據項隊列為 形成的數據項隊列,m的值依次從k+1取到n,m為整數,i為正整數;
[0010] 每經過預設時間后,根據所述k個均不相同的計數器的值、前一次估算的所述k個 均不相同的數據項的出現頻率和預設的計算公式,估算所述k個均不相同的數據項的出現 頻率,所述預設時間小于或等于所述數據流采樣周期,其中,第一次估算所述k個均不相同 的數據項的出現頻率時采用的所述前一次估算的所述k個均不相同的數據項的出現頻率 為0 ;
[0011] 在所述數據流采樣周期后,根據最后一次估算的所述k個均不相同的數據項的出 現頻率,確定所述k個均不相同的數據項中出現頻率滿足預設闊值的至少一個數據項為特 殊數據項。
[0012] 在第一方面的第一種可能的實現方式中, 陽01;3] 所述計算公式為:ft= λζ 1;
[0014] 其中,t表示時刻;f康示t時刻數據項的出現頻率;z康示t時刻數據項的統計 次數或統計頻率,所述統計次數為與所述數據項對應的計數器的值,所述統計頻率為所述 計數器的值與數據項隊列中全部計數器的值之和的比值;λ表示預設的zt的加權值;f t 1 表示t-1時刻數據項的出現頻率。
[0015] 結合第一方面或第一方面的第一種可能的實現方式,在第二種可能的實現方式 中,
[0016] 所述形成后的數據項隊列中的所述k個均不相同的數據項按照所述k個均不相同 的計數器的值由大到小順序排列。
[0017] 結合第一方面或第一方面的第一種可能的實現方式至第二種可能的實現方式中 的任一種實現方式,在第Ξ種可能的實現方式中,所述將所述前一次更新后的數據項隊列 中的第二數據項替換為所述第m個數據項,包括:
[0018] 從所述前一次更新后的數據項隊列中刪除所述第二數據項,并將所述第m個數據 項添加到所述前一次更新后的數據項隊列中,所述第m個數據項在所述前一次更新后的數 據項隊列中的位置與所述第二數據項在所述前一次更新后的數據項隊列中的位置相同。
[0019] 結合第一方面或第一方面的第一種可能的實現方式至第Ξ種可能的實現方式中 的任一種實現方式,在第四種可能的實現方式中,所述特殊數據項為頻繁數據項或者突發 數據項,
[0020] 所述確定所述k個均不相同的數據項中出現頻率滿足預設闊值的至少一個數據 項為特殊數據項,包括:
[0021] 確定所述k個均不相同的數據項中出現頻率大于或等于所述預設闊值的至少一 個數據項為所述頻繁數據項;或者
[0022] 確定所述k個均不相同的數據項中出現頻率小于所述預設闊值的至少一個數據 項為所述突發數據項。
[0023] 第二方面,本發明提供一種確定大數據流中的特殊數據項的裝置,包括:
[0024] 獲取單元,用于在數據流采樣周期內,依次獲取采樣數據流中的η個數據項,并采 用所述η個數據項中最先獲取到的k個均不相同的數據項形成數據項隊列,所述k個均不 相同的數據項一一對應k個均不相同的計數器,所述k個均不相同的計數器中的每個計數 器用于統計形成所述數據項隊列之前與該計數器對應的數據項的出現次數,η為正整數,k 為正整數,k《η ;
[00巧]處理單元,用于若所述η個數據項中所述獲取單元在所述k個均不相同的數據項 之后獲取的數據項中的第m個數據項與前一次更新后的數據項隊列中的第一數據項相同, 則將與所述第一數據項對應的第一計數器加 i,并將所述第一數據項和所述第一計數器移 動至所述前一次更新后的數據項隊列的隊首,所述第一數據項為所述前一次更新后的數據 項隊列中的任意一個數據項;若所述獲取單元獲取的所述第m個數據項與所述前一次更新 后的數據項隊列中的各個數據項均不相同,則將所述前一次更新后的數據項隊列中的第二 數據項替換為所述第m個數據項,并將與所述第m個數據項對應的第二計數器設置為i,W 及將所述第m個數據項和所述第二計數器移動至所述前一次更新后的數據項隊列的隊首, 所述第二數據項為位于所述前一次更新后的數據項隊列的隊尾的數據項;其中,當m = k+1 時,所述前一次更新后的數據項隊列為形成后的數據項隊列,m的值依次從k+1取到n,m為 整數,i為正整數;
[00%] 估算單元,用于在每經過預設時間后,根據所述處理單元增加后的所述k個均不 相同的計數器的值、前一次估算的所述k個均不相同的數據項的出現頻率和預設的計算公 式,估算所述k個均不相同的數據項的出現頻率,所述預設時間小于或等于所述數據流采 樣周期,其中,第一次估算所述k個均不相同的數據項的出現頻率時采用的所述前一次估 算的所述k個均不相同的數據項的出現頻率為0 ;
[0027] 確定單元,用于在所述數據流采樣周期后,根據所述估算單元最后一次估算的所 述k個均不相同的數據項的出現頻率,確定所述k個均不相同的數據項中出現頻率滿足預 設闊值的至少一個數據項為特殊數據項。
[0028] 在第二方面的第一種可能的實現方式中,
[0029] 所述計算公式為:ft= λζ,+ (1-λ)?·。;
[0030] 其中,t表示時刻屯表示t時刻數據項的出現頻率;ζ康示t時刻數據項的統計 次數或統計頻率,所述統計次數為與所述數據項對應的計數器的值,所述統計頻率為所述 計數器的值與數據項隊列中全部計數器的值之和的比值;λ表示預設的zt的加權值;f t 1 表示t-1時刻數據項的出現頻率。
[0031] 結合第二方面或第二方面的第一種可能的實現方式,在第二種可能的實現方式 中,
[0032] 所述獲取單元形成后的數據項隊列中的所述k個均不相同的數據項按照所述k個 均不相同的計數器的值由大到小順序排列。
[0033] 第Ξ方面,本發明提供一種確定大數據流中的特殊數據項的裝置,包括:
[0034] 處理器,用于在數據流采樣周期內,依次獲取采樣數據流中的η個數據項,并采用 所述η個數據項中最先獲取到的k個均不相同的數據項形成數據項隊列,所述k個均不相 同的數據項一一對應k個均不相同的計數器,所述k個均不相同的計數器中的每個計數器 用于統計形成所述數據項隊列之前與該計數器對應的數據項的出現次數;且若所述η個數 據項中在所述k個均不相同的數據項之后獲取的數據項中的第m個數據項與前一次更新后 的數據項隊列中的第一數據項相同,則將與所述第一數據項對應的第一計數器加 i,并將所 述第一數據項和所述第一計數器移動至所述前一次更新后的數據項隊列的隊首,所述第一 數據項為所述前一次更新后的數據項隊列中的任意一個數據項;若所述第m個數據項與所 述前一次更新后的數據項隊列中的各個數據項均不相同,則將所述前一次更新后的數據項 隊列中的第二數據項替換為所述第m個數據項,并將與所述第m個數據項對應的第二計數 器設置為i,W及將所述第m個數據項和所述第二計數器移動至所述前一次更新后的數據 項隊列的隊首,所述第二數據項為位于所述前一次更新后的數據項隊列的隊尾的數據項; 并在每經過預設時間后,根據所述k個均不相同的計數器的值、前一次估算的所述k個均 不相同的數據項的出現頻率和預設的計算公式,估算所述k個均不相同的數據項的出現頻 率,所述預設時間小于或等于所述數據流采樣周期,其中,第一次估算所述k個均不相同的 數據項的出現頻率時采用的所述前一次估算的所述k個均不相同的數據項的出現頻率為 〇;W及在所述數據流采樣周期后,根據最后一次估算的所述k個均不相同的數據項的出現 頻率,確定所述k個均不相同的數據項中出現頻率滿足預設闊值的至少一個數據項為特殊 數據項;其中,當m = k+1時,所述前一次更新后的數據項隊列為形成后的數據項隊列,η為 正整數,k為正整數,k《η,m的值依次從k+1取到η,m為整數,i為正整數。
[0035] 在第Ξ方面的第一種可能的實現方式中,
[0036] 所述計算公式為:ft= λζ,+ (1-λ)?·。;
[0037] 其中,t表示時刻屯表示t時刻數據項的出現頻率;ζ康示t時刻數據項的統計 次數或統計頻率,所述統計次數為與所述數據項對應的計數器的值,所述統計頻率為所述 計數器的值與數據項隊列中全部計數器的值之和的比值;λ表示預設的zt的加權值;f t 1 表示t-1時刻數據項的出現頻率。
[0038] 結合第Ξ方面或第Ξ方面的第一種可能的實現方式,在第二種可能的實現方式 中,
[0039] 所述處理器形成后的數據項隊列中的所述k個均不相同的數據項按照所述k個均 不相同的計數器的值由大到小順序排列。
[0040] 本發明提供一種確定大數據流中的特殊數據項的方法及裝置,通過在數據流采樣 周期內,依次獲取采樣數據流中的η個數據項,并采用η個數據項中最先獲取到的k個均 不相同的數據項形成數據項隊列,k個均不相同的數據項一一對應k個均不相同的計數器, k個均不相同的計數器中的每個計數器用于統計形成該數據項隊列之前與該計數器對應的 數據項的出現次數;若η個數據項中在k個均不相同的數據項之后獲取的數據項中的第m 個數據項與前一次更新后的數據項隊列中的第一數據項相同,則將與第一數據項對應的第 一計數器加 i,并將第一數據項和第一計數器移動至前一次更新后的數據項隊列的隊首,第 一數據項為前一次更新后的數據項隊列中的任意一個數據項;若第m個數據項與前一次更 新后的數據項隊列中的各個數據項均不相同,則將前一次更新后的數據項隊列中的第二數 據項替換為第m個數據項,并將與第m個數據項對應的第二計數器設置為i,W及將第m個 數據項和第二計數器移動至前一次更新后的數據項隊列的隊首,第二數據項為位于前一次 更新后的數據項隊列的隊尾的數據項;并在每經過預設時間后,根據k個均不相同的計數 器的值、前一次估算的k個均不相同的數據項的出現頻率和預設的計算公式,估算k個均 不相同的數據項的出現頻率,預設時間小于或等于數據流采樣周期,其中,第一次估算k個 均不相同的數據項的出現頻率時采用的前一次估算的k個均不相同的數據項的出現頻率 為〇;W及在數據流采樣周期后,根據最后一次估算的k個均不相同的數據項的出現頻率, 確定k個均不相同的數據項中出現頻率滿足預設闊值的至少一個數據項為特殊數據項;其 中,當m = k+1時,所述前一次更新后的數據項隊列為形成后的數據項隊列,η為正整數,k 為正整數,k《n,m的值依次從k+1取到n,m為整數,i為正整數。
[0041] 基于本發明提供的上述技術方案,由于本發明可W在數據流采樣周期內統計獲取 的各個數據項的出現次數,并根據各個數據項及各個數據項的出現次數實時更新數據項隊 列,W及每經過預設時間后,通過數據項隊列中的k個均不相同的數據項的出現次數、前一 次估算的k個均不相同的數據項的出現頻率及預設的計算公式估算數據項隊列中的k個 均不相同的數據項的出現頻率,如此本發明提供的技術方案可W實時估算數據項的出現頻 率,且本次估算k個均不相同的數據項的出現頻率時參考了前一次估算的k個均不相同的 數據項的出現頻率,即估算的數據項的出現頻率隨時間的變化而變化,從而可W保證估算 的數據項的出現頻率相對比較準確,進而能夠根據數據項的出現頻率,比較準確地確定大 數據流中的特殊數據項。
【附圖說明】
[0042] 圖1為本發明實施例提供的一種確定大數據流中的特殊數據項的方法流程圖;
[0043] 圖2為本發明實施例提供的一種確定大數據流中的特殊數據項的方法的仿真示 意圖;
[0044] 圖3為本發明實施例提供的一種確定大數據流中的特殊數據項的裝置的結構示 意圖;
[0045] 圖4為本發明實施例提供的一種確定大數據流中的特殊數據項的裝置的硬件示 意圖。
【具體實施方式】
[0046] 本發明實施例提供的一種確定大數據流中的特殊數據項的方法及裝置可W應用 于大數據流分析系統中。大數據流分析系統通過對大數據流進行分析,可W從大數據流中 獲得有用信息。舉例來說,大數據流分析系統通過對大數據流進行分析,可W從大數據流中 確定出人們的研究熱點或關注度較高的信息,例如大數據流中的特殊數據項(特殊數據項 可W理解為突發數據項或頻繁數據項)。
[0047] 一種可能的應用場景為互聯網廣告,互聯網廣告每時每刻都在更新,并產生大量 的信息,運些大量的信息可w理解為大數據流。若在互聯網廣告中需要優化廣告展示配置 (例如在某個社交網站上優化廣告展示配置等),則需要從互聯網廣告產生的大數據流中 提取出頻繁出現的數據項,即頻繁數據項(例如某個社交網站上頻繁出現的用戶信息等), 運樣可W通過對運些頻繁數據項進行分析,確定出優化廣告展示配置的優化策略。
[0048] 另一種可能的應用場景為網絡流量監測,網絡中傳輸數據時,數據W數據包的形 式連續傳輸,運些連續傳輸的數據包可W理解為大數據流。若需要有效避免網絡阻塞,提高 網絡傳輸性能,則需要在網絡流量監測過程中能夠發現異常流量,即從大數據流中發現異 常數據包,該異常數據包也可稱為突發數據項,運樣可W通過對突發數據項進行分析,確定 出突發數據項出現的原因,從而通過制定合理的策略消除該突發數據項,進而有效避免網 絡阻塞,提高網絡傳輸性能。
[0049] 本發明實施例提供的確定大數據流中的特殊數據項的方法的執行主體可W為確 定大數據流中的特殊數據項的裝置,該確定大數據流中的特殊數據項的裝置可W為上述大 數據流分析系統或者大數據流分析系統中的分析單元/模塊/器等。
[0050] 下面結合附圖,通過具體的實施例及其應用場景對本發明實施例提供的一種確定 大數據流中的特殊數據項的方法及裝置進行詳細地說明。 陽0川 實施例一
[0052] 本發明實施例提供一種確定大數據流中的特殊數據項的方法,如圖1所示,該方 法可W包括:
[0053] S101、在數據流采樣周期內,依次獲取采樣數據流中的η個數據項,并采用η個數 據項中最先獲取到的k個均不相同的數據項形成數據項隊列。
[0054] 其中,k個均不相同的數據項一一對應k個均不相同的計數器,k個均不相同的計 數器中的每個計數器用于統計形成數據項隊列之前與該計數器對應的數據項的出現次數, η為正整數,k為正整數,k《η。
[0055] 本發明實施例中,若需獲取大數據流中的有用信息,例如大數據流中的特殊數據 項,則可W設定一個采樣周期,并在該采樣周期內依次獲取大數據流中的各個數據項,即η 個數據項,其中,采樣周期內的數據流也可W稱為采樣數據流。
[0056] 特別的,本發明實施例提供的特殊數據項可W為在大數據流中出現次數最多的數 據項,運些出現次數最多的數據項可稱為頻繁數據項;特殊數據項也可W為在大數據流中 出現次數最少的數據項,運些出現次數最少的數據項可稱為突發數據項。具體的,本發明需 要確定的特殊數據項為頻繁數據項還是突發數據項可根據實際需求進行選擇,在此不作限 制。
[0057] S102、若η個數據項中在k個均不相同的數據項之后獲取的數據項中的第m個數 據項與前一次更新后的數據項隊列中的第一數據項相同,則將與第一數據項對應的第一計 數器加 i,并將第一數據項和第一計數器移動至前一次更新后的數據項隊列的隊首,第一數 據項為前一次更新后的數據項隊列中的任意一個數據項。
[0058] 其中,當m = k+1時,前一次更新后的數據項隊列為形成后的數據項隊列,即為η 個數據項中最先獲取到的k個均不相同的數據項形成后的數據項隊列,m的值依次從k+1取 到n,m為整數,i為正整數。
[0059] 本發明實施例中,獲取到η個數據項之后,需要先采用該η個數據項中最先獲取到 的k個均不相同的數據項形成一個數據項隊列,并將該η個數據項中在k個均不相同的數 據項之后獲取的數據項中的第m個數據項與前一次更新后的數據項隊列中已經存在的數 據項一一進行對比,若第m個數據項與前一次更新后的數據項隊列中的第一數據項相同, 即第m個數據項已經在前一次更新后的數據項隊列中存在,則將與第一數據項對應的第一 計數器加 i,并將第一數據項和第一計數器移動至前一次更新后的數據項隊列的隊首。其 中,第一數據項為前一次更新后的數據項隊列中的任意一個數據項。
[0060] 需要說明的是,數據項隊列中的k個數據項均不相同,每個數據項均對應一個計 數器,用于對該數據項的出現次數計數。
[0061] 進一步地,由于數據項隊列中只能包含k個均不相同的數據項,因此通過S102對 第m個數據項的出現次數進行計數后,需要將第m個數據項移動至數據項隊列的隊首,運樣 能夠保證在長時間未獲取到與第m個數據項相同的數據項時,第m個數據項不會被替換,從 而防止第m個數據項丟失而導致最終確定的特殊數據項不夠準確的現象。
[0062] 特別的,在一次采樣中,即上述的數據流采樣周期內,i的取值為一個確定的正整 數。運樣可W保證在增加計數器的值時,為與每個數據項對應的計數器都加相同的值,從而 能夠保證統計的每個數據項的出現次數的準確性。
[0063] 優選的,i的取值為1,運樣可W保證與數據項對應的計數器的值即為該數據項的 真實的出現次數。
[0064] S103、若第m個數據項與前一次更新后的數據項隊列中的各個數據項均不相同, 則將前一次更新后的數據項隊列中的第二數據項替換為第m個數據項,并將與第m個數據 項對應的第二計數器設置為i,W及將第m個數據項和第二計數器移動至前一次更新后的 數據項隊列的隊首,第二數據項為位于前一次更新后的數據項隊列的隊尾的數據項。 陽0化]其中,當m = k+1時,前一次更新后的數據項隊列為形成后的數據項隊列,即為η 個數據項中最先獲取到的k個均不相同的數據項形成后的數據項隊列,m的值依次從k+1取 到n,m為整數,i為正整數。
[0066] 本發明實施例中,對第m個數據項的出現次數統計時,需要將第m個數據項與前一 次更新后的數據項隊列中已經存在的k個均不相同的數據項一一進行對比,若第m個數據 項與數據項隊列中的各個數據項均不相同,則用第m個數據項替換前一次更新后的數據項 隊列中的第二數據項,并將與第m個數據項對應的第二計數器設置為i,即統計第m個數據 項的出現次數,W及將第m個數據項和第二計數器移動至前一次更新后的數據項隊列的隊 首,第二數據項為位于前一次更新后的數據項隊列的隊尾的數據項。
[0067] 其中,第二計數器的設置方式可W為下述的一種:
[0068] (1)將與第二數據項對應的計數器清零后的計數器作為第二計數器。
[0069] (2)重新設置一個新的計數器作為第二計數器。
[0070] 其中,若采用上述(1)的方法,由于可W不用再為第m個數據項重新設置一個新 的計數器,因此實現非常方便,且能夠節省計數器的資源。若采用上述(2)的方法,可W保 證對第m個數據項的計數比較準確,能夠防止采用上述(1)的方法時對與第二數據項對應 的計數器清零或將與第二數據項對應的計數器作為與第二計數器時出現錯誤導致的對第m 個數據項計數不夠準確的問題。
[0071] 進一步地,上述(2)中,當為第m個數據項重新設置一個新的計數器時,可W將與 第二數據項對應的計數器刪除,從而節省計數器的資源。
[0072] 具體的為第m個數據項設置計數器的方法,可W根據實際需求進行選擇,本發明 不作具體限定。
[0073] 進一步地,由于數據項隊列中只能包含k個均不相同的數據項,因此通過S103對 第m個數據項的出現次數進行計數后,需要將第m個數據項移動至數據項隊列的隊首,運樣 能夠保證在長時間未獲取到與第m個數據項相同的數據項時,第m個數據項不會被替換,從 而防止第m個數據項丟失而導致最終確定的特殊數據項不夠準確的現象。
[0074] 需要說明的是,本發明實施例中,對獲取到的采樣數據流中的η個數據項中在k個 均不相同的數據項之后獲取的數據項中的每一個數據項,均可W通過執行S102或者S103 統計運些數據項的出現次數。即若η個數據項中在k個均不相同的數據項之后獲取的數據 項中的第m個數據項滿足S102的條件(第m個數據項與前一次更新后的數據項隊列中的 一個數據項,例如與第一數據項相同),則執行S102 ;若第m個數據項滿足S103的條件(第 m個數據項與前一次更新后的數據項隊列中的各個數據項均不相同),則執行S103。
[00巧]S104、每經過預設時間后,根據k個均不相同的計數器的值、前一次估算的k個均 不相同的數據項的出現頻率和預設的計算公式,估算k個均不相同的數據項的出現頻率。
[0076] 其中,預設時間小于或等于數據流采樣周期,其中,第一次估算k個均不相同的數 據項的出現頻率時采用的前一次估算的k個均不相同的數據項的出現頻率為0。
[0077] 具體的,本發明實施例提供的預設的計算公式為指數加權移動平均(英文: exponentially wei曲ted moving-average,縮寫:EWMA)技術的計算公式,即本發明實施例 具體為每經過預設時間后,采用EWMA技術,估算k個均不相同的數據項的出現頻率。
[0078] 其中,EWMA技術是指通過創建數據集的一系列完整的不同子集的平均值來分析數 據點。本發明實施例中EWMA為計算不同時刻數據項隊列中k個均不相同的數據項的出現 頻率,從而可W從中確定出滿足預設闊值的特殊數據項(運些特殊數據項組成頻繁數據項 集或突發數據項集)。
[0079] 本發明實施例中,在對采樣數據流中的η各數據項的出現次數進行計數過程中, 在每經過預設時間后,可W根據統計的目前數據項隊列中的k個均不相同的計數器的值 (即為統計的k個均不相同的數據項的出現次數)、前一次估算的k個均不相同的數據項的 出現頻率和預設的EWMA技術的計算公式,估算目前數據項隊列中的k個均不相同的數據項 的出現頻率。
[0080] 其中,上述預設時間可W根據實際需求進行設置,本發明對此不作限制。例如假設 數據流采樣周期為100秒,則預設時間可W設置為10秒,即在對采樣數據流中的η個數據 項的出現次數進行計數過程中,可W在每經過10秒后執行一次S104。
[0081] 由于數據項隊列中的數據項隨著采樣數據流的更新不斷變化,且本發明實施例提 供的確定大數據流中的特殊數據項的方法中S102和S103,無論第m個數據項是否已經存在 于前一次更新后的數據項隊列中,本次更新數據項隊列時都會將第m個數據項移動至前一 次更新后的數據項隊列的隊首,運樣能夠在數據項隊列中的數據項不斷變化的情況下,保 證要確定的特殊數據項(出現次數最多的頻繁數據項和出現次數最少的突發數據項)基本 可W保留在數據項隊列中,從而能夠比較準確的確定出大數據流中的特殊數據項,進而從 運些特殊數據項中提取出有用信息。
[0082] 需要說明的是,本發明實施例提供的確定大數據流中的特殊數據項的方法,估算 出的k個均不相同的數據項的出現頻率均為k個均不相同的數據項在采樣數據流(或者采 樣數據流所屬的大數據流)中的實際出現頻率的近似值。
[0083] S105、在數據流采樣周期后,根據最后一次估算的k個均不相同的數據項的出現 頻率,確定k個均不相同的數據項中出現頻率滿足預設闊值的至少一個數據項為特殊數據 項。
[0084] 本發明實施例在數據流采樣周期內,對采樣數據流中的各個數據項的出現次數進 行計數;并在每經過預設時間后,估算目前數據項隊列中的k個均不相同的數據項的出現 頻率;W及在數據流采樣周期結束后,可根據最后一次估算的數據項隊列中的k個均不相 同的數據項的出現頻率,確定k個均不相同的數據項中出現頻率滿足預設闊值的至少一個 數據項即為特殊數據項。
[0085] 需要說明的是,本發明實施例提供的特殊數據項包括頻繁數據項和突發數據項。 當需要確定的特殊數據項為頻繁數據項時,在S105中,本發明實施例可W確定出現頻率大 于或等于預設闊值的至少一個數據項為頻繁數據項;當需要確定的特殊數據項為突發數據 項時,在S105中,本發明實施例可W確定出現頻率小于預設闊值的至少一個數據項為突發 數據項。
[0086] 可W理解的是,上述確定頻繁數據項和突發數據項時的預設闊值均可W根據實際 情況設定,本發明對此不作限制。當然,確定頻繁數據項時的預設闊值和確定突發數據項時 的預設闊值可W相同,也可W不同。
[0087] 示例性的,當特殊數據項為頻繁數據項時,可W將預設闊值設置為0. 08,運樣,可 W根據數據流采樣周期內最后一次估算的數據項隊列中的k個均不相同的數據項的出現 頻率,確定出現頻率大于或等于0. 08的數據項即為頻繁數據項。當特殊數據項為突發數據 項時,可W將預設闊值設置為0. 03,運樣,可W根據數據流采樣周期內最后一次估算的數據 項隊列中的k個均不相同的數據項的出現頻率,確定出現頻率小于0. 03的數據項即為突發 數據項。 陽0蝴可選的,上述S104中的計算公式可W為:ft= λζ,+ (1-λ)?·。;
[0089] 其中,t表示時刻;f康示t時刻數據項的出現頻率;ζ康示t時刻數據項的統計 次數或統計頻率,所述統計次數為與所述數據項對應的計數器的值,所述統計頻率為所述 計數器的值與數據項隊列中全部計數器的值之和的比值;λ表示預設的zt的加權值;f t 1 表示t-1時刻數據項的出現頻率。
[0090] 特別的,上述數據項的統計次數可W理解為統計的數據項的出現次數,即為與數 據項對應的計數器的值;上述數據項的統計頻率可W理解為統計的數據項的出現頻率,即 為與數據項對應的計數器的值和數據項隊列中的k個均不相同的計數器的值之和的比值。 假設k = 4,與某個數據項對應的計數器的值為2,4個計數器中除該計數器外的其他3個計 數器的值分別為3,4和1,則該數據項的統計次數=2,該數據項的統計頻率=2/(2+3+4+1) 二 0· 2〇
[0091] 從上述公式可W看出,本發明實施例在估算大數據流中的某個數據項的出現頻率 時,不但考慮了該數據項在采樣數據流中的實際出現次數(上述Zt),而且還考慮了前一次 估算的該數據項的出現頻率(上述ft 1)。如此在估算該數據項的出現頻率時,由于通過 考慮前一次估算的該數據項的出現頻率,考慮了該數據項在采樣數據流中隨時間變化的特 性,因此可W使得估算出的該數據項的出現頻率隨時間的變化而變化,從而能夠保證估算 出的該數據項的出現頻率比較接近該數據項在大數據流中的出現頻率,進而能夠準確地確 定大數據流中的特殊數據項。 陽09引特別的,本發明實施例中,λ可W根據實際設計需求進行取值,例如λ可W取0至 1之間的任意數值,本發明對此不作限制。
[0093] 可選的,本發明實施例提供的一種確定大數據流中的特殊數據項的方法中,采樣 數據流中的η個數據項中最先獲取到的k個均不相同的數據項形成的數據項隊列中的k個 均不相同的數據項按照與k個均不相同的數據項一一對應的k個均不相同的計數器的值由 大到小順序排列。
[0094] 可W理解的是,本發明實施例提供的確定大數據流中的特殊數據項的方法中,在 執行完S101之后,可W按照S102-S104中每個步驟及每個步驟中的時間條件(例如預設時 間、數據流采樣周期等)循環執行S102-S104 ;最終在數據流采樣周期結束后,再執行S105, W從大數據流中確定出滿足預設闊值的至少一個特殊數據項。 陽0巧]可選的,上述S101中,采用η個數據項中最先獲取到的k個均不相同的數據項形 成數據項隊列的一種可能的實現方式為:在數據流采樣周期開始后,依次獲取采樣數據流 中的η個數據項,并從η個數據項中的第一個數據項開始,將該第一個數據項添加至數據 項隊列中,W及為該第一個數據項設置一個計數器W用于統計該第一個數據項的出現次數 (具體實現中可W為計數寄存器等能夠實現計數的功能模塊),并將該計數器的值設置為 i ;對于η個數據項中的第二個數據項,若第二個數據項與第一個數據項相同,則在與第一 個數據項對應的計數器上累計其出現次數,若第二個數據項與第一個數據項不相同,則將 第二個數據項排列在第一個數據項的后面,并為第二個數據項設置一個計數器,W及將該 計數器設置為i ; W此類推,對于η個數據項中的其他數據項,依次重復執行上述過程,直至 由最先獲取到的k個均不相同的數據項形成一個數據項隊列為止。
[0096] 需要說明的是,k的取值可W根據實際需求設定。例如,若需要在大數據流中確定 出h個頻繁數據項,則k的取值可W為大于h的任意值。在合理取值范圍內,k的取值越大, 本發明實施例確定的h個頻繁數據項的準確率越高。
[0097] 可選的,上述S103中,將前一次更新后的數據項隊列中的第二數據項替換為第m 個數據項的方法,具體可W包括:
[0098] 從前一次更新后的數據項隊列中刪除第二數據項,并將第m個數據項添加到前一 次更新后的數據項隊列中,第m個數據項在前一次更新后的數據項隊列中的位置與第二數 據項在前一次更新后的數據項隊列中的位置相同。
[0099] 舉例來說,若前一次更新后的數據項隊列為{數據項A,計數器A ;數據項B,計數 器B ;數據項C,計數器C},則數據項C為第二數據項,當統計采樣數據流中的數據項D的出 現次數時,可W將數據項C從前一次更新后的數據項隊列中刪除,并將數據項D添加至前一 次更新后的數據項隊列中,W及為該數據項D設置計數器D,即此時更新后的數據項隊列為 {數據項A,計數器A ;數據項B,計數器B ;數據項D,計數器D}。
[0100] 優選的,本發明實施例描述的采樣數據流(或者采樣數據流所屬的大數據流)中 的每個數據項在該采樣數據流(或者采樣數據流所屬的大數據流)中的分布均隨時間的變 化而變化。如此,與現有技術的空間節省法相比,由于本發明實施例提供的確定大數據流中 的特殊數據項的方法在估算數據項的出現頻率時考慮了數據項在采樣數據流中的分布隨 時間的變化而變化的運種特性,因此,通過本發明實施例提供的確定大數據流中的特殊數 據項的方法,能夠比較準確地確定出大數據流中的特殊數據項。 陽101] 假設本發明實施例提供的采樣數據流為
[0102] {ABCDACBDABDCABCDDCBABCD},設定 k = 3,則按照上述 S101-S105 的方法,在數據 流采樣周期后(可W理解為將該采樣數據統計完成),得到的數據項隊列為化(1次)、C(4 次)和B (3次)},并根據最后一次估算的k個數據項的出現頻率,將滿足預設闊值的數據項 確定為特殊數據項。即使數據流采樣周期后得到的數據項隊列化(1次)、C(4次)和B(3 次)}中統計的數據項的出現次數與其實際的出現頻率不一致,但是按照本發明實施例提 供的確定大數據流中的特殊數據項的方法,由于在統計過程中每經過預設時間都估算了數 據項隊列中的數據項的出現頻率,且在本次估算數據項的出現頻率時均考慮了前一次估算 的數據項的出現頻率,因此,仍然能夠比較準確地確定大數據流中的特殊數據項。即本發明 實施例能夠通過比較準確地估算數據項的實際出現頻率,確定出需要確定的特殊數據項, 從而可W從運些特殊數據項中提取出需要的信息。 陽103] 為了進一步更加清楚地說明本發明實施例提供的確定大數據流中的特殊數據項 的方法,能夠比較準確地確定出大數據流中的特殊數據項,下面采用一個引理(引理1)和 一個定理(定理1),結合分析計算過程,從理論上進行論證說明。
[0104] 引理1 :定義Xt(t >0)為在t時刻,取值在0至1之間、且相互獨立,化及具有不 同分布的隨機變量序列,Yt為對X t采用EWMA技術進行計算的結果,即Y t也為隨機變量序 列。
[0105] 其中,上述隨機變量序列Xt中的隨機變量可W理解為本發明實施例提供的數據 項i,隨機變量序列Xt可W理解為本發明實施例提供的采樣數據流。假設,E技t] = Θ,若
,則下述公式(1)、(2)和(3)成立,其中,E技J為隨機變量Xt的數學期望值, η為采樣數據流中的數據項的個數,Θ為上述的預設闊值。
[0106] (1) |E[Yt]-0 I《(?-λ)η; 陽 107]似Pf[Yt《(1- 0 Θ ]《exp(- ε 2 Θ /4 入);
[0108] 0化化>(1+〇0]《0邱(-6 2目/4入)。 陽 109]上述 Pf[Yt《(1- ε ) Θ ]為 Υ (1- ε ) Θ 的概率,Ρ r[Yt> (1+ ε ) Θ ]為 Yt> α+Ο θ的概率;ε可W取非常小的數值,運樣能夠保證Yt數值的大小完全取決于 白。
[0110] 其中,引理1表示大數據流的數據模型及該數據模型中的各個數據項滿足的條 件。 陽111] 定理1 :使用本發明實施例提供的確定大數據流中的特殊數據項的方法,對引理1 定義的數據模型中的數據項進行出現頻率的估算。假設在每個時間步長后(可W理解為每 經過預設時間后),估算每個數據項的出現頻率為1- δ,則:
[0112] (1)如果在最后Τ時間的步長(可W理解為獲取該數據模型中的最后Κ個數據項) 后,(1+ 0 Θ,則數據項i 一定包含在本發明實施例提供的確定大數據流中的特殊數 據項的方法確定的特殊數據項中;
[0113] (2)如果在最后T時間的步長后,(1-0 Θ,則數據項i 一定不包含在本發明 實施例提供的確定大數據流中的特殊數據項的方法確定的特殊數據項中。
[0114] 其中,定理1表示對引理1的數據模型,采用本發明實施例提供的確定大數據流中 的特殊數據項的方法確定出的數據模型中的特殊數據項,一定是數據模型中需要確定的特 殊數據項。
[0115] 進一步地,上述T可W滿足如下公式: 陽116]
[0117] 可見,通過上述引理1定義的數據模型和該數據模型中的各個數據項滿足的條 件,W及定理1的原理,可W論證本發明實施例提供的確定大數據流中的特殊數據項的方 法能夠比較準確的確定出大數據流中的特殊數據項。
[0118] 進一步地,為了更好地描述本發明實施例提供的確定大數據流中的特殊數據項的 方法,相比于現有技術的空間節省法確定大數據流中的特殊數據項的準確率,本發明實施 例列舉出對模擬的某個采樣數據流進行仿真的結果,如圖2所示,其中,該采樣數據流包括 20,000個數據項。
[0119] 如圖2所示,為現有技術的空間節省法和本發明實施例確定大數據流中的特殊數 據項的方法確定的特殊數據項的分布的相似度。其中,曲線1可W表示現有技術的空間節 省法確定的大數據流中的特殊數據項的分布,曲線2可W表示本發明實施例確定的大數據 流中的特殊數據項的分布。可W看出,曲線1表示的數據項的分布相對比較穩定,曲線2表 示的數據項的分布變化比較頻繁,因此,與曲線1相比,曲線2更加能夠體現出數據項的分 布在不斷變化的特征。其中,圖2的縱坐標表示海寧格(英文出ellinger)距離,Hellinger 距離用于度量現有技術的空間節省法和本發明實施例確定大數據流中的特殊數據項的方 法確定的特殊數據項的分布的相似度;圖2的橫坐標表示數據項的個數。
[0120] 可W看出,與現有技術的空間節省法相比,本發明實施例提供的確定大數據流中 的特殊數據項的方法,由于考慮了隨著數據項的分布隨時間變化,數據項的出現頻率也隨 時間變化的特征,并提供了能夠快速適應運種變化特征的計算機制,因此能夠比較準確地 確定出大數據流中的特殊數據項。 陽121] 下面再在一個具體的應用場景中對本發明實施例提供的確定大數據流中的特殊 數據項的方法進行一個詳細地描述。 陽122] 場景:網絡流量的實時監控
[0123] 由于網絡流量異常是影響網絡傳輸的重要因素,因此需要對網絡流量進行實時監 控。在對網絡流量進行實時監控的過程中,需要預測網絡流量發生異常的數據包的源互聯 網協議(英文internet Protoco 1,縮寫:1巧地址和目的IP地址,W便確定主干網中發生 異常的網絡流量,從而可W及時調整路由策略,有效避免網絡阻塞,進而提升網絡的整體性 能。
[0124] 當大量數據包在網絡端口 W序列的方式快速到達時,運些大量的數據包可W假設 為大數據流,每個數據包可W為該大數據流中的一個數據項。利用本發明實施例提供的確 定大數據流中的特殊數據項的方法時,具體可W將每個數據包的特征值,例如該數據包的 源IP地址、該數據包的目的IP地址和該數據包的數據流量(即為該數據包的數據量)作 為一個數據項。
[01巧]具體的,在采樣時間內,當接收到一個數據包時,可W獲取該數據包的特征值作為 一個數據項,并在后續接收到其他數據包時,通過對比其他數據包的特征值與該數據包的 特征值,確定該數據包是否被統計過,依次類推,統計數據流采樣周期內,大數據流中的采 樣數據流中的每個數據包的出現次數,并在每經過一個預設時間后,就根據統計的各個數 據包的出現次數、前一次估算的各個數據包的出現頻率和本發明實施例預設的計算公式, 估算每個數據包的出現頻率,最終在數據流采樣周期結束后得到的數據項隊列中確定出小 于預設闊值的至少一個數據項即為特殊數據項,也就是發生異常的數據包的特征值。從而 再根據運些數據包的特征值,調整路由策略,直至異常數據包不再出現,即網絡流量恢復正 常。例如,異常數據包的流量過大導致網絡流量異常,引起網絡阻塞,通過本發明實施例提 供的確定大數據流中的特殊數據項的方法,可W確定出發生異常的數據包,并獲知發生異 常的數據包的源IP地址、目的IP地址和數據流量,從而可W通過降低從具有該源IP地址 的源數據端向具有該目的IP地址的目的數據端發送的數據包的數據流量,解決網絡流量 異常的問題,進而有效避免網絡阻塞。
[01%] 本發明實施例提供一種確定大數據流中的特殊數據項的方法及裝置,通過在數據 流采樣周期內,依次獲取采樣數據流中的η個數據項,并采用η個數據項中最先獲取到的k 個均不相同的數據項形成數據項隊列,k個均不相同的數據項一一對應k個均不相同的計 數器,k個均不相同的計數器中的每個計數器用于統計形成該數據項隊列之前與該計數器 對應的數據項的出現次數;若η個數據項中在k個均不相同的數據項之后獲取的數據項中 的第m個數據項與前一次更新后的數據項隊列中的第一數據項相同,則將與第一數據項對 應的第一計數器加 i,并將第一數據項和第一計數器移動至前一次更新后的數據項隊列的 隊首,第一數據項為前一次更新后的數據項隊列中的任意一個數據項;若第m個數據項與 前一次更新后的數據項隊列中的各個數據項均不相同,則將前一次更新后的數據項隊列中 的第二數據項替換為第m個數據項,并將與第m個數據項對應的第二計數器設置為i,W及 將第m個數據項和第二計數器移動至前一次更新后的數據項隊列的隊首,第二數據項為位 于前一次更新后的數據項隊列的隊尾的數據項;并在每經過預設時間后,根據k個均不相 同的計數器的值、前一次估算的k個均不相同的數據項的出現頻率和預設的計算公式,估 算k個均不相同的數據項的出現頻率,預設時間小于或等于數據流采樣周期,其中,第一次 估算k個均不相同的數據項的出現頻率時采用的前一次估算的k個均不相同的數據項的出 現頻率為0 ; W及在數據流采樣周期后,根據最后一次估算的k個均不相同的數據項的出現 頻率,確定k個均不相同的數據項中出現頻率滿足預設闊值的至少一個數據項為特殊數據 項;其中,當m = k+1時,所述前一次更新后的數據項隊列為形成后的數據項隊列,η為正整 數,k為正整數,k《η,m的值依次從k+1取到η,m為整數,i為正整數。
[0127] 基于本發明實施例提供的上述技術方案,由于本發明實施例可W在數據流采樣周 期內統計獲取的各個數據項的出現次數,并根據各個數據項及各個數據項的出現次數實時 更新數據項隊列,W及每經過預設時間后,通過數據項隊列中的k個均不相同的數據項的 出現次數、前一次估算的k個均不相同的數據項的出現頻率及預設的計算公式估算數據項 隊列中的k個均不相同的數據項的出現頻率,如此本發明實施例提供的技術方案可W實時 估算數據項的出現頻率,且本次估算k個均不相同的數據項的出現頻率時參考了前一次估 算的k個均不相同的數據項的出現頻率,即估算的數據項的出現頻率隨時間的變化而變 化,從而可W保證估算的數據項的出現頻率相對比較準確,進而能夠根據數據項的出現頻 率,比較準確地確定大數據流中的特殊數據項。 陽12引實施例二
[0129] 如圖3所示,本發明實施例提供一種確定大數據流中的特殊數據項的裝置,該裝 置可W包括:
[0130] 獲取單元10,用于在數據流采樣周期內,依次獲取采樣數據流中的η個數據項,并 采用所述η個數據項中最先獲取到的k個均不相同的數據項形成數據項隊列,所述k個均 不相同的數據項一一對應k個均不相同的計數器,所述k個均不相同的計數器中的每個計 數器用于統計形成所述數據項隊列之前與該計數器對應的數據項的出現次數,η為正整數, k為正整數,k《n。 陽131 ] 處理單元11,用于若所述η個數據項中所述獲取單元10在所述k個均不相同的數 據項之后獲取的數據項中的第m個數據項與前一次更新后的數據項隊列中的第一數據項 相同,則將與所述第一數據項對應的第一計數器加 i,并將所述第一數據項和所述第一計數 器移動至所述前一次更新后的數據項隊列的隊首,所述第一數據項為所述前一次更新后的 數據項隊列中的任意一個數據項;若所述獲取單元10獲取的所述第m個數據項與所述前一 次更新后的數據項隊列中的各個數據項均不相同,則將所述前一次更新后的數據項隊列中 的第二數據項替換為所述第m個數據項,并將與所述第m個數據項對應的第二計數器設置 為i,W及將所述第m個數據項和所述第二計數器移動至所述前一次更新后的數據項隊列 的隊首,所述第二數據項為位于所述前一次更新后的數據項隊列的隊尾的數據項;其中,當 m = k+1時,所述前一次更新后的數據項隊列為形成后的數據項隊列,m的值依次從k+1取 到n,m為整數,i為正整數。 陽132] 估算單元12,用于在每經過預設時間后,根據所述處理單元11增加后的所述k個 均不相同的計數器的值、前一次估算的所述k個均不相同的數據項的出現頻率和預設的計 算公式,估算所述k個均不相同的數據項的出現頻率,所述預設時間小于或等于所述數據 流采樣周期,其中,第一次估算所述k個均不相同的數據項的出現頻率時采用的所述前一 次估算的所述k個均不相同的數據項的出現頻率為0。 陽133] 確定單元13,用于在所述數據流采樣周期后,根據所述估算單元12最后一次估算 的所述k個均不相同的數據項的出現頻率,確定所述k個均不相同的數據項中出現頻率滿 足預設闊值的至少一個數據項為特殊數據項。
[0134] 可選的,所述計算公式為:ft= λζ,+ (1-λ)?·。; 陽13引其中,t表示時刻;f康示t時刻數據項的出現頻率;Ζ康示t時刻數據項的統計 次數或統計頻率,所述統計次數為與所述數據項對應的計數器的值,所述統計頻率為所述 計數器的值與數據項隊列中全部計數器的值之和的比值;λ表示預設的Zt的加權值;f t 1 表示t-1時刻數據項的出現頻率。
[0136] 可選的,所述獲取單元10形成后的數據項隊列中的所述k個均不相同的數據項按 照所述k個均不相同的計數器的值由大到小順序排列。
[0137] 可選的,所述處理單元11,具體用于從從所述前一次更新后的數據項隊列中刪除 所述第二數據項,并將所述第m個數據項添加到所述前一次更新后的數據項隊列中,所述 第m個數據項在所述前一次更新后的數據項隊列中的位置與所述第二數據項在所述前一 次更新后的數據項隊列中的位置相同。
[0138] 可選的,所述獲取單元10獲取的所述采樣數據流中的η個數據項在所述采樣數據 流中的分布均隨時間的變化而變化。
[0139] 可選的,所述特殊數據項為頻繁數據項或者突發數據項,
[0140] 所述確定單元13,具體用于確定出現頻率大于或等于所述預設闊值的至少一個數 據項為所述頻繁數據項;或者確定出現頻率小于所述預設闊值的至少一個數據項為所述突 發數據項。 陽141] 本發明實施例提供一種確定大數據流中的特殊數據項的裝置,該裝置在數據流采 樣周期內,依次獲取采樣數據流中的η個數據項,并采用η個數據項中最先獲取到的k個均 不相同的數據項形成數據項隊列,k個均不相同的數據項一一對應k個均不相同的計數器, k個均不相同的計數器中的每個計數器用于統計形成數據項隊列之前與該計數器對應的數 據項的出現次數;且若η個數據項中該裝置在k個均不相同的數據項之后獲取的數據項中 的第m個數據項與前一次更新后的數據項隊列中的第一數據項相同,則該裝置將與第一數 據項對應的第一計數器加 i,并將第一數據項和第一計數器移動至前一次更新后的數據項 隊列的隊首,第一數據項為前一次更新后的數據項隊列中的任意一個數據項;若該裝置獲 取的所述第m個數據項與所述前一次更新后的數據項隊列中的各個數據項均不相同,則該 裝置將前一次更新后的數據項隊列中的第二數據項替換為第m個數據項,并將與第m個數 據項對應的第二計數器設置為i,W及將第m個數據項和第二計數器移動至前一次更新后 的數據項隊列的隊首,第二數據項為位于前一次更新后的數據項隊列的隊尾的數據項;且 該裝置在每經過預設時間后,根據k個均不相同的計數器的值、前一次估算的k個均不相同 的數據項的出現頻率和預設的計算公式,估算k個均不相同的數據項的出現頻率,預設時 間小于或等于數據流采樣周期,其中,第一次估算k個均不相同的數據項的出現頻率時采 用的前一次估算的k個均不相同的數據項的出現頻率為0 ; W及該裝置在數據流采樣周期 后,根據最后一次估算的k個均不相同的數據項的出現頻率,確定k個均不相同的數據項中 出現頻率滿足預設闊值的至少一個數據項為特殊數據項;其中,當m = k+1時,前一次更新 后的數據項隊列為形成后的數據項隊列,η為正整數,k為正整數,k《n,m的值依次從k+1 取到n,m為整數,i為正整數。 陽142] 基于本發明實施例提供的上述確定大數據流中的特殊數據項的裝置,由于該裝置 可W在數據流采樣周期內統計獲取的各個數據項的出現次數,并根據各個數據項及各個數 據項的出現次數實時更新數據項隊列,W及每經過預設時間后,通過數據項隊列中的k個 均不相同的數據項的出現次數、前一次估算的k個均不相同的數據項的出現頻率及預設的 計算公式估算數據項隊列中的k個均不相同的數據項的出現頻率,如此本發明提供的該裝 置可W實時估算數據項的出現頻率,且本次估算k個均不相同的數據項的出現頻率時參考 了前一次估算的k個均不相同的數據項的出現頻率,即估算的數據項的出現頻率隨時間的 變化而變化,從而可W保證估算的數據項的出現頻率相對比較準確,進而能夠根據數據項 的出現頻率,比較準確地確定大數據流中的特殊數據項。 陽143] 實施例Ξ
[0144] 如圖4所示,本發明實施例提供一種確定大數據流中的特殊數據項的裝置,該裝 置可W為大數據流分析系統,或者為大數據流分析系統中的分析單元/分析模塊/分析器 等。具體的,該裝置可W包括處理器20、存儲器21、通信接口 22, W及系統總線23。所述處 理器20、存儲器21 W及通信接口 22之間通過所述系統總線23連接并完成相互間的通信。
[0145] 所述處理器20可W是一個中央處理器(英文:central processing unit,縮寫: CPU),或者是特定集成電路(英文:application specific integrated cir州it,縮寫: ASIC),或者是被配置成實施本發明實施例的一個或多個集成電路。 陽146] 所述通信接口 22可W為所述裝置與其他設備進行通信的通信接口。
[0147] 所述存儲器21可W包括易失性存儲器(英文:volatile memo巧),例如隨機存取 存儲器(英文:random-access memcxry,縮寫:RAM);所述存儲器21也可W包括非易失性 存儲器(英文:non-volatile memoir),例如只讀存儲器(英文:read-〇nly memoir,縮寫: ROM),快閃存儲器(英文:flash memo巧),硬盤(英文:hard disk化ive,縮寫:皿D)或固 態硬盤(英文:solid-state化ive,縮寫:SSD);所述存儲器21還可W包括上述種類的存 儲器的組合。
[0148] 當所述裝置運行時,所述處理器20可W執行圖1或圖2所述的方法流程,具體包 括:
[0149] 所述處理器20,用于在在數據流采樣周期內,依次獲取采樣數據流中的η個數據 項,并采用所述η個數據項中最先獲取到的k個均不相同的數據項形成數據項隊列,所述k 個均不相同的數據項一一對應k個均不相同的計數器,所述k個均不相同的計數器中的每 個計數器用于統計形成所述數據項隊列之前與該計數器對應的數據項的出現次數;且若所 述η個數據項中在所述k個均不相同的數據項之后獲取的數據項中的第m個數據項與前一 次更新后的數據項隊列中的第一數據項相同,則將與所述第一數據項對應的第一計數器加 i,并將所述第一數據項和所述第一計數器移動至所述前一次更新后的數據項隊列的隊首, 所述第一數據項為所述前一次更新后的數據項隊列中的任意一個數據項;若所述第m個數 據項與所述前一次更新后的數據項隊列中的各個數據項均不相同,則將所述前一次更新后 的數據項隊列中的第二數據項替換為所述第m個數據項,并將與所述第m個數據項對應的 第二計數器設置為i,W及將所述第m個數據項和所述第二計數器移動至所述前一次更新 后的數據項隊列的隊首,所述第二數據項為位于所述前一次更新后的數據項隊列的隊尾的 數據項;并在每經過預設時間后,根據所述k個均不相同的計數器的值、前一次估算的所述 k個均不相同的數據項的出現頻率和預設的計算公式,估算所述k個均不相同的數據項的 出現頻率,所述預設時間小于或等于所述數據流采樣周期,其中,第一次估算所述k個均不 相同的數據項的出現頻率時采用的所述前一次估算的所述k個均不相同的數據項的出現 頻率為0 ; W及在所述數據流采樣周期后,根據最后一次估算的所述k個均不相同的數據項 的出現頻率,確定所述k個均不相同的數據項中出現頻率滿足預設闊值的至少一個數據項 為特殊數據項;其中,當m = k+1時,所述前一次更新后的數據項隊列為形成后的數據項隊 列,η為正整數,k為正整數,k《n,m的值依次從k+1取到n,m為整數,i為正整數;所述存 儲器21,用于存儲每次更新后的所述數據項隊列、所述k個均不相同的計數器的值、所述計 算公式、所述k個均不相同的數據項的出現頻率、所述預設闊值W及控制所述處理器20完 成上述過程的軟件程序,從而所述處理器20通過執行所述存儲器21存儲的所述軟件程序 并調用所述存儲器21存儲的上述數據項的參數數值和計算公式等信息,完成上述過程。 陽15〇] 可選的,所述計算公式為:ft= λζι+(?-λ)?·。; 陽151] 其中,t表示時刻;ft表示t時刻數據項的出現頻率;Ζ t表示t時刻數據項的統計 次數或統計頻率,所述統計次數為與所述數據項對應的計數器的值,所述統計頻率為所述 計數器的值與數據項隊列中全部計數器的值之和的比值;λ表示預設的Zt的加權值;f t 1 表示t-1時刻數據項的出現頻率。 陽152] 可選的,所述處理器20形成后的數據項隊列中的所述k個均不相同的數據項按照 所述k個均不相同的計數器的值由大到小順序排列。 陽153] 可選的,所述處理器20,具體用于從從所述前一次更新后的數據項隊列中刪除所 述第二數據項,并將所述第m個數據項添加到所述前一次更新后的數據項隊列中,所述第m 個數據項在所述前一次更新后的數據項隊列中的位置與所述第二數據項在所述前一次更 新后的數據項隊列中的位置相同。
[0154] 可選的,所述處理器20獲取的所述采樣數據流中的η個數據項在所述采樣數據流 中的分布均隨時間的變化而變化。 陽155] 可選的,所述特殊數據項為頻繁數據項或者突發數據項, 陽156] 所述處理器20,具體用于確定出現頻率大于或等于所述預設闊值的至少一個數據 項為所述頻繁數據項;或者確定出現頻率小于所述預設闊值的至少一個數據項為所述突發 數據項。
[0157] 本發明實施例提供一種確定大數據流中的特殊數據項的裝置,該裝置在數據流采 樣周期內,依次獲取采樣數據流中的η個數據項,并采用η個數據項中最先獲取到的k個均 不相同的數據項形成數據項隊列,k個均不相同的數據項一一對應k個均不相同的計數器, k個均不相同的計數器中的每個計數器用于統計形成數據項隊列之前與該計數器對應的數 據項的出現次數;且若η個數據項中該裝置在k個均不相同的數據項之后獲取的數據項中 的第m個數據項與前一次更新后的數據項隊列中的第一數據項相同,則該裝置將與第一數 據項對應的第一計數器加 i,并將第一數據項和第一計數器移動至前一次更新后的數據項 隊列的隊首,第一數據項為前一次更新后的數據項隊列中的任意一個數據項;若該裝置獲 取的所述第m個數據項與所述前一次更新后的數據項隊列中的各個數據項均不相同,則該 裝置將前一次更新后的數據項隊列中的第二數據項替換為第m個數據項,并將與第m個數 據項對應的第二計數器設置為i,W及將第m個數據項和第二計數器移動至前一次更新后 的數據項隊列的隊首,第二數據項為位于前一次更新后的數據項隊列的隊尾的數據項;且 該裝置在每經過預設時間后,根據k個均不相同的計數器的值、前一次估算的k個均不相同 的數據項的出現頻率和預設的計算公式,估算k個均不相同的數據項的出現頻率,預設時 間小于或等于數據流采樣周期,其中,第一次估算k個均不相同的數據項的出現頻率時采 用的前一次估算的k個均不相同的數據項的出現頻率為0 ; W及該裝置在數據流采樣周期 后,根據最后一次估算的k個均不相同的數據項的出現頻率,確定k個均不相同的數據項中 出現頻率滿足預設闊值的至少一個數據項為特殊數據項;其中,當m = k+1時,前一次更新 后的數據項隊列為形成后的數據項隊列,η為正整數,k為正整數,k《n,m的值依次從k+1 取到n,m為整數,i為正整數。 陽15引基于本發明實施例提供的上述確定大數據流中的特殊數據項的裝置,由于該裝置 可w在數據流采樣周期內統計獲取的各個數據項的出現次數,并根據各個數據項及各個數 據項的出現次數實時更新數據項隊列,W及每經過預設時間后,通過數據項隊列中的k個 均不相同的數據項的出現次數、前一次估算的k個均不相同的數據項的出現頻率及預設的 計算公式估算數據項隊列中的k個均不相同的數據項的出現頻率,如此本發明提供的該裝 置可W實時估算數據項的出現頻率,且本次估算k個均不相同的數據項的出現頻率時參考 了前一次估算的k個均不相同的數據項的出現頻率,即估算的數據項的出現頻率隨時間的 變化而變化,從而可W保證估算的數據項的出現頻率相對比較準確,進而能夠根據數據項 的出現頻率,比較準確地確定大數據流中的特殊數據項。
[0159] 通過W上的實施方式的描述,所屬領域的技術人員可W清楚地了解到,為描述的 方便和簡潔,僅W上述各功能模塊的劃分進行舉例說明,實際應用中,可W根據需要而將上 述功能分配由不同的功能模塊完成,即將裝置的內部結構劃分成不同的功能模塊,W完成 W上描述的全部或者部分功能。上述描述的系統,裝置和單元的具體工作過程,可W參考前 述方法實施例中的對應過程,在此不再寶述。
[0160] 在本申請所提供的幾個實施例中,應該理解到,所掲露的系統,裝置和方法,可W 通過其它的方式實現。例如,W上所描述的裝置實施例僅僅是示意性的,例如,所述模塊或 單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可W有另外的劃分方式,例如多個單元 或組件可W結合或者可W集成到另一個系統,或一些特征可W忽略,或不執行。另一點,所 顯示或討論的相互之間的禪合或直接禪合或通信連接可W是通過一些接口,裝置或單元的 間接禪合或通信連接,可W是電性,機械或其它的形式。 陽161] 所述作為分離部件說明的單元可W是或者也可W不是物理上分開的,作為單元顯 示的部件可W是或者也可W不是物理單元,即可W位于一個地方,或者也可W分布到多個 網絡單元上。可W根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目 的。
[0162] 另外,在本發明各個實施例中的各功能單元可W集成在一個處理單元中,也可W 是各個單元單獨物理存在,也可W兩個或兩個W上單元集成在一個單元中。上述集成的單 元既可W采用硬件的形式實現,也可W采用軟件功能單元的形式實現。
[0163] 所述集成的單元如果W軟件功能單元的形式實現并作為獨立的產品銷售或使用 時,可W存儲在一個計算機可讀取存儲介質中。基于運樣的理解,本發明的技術方案本質上 或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可軟件產品的形式 體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用W使得一臺計算機 設備(可W是個人計算機,服務器,或者網絡設備等)或處理器(processor)執行本發明各 個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲 器(ROM, Read-Only Memoir)、隨機存取存儲器(RAM, Random Access Memoir)、磁碟或者光 盤等各種可W存儲程序代碼的介質。
[0164] W上所述,僅為本發明的【具體實施方式】,但本發明的保護范圍并不局限于此,任何 熟悉本技術領域的技術人員在本發明掲露的技術范圍內,可輕易想到變化或替換,都應涵 蓋在本發明的保護范圍之內。因此,本發明的保護范圍應W所述權利要求的保護范圍為準。
【主權項】
1. 一種確定大數據流中的特殊數據項的方法,其特征在于,包括: 在數據流采樣周期內,依次獲取采樣數據流中的η個數據項,并采用所述η個數據項中 最先獲取到的k個均不相同的數據項形成數據項隊列,所述k個均不相同的數據項一一對 應k個均不相同的計數器,所述k個均不相同的計數器中的每個計數器用于統計形成所述 數據項隊列之前與該計數器對應的數據項的出現次數,η為正整數,k為正整數,k < η ; 若所述η個數據項中在所述k個均不相同的數據項之后獲取的數據項中的第m個數據 項與前一次更新后的數據項隊列中的第一數據項相同,則將與所述第一數據項對應的第一 計數器加 i,并將所述第一數據項和所述第一計數器移動至所述前一次更新后的數據項隊 列的隊首,所述第一數據項為所述前一次更新后的數據項隊列中的任意一個數據項,其中, 當m = k+Ι時,所述前一次更新后的數據項隊列為形成后的數據項隊列,m的值依次從k+1 取到n,m為整數,i為正整數; 若所述第m個數據項與所述前一次更新后的數據項隊列中的各個數據項均不相同,則 將所述前一次更新后的數據項隊列中的第二數據項替換為所述第m個數據項,并將與所述 第m個數據項對應的第二計數器設置為i,以及將所述第m個數據項和所述第二計數器移動 至所述前一次更新后的數據項隊列的隊首,所述第二數據項為位于所述前一次更新后的數 據項隊列的隊尾的數據項,其中,當m = k+Ι時,所述前一次更新后的數據項隊列為形成后 的數據項隊列,m的值依次從k+Ι取到n,m為整數,i為正整數; 每經過預設時間后,根據所述k個均不相同的計數器的值、前一次估算的所述k個均 不相同的數據項的出現頻率和預設的計算公式,估算所述k個均不相同的數據項的出現頻 率,所述預設時間小于或等于所述數據流采樣周期,其中,第一次估算所述k個均不相同的 數據項的出現頻率時采用的所述前一次估算的所述k個均不相同的數據項的出現頻率為 〇 ; 在所述數據流采樣周期后,根據最后一次估算的所述k個均不相同的數據項的出現頻 率,確定所述k個均不相同的數據項中出現頻率滿足預設閾值的至少一個數據項為特殊數 據項。2. 根據權利要求1所述的方法,其特征在于, 所述計算公式為:ft= Xzt+(l_A)ftl; 其中,t表示時刻;ft表示t時刻數據項的出現頻率;z t表示t時刻數據項的統計次數 或統計頻率,所述統計次數為與所述數據項對應的計數器的值,所述統計頻率為所述計數 器的值與數據項隊列中全部計數器的值之和的比值;λ表示預設的 Zt的加權值;f t i表示 t_l時刻數據項的出現頻率。3. 根據權利要求1或2所述的方法,其特征在于, 所述形成后的數據項隊列中的所述k個均不相同的數據項按照所述k個均不相同的計 數器的值由大到小順序排列。4. 根據權利要求1-3任一項所述的方法,其特征在于,所述將所述前一次更新后的數 據項隊列中的第二數據項替換為所述第m個數據項,包括: 從所述前一次更新后的數據項隊列中刪除所述第二數據項,并將所述第m個數據項添 加到所述前一次更新后的數據項隊列中,所述第m個數據項在所述前一次更新后的數據項 隊列中的位置與所述第二數據項在所述前一次更新后的數據項隊列中的位置相同。5. 根據權利要求1-4任一項所述的方法,其特征在于,所述特殊數據項為頻繁數據項 或者突發數據項, 所述確定所述k個均不相同的數據項中出現頻率滿足預設閾值的至少一個數據項為 特殊數據項,包括: 確定所述k個均不相同的數據項中出現頻率大于或等于所述預設閾值的至少一個數 據項為所述頻繁數據項;或者 確定所述k個均不相同的數據項中出現頻率小于所述預設閾值的至少一個數據項為 所述突發數據項。6. -種確定大數據流中的特殊數據項的裝置,其特征在于,包括: 獲取單元,用于在數據流采樣周期內,依次獲取采樣數據流中的η個數據項,并采用所 述η個數據項中最先獲取到的k個均不相同的數據項形成數據項隊列,所述k個均不相同 的數據項一一對應k個均不相同的計數器,所述k個均不相同的計數器中的每個計數器用 于統計形成所述數據項隊列之前與該計數器對應的數據項的出現次數,η為正整數,k為正 整數,k彡η ; 處理單元,用于若所述η個數據項中所述獲取單元在所述k個均不相同的數據項之后 獲取的數據項中的第m個數據項與前一次更新后的數據項隊列中的第一數據項相同,則將 與所述第一數據項對應的第一計數器加 i,并將所述第一數據項和所述第一計數器移動至 所述前一次更新后的數據項隊列的隊首,所述第一數據項為所述前一次更新后的數據項隊 列中的任意一個數據項;若所述獲取單元獲取的所述第m個數據項與所述前一次更新后的 數據項隊列中的各個數據項均不相同,則將所述前一次更新后的數據項隊列中的第二數據 項替換為所述第m個數據項,并將與所述第m個數據項對應的第二計數器設置為i,以及將 所述第m個數據項和所述第二計數器移動至所述前一次更新后的數據項隊列的隊首,所述 第二數據項為位于所述前一次更新后的數據項隊列的隊尾的數據項;其中,當m = k+Ι時, 所述前一次更新后的數據項隊列為形成后的數據項隊列,m的值依次從k+1取到n,m為整 數,i為正整數; 估算單元,用于在每經過預設時間后,根據所述處理單元增加后的所述k個均不相同 的計數器的值、前一次估算的所述k個均不相同的數據項的出現頻率和預設的計算公式, 估算所述k個均不相同的數據項的出現頻率,所述預設時間小于或等于所述數據流采樣周 期,其中,第一次估算所述k個均不相同的數據項的出現頻率時采用的所述前一次估算的 所述k個均不相同的數據項的出現頻率為0 ; 確定單元,用于在所述數據流采樣周期后,根據所述估算單元最后一次估算的所述k 個均不相同的數據項的出現頻率,確定所述k個均不相同的數據項中出現頻率滿足預設閾 值的至少一個數據項為特殊數據項。7. 根據權利要求6所述的裝置,其特征在于, 所述計算公式為:ft= Xzt+(l_A)ftl; 其中,t表示時刻;ft表示t時刻數據項的出現頻率;z t表示t時刻數據項的統計次數 或統計頻率,所述統計次數為與所述數據項對應的計數器的值,所述統計頻率為所述計數 器的值與數據項隊列中全部計數器的值之和的比值;λ表示預設的 Zt的加權值;f t i表示 t_l時刻數據項的出現頻率。8. 根據權利要求6或7所述的裝置,其特征在于, 所述獲取單元形成后的數據項隊列中的所述k個均不相同的數據項按照所述k個均不 相同的計數器的值由大到小順序排列。9. 一種確定大數據流中的特殊數據項的裝置,其特征在于,包括: 處理器,用于在數據流采樣周期內,依次獲取采樣數據流中的η個數據項,并采用所述 η個數據項中最先獲取到的k個均不相同的數據項形成數據項隊列,所述k個均不相同的 數據項一一對應k個均不相同的計數器,所述k個均不相同的計數器中的每個計數器用于 統計形成所述數據項隊列之前與該計數器對應的數據項的出現次數;且若所述η個數據項 中在所述k個均不相同的數據項之后獲取的數據項中的第m個數據項與前一次更新后的數 據項隊列中的第一數據項相同,則將與所述第一數據項對應的第一計數器加 i,并將所述第 一數據項和所述第一計數器移動至所述前一次更新后的數據項隊列的隊首,所述第一數據 項為所述前一次更新后的數據項隊列中的任意一個數據項;若所述第m個數據項與所述前 一次更新后的數據項隊列中的各個數據項均不相同,則將所述前一次更新后的數據項隊列 中的第二數據項替換為所述第m個數據項,并將與所述第m個數據項對應的第二計數器設 置為i,以及將所述第m個數據項和所述第二計數器移動至所述前一次更新后的數據項隊 列的隊首,所述第二數據項為位于所述前一次更新后的數據項隊列的隊尾的數據項;并在 每經過預設時間后,根據所述k個均不相同的計數器的值、前一次估算的所述k個均不相 同的數據項的出現頻率和預設的計算公式,估算所述k個均不相同的數據項的出現頻率, 所述預設時間小于或等于所述數據流采樣周期,其中,第一次估算所述k個均不相同的數 據項的出現頻率時采用的所述前一次估算的所述k個均不相同的數據項的出現頻率為0 ; 以及在所述數據流采樣周期后,根據最后一次估算的所述k個均不相同的數據項的出現頻 率,確定所述k個均不相同的數據項中出現頻率滿足預設閾值的至少一個數據項為特殊數 據項;其中,當m = k+Ι時,所述前一次更新后的數據項隊列為形成后的數據項隊列,η為正 整數,k為正整數,k < n,m的值依次從k+Ι取到n,m為整數,i為正整數。10. 根據權利要求9所述的裝置,其特征在于, 所述計算公式為:ft= Xzt+(l_A)ftl; 其中,t表示時刻;ft表示t時刻數據項的出現頻率;z t表示t時刻數據項的統計次數 或統計頻率,所述統計次數為與所述數據項對應的計數器的值,所述統計頻率為所述計數 器的值與數據項隊列中全部計數器的值之和的比值;λ表示預設的 Zt的加權值;f t i表示 t_l時刻數據項的出現頻率。11. 根據權利要求9或10所述的裝置,其特征在于, 所述處理器形成后的數據項隊列中的所述k個均不相同的數據項按照所述k個均不相 同的計數器的值由大到小順序排列。
【文檔編號】G06F17/30GK105989104SQ201510080264
【公開日】2016年10月5日
【申請日】2015年2月13日
【發明人】阿爾伯特·比非特, 歐陽軍, 范偉
【申請人】華為技術有限公司