一種頻次類實時統計模型系統及方法與流程
2023-06-06 03:50:06 2
本發明涉及數據統計領域,尤其涉及一種頻次類實時統計模型系統及方法。
背景技術:
隨著網際網路技術的發展和更新,基於網絡的應用越來越多。企事業單位內部信息化程度越來越高,很多關鍵信息都存放在信息系統中,企業內部發生的頻繁訪問有可能是內部員工在盜取數據;網際網路應用和網站越來越多,其中出現的頻繁訪問有可能是正常的用戶使用,也有可能是黑客攻擊。
例如,根據某個業務系統中的訪問日誌記錄,員工a在5分鐘內進行了1000次訪問操作,正常情況下,不可有人達到如此高的操作頻率,出現這個情況有可能是此員工正在通過第三方的插件或程序對系統進行數據盜取。
又例如,根據某網站的用戶訪問日誌記錄,某ip在1分鐘內進行了100次登錄操作,正常情況下不可能有人進行這樣的操作,出現這個情況有可能是黑客程序正在暴力破解用戶密碼。
傳統的解決方案是使用定時任務,定期對用戶訪問和操作日誌進行統計,統計一分鐘或5分鐘內的操作數量,超過閥值進行告警。但是這樣的解決方案有不少弊端,具體如下:
1、延遲較大,當發現超閥值時,實際可能已經過去了一段時間。
2、如果訪問和操作日誌採集來自多個系統,數據來源延遲時,統計數量會存在遺漏的情況。
3、如果為減少定時任務延遲性,可能會將定時任務執行周期調短,但是不管如何調短,仍然會存在跨周期超閥值而統計盲點的情況,比如:執行周期1分鐘進行1次統計,設定閥值為1分鐘100次操作,用戶在3:31:59進行了60次操作,在3:32:01進行了60次操作,根據統計來看,每一個分鐘片段都沒有超閥值,但實際上用戶是在3秒內進行了120次操作,類似此種情況,傳統的統計任務無法識別。如果設定周期為1秒鐘1次,則會存在大量的無用查詢,增加資料庫壓力。
技術實現要素:
本發明解決的問題是現有的對用戶訪問和操作日誌的統計方法會有延遲較大,且存在統計遺漏等問題。
為解決上述問題,本發明實施例提供了一種數據記錄處理方法,包括如下步驟:
在每一條數據記錄入庫時,確定當前數據記錄的產生時間;
分別對以所述當前數據記錄的產生時間為基準的前一頻次周期和後一頻次周期內的數據記錄數進行更新。
可選的,數據記錄處理方法還包括如下步驟:
在查詢超閾值的頻次計數時,遍歷各個以當前數據記錄的產生時間為基準的前一頻次周期和後一頻次周期內的數據記錄數;
篩選出大於所述閾值的數據記錄數所在的頻次周期及其對應的當前數據記錄的產生時間,以確定頻次計數超閾值的時間段。
可選的,所述當前數據記錄的產生時間是當前數據記錄的入庫時間或者是早於當前數據記錄的入庫時間。
可選的,所述分別對以所述當前數據記錄的產生時間為基準的前一頻次周期和後一頻次周期內的數據記錄數進行更新包括:
將以所述當前數據記錄的產生時間為基準的前一頻次周期內的數據記錄數加1;
將以所述當前數據記錄的產生時間為基準的後一頻次周期內的數據記錄數加1。
可選的,各個以當前數據記錄的產生時間為基準的頻次周期的時長相等。
與現有技術相比,本發明技術方案具有以下有益效果:
在每一條數據記錄入庫時,同步更新以該條數據記錄的產生時間為基準的向前頻次周期和向後頻次周期內的數據記錄數,從而可以解決存在跨周期超閥值的統計盲點問題。
進一步,針對各條數據記錄的入庫時間和產生時間可能不一致(因延誤導致)的問題,由於是以數據記錄的產生時間為基準對前後兩個頻次周期內的數據記錄數進行更新,因此對於延遲入庫的數據記錄,也不會出現遺漏統計的情況。
而在查詢超閾值的頻次計數時,只需要對各個頻次周期內的數據記錄數進行篩選就可以得到頻次計數超閥值產生的時間段,無需對每個分片時間段再次進行統計。
附圖說明
圖1是本發明實施例的一種數據記錄處理方法的具體實施方式的流程示意圖。
具體實施方式
為使本發明的上述目的、特徵和優點能夠更為明顯易懂,下面結合附圖對本發明的具體實施方式做詳細的說明。
如圖1所示的是本發明實施例的一種數據記錄處理方法的具體實施方式的流程示意圖。參考圖1,數據記錄處理方法包括如下步驟:
步驟s1:在每一條數據記錄入庫時,確定當前數據記錄的產生時間;
步驟s2:分別對以所述當前數據記錄的產生時間為基準的前一頻次周期和後一頻次周期內的數據記錄數進行更新。
在本實施例中,以資料庫作為存儲介質以統計用戶對業務系統或網站的訪問記錄數。
與現有技術不同,本發明實施例提供了一個頻次類實時統計模型。在該模型中,對需要統計的頻次周期設定一個向前計數欄位和一個向後計數欄位。其中,所述向前計數欄位用於保存當前數據記錄入庫時,該數據記錄的產生時間到向前推一個周期的時間分片內累計的數據記錄數。所述向後計數欄位用於保存當前數據記錄入庫時,該數據記錄的產生時間到向後推一個周期的時間分片內累計的數據記錄數。
如步驟s1所述,在每一條數據記錄入庫時,首先確定當前數據記錄的產生時間。需要說明的是,在實際應用中,當前數據記錄的產生時間與該當前數據記錄的入庫時間可能不同。如果數據記錄入庫存在延遲(例如數據記錄來源於第三方系統等),則當前數據記錄的產生時間是要早於該當前數據記錄的入庫時間。如果數據記錄在產生的同時入庫,則當前數據記錄的產生時間是該當前數據記錄的入庫時間。
如步驟s2所述,針對當前入庫的該條數據記錄,分別對以所述當前數據記錄的產生時間為基準的前一頻次周期和後一頻次周期內的數據記錄數進行更新。
具體來說,頻次周期可以根據不同的應用場景設定不同的周期時長,例如1分鐘、1個小時等。在本實施例中,針對各個時間基準的前後兩個頻次周期的時長都相等。
例如,當前數據記錄的產生時間為12:10:02,頻次周期為1分鐘,則該當前數據記錄的前一頻次周期為12:09:02-12:10:02,該當前數據記錄的後一頻次周期為12:10:02-12:11:02。
在當前數據記錄入庫時,將以所述當前數據記錄的產生時間為基準的前一頻次周期內的數據記錄數加1,即在頻次類實時統計模型中的當前數據記錄的產生時間為基準的向前計數欄位內的數據記錄數加1。其中,該向前計數欄位的初始值為前一個周期內的記錄數。同時,將以所述當前數據記錄的產生時間為基準的後一頻次周期內的數據記錄數加1,即在頻次類實時統計模型中的當前數據記錄的產生時間為基準的向後計數欄位內的數據記錄數加1。其中,該向後計數欄位的初始值為後一個周期內的記錄數。
在本實施例中,由於在每一條數據記錄入庫時,同步更新以該條數據記錄的產生時間為基準的向前頻次周期和向後頻次周期內的數據記錄數,從而可以解決存在跨周期超閥值的統計盲點問題。進一步,由於是以數據記錄的產生時間為基準對前後兩個頻次周期內的數據記錄數進行更新,因此對於延遲入庫的數據記錄,也不會出現遺漏統計的情況。
進一步,在本實施例中,數據記錄處理方法還包括如下步驟:
在查詢超閾值的頻次計數時,遍歷各個以當前數據記錄的產生時間為基準的前一頻次周期和後一頻次周期內的數據記錄數;
篩選出大於所述閾值的數據記錄數所在的頻次周期及其對應的當前數據記錄的產生時間,以確定頻次計數超閾值的時間段。
具體來說,在需要進行超閥值統計時,只需要對頻次類實時統計模型中各個頻次周期的向前計數欄位和向後計數欄位進行查詢,過濾出超過閥值的數據記錄數。在篩選出的這些數據記錄數中,若是一個頻次周期的向前計數欄位超閥值,說明是從該頻次周期對應的當前數據記錄的產生時間到向前一個周期時間內,操作頻次超閥值;若是一個頻次周期的向後計數欄位超閥值,說明是從該頻次周期對應的當前數據記錄的產生時間到向後一個周期時間內,操作頻次超閥值。
綜上所述,本技術方案解決了現有技術中對用戶訪問和操作日誌的統計方法會有延遲較大,且存在統計遺漏等問題。
以上詳細描述了本發明的較佳具體實施例。應當理解,本領域的普通技術無需創造性勞動就可以根據本發明的構思作出諸多修改和變化。因此,凡本技術領域中技術人員依本發明的構思在現有技術的基礎上通過邏輯分析、推理或者有限的試驗可以得到的技術方案,皆應在由權利要求書所確定的保護範圍內。