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