亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

報(bào)表的統(tǒng)計(jì)方法和裝置制造方法

文檔序號(hào):6628917閱讀:146來源:國知局
報(bào)表的統(tǒng)計(jì)方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種報(bào)表的統(tǒng)計(jì)方法和裝置。其中,該報(bào)表的統(tǒng)計(jì)方法包括:獲取目標(biāo)報(bào)表,目標(biāo)報(bào)表為待統(tǒng)計(jì)的報(bào)表;根據(jù)目標(biāo)報(bào)表確定目標(biāo)報(bào)表的字段信息;獲取已經(jīng)完成寫入操作的第一鏡像表,第一鏡像表包括一個(gè)或者多個(gè),每個(gè)第一鏡像表用于存儲(chǔ)一個(gè)第一預(yù)設(shè)時(shí)間段內(nèi)目標(biāo)報(bào)表的字段信息對(duì)應(yīng)的日志信息;以及根據(jù)第一鏡像表對(duì)目標(biāo)報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處理,得到報(bào)表統(tǒng)計(jì)結(jié)果。通過本發(fā)明,解決了相關(guān)技術(shù)中在報(bào)表統(tǒng)計(jì)時(shí),報(bào)表系統(tǒng)產(chǎn)生報(bào)表的效率低的問題。
【專利說明】報(bào)表的統(tǒng)計(jì)方法和裝置

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,具體而言,涉及一種報(bào)表的統(tǒng)計(jì)方法和裝置。

【背景技術(shù)】
[0002] 報(bào)表可以用于對(duì)事件進(jìn)行初步統(tǒng)計(jì),能夠形象、直觀地展現(xiàn)事件的相關(guān)信息。例 如,在日常工作中,通過日?qǐng)?bào)表、周報(bào)表、月報(bào)表可以將工作內(nèi)容匯報(bào)給相關(guān)部門。
[0003] 目前,產(chǎn)生報(bào)表的系統(tǒng)主要有兩種:1)純實(shí)時(shí)性報(bào)表系統(tǒng),使用該種報(bào)表系統(tǒng),用 戶可以隨時(shí)進(jìn)行報(bào)表統(tǒng)計(jì)。純實(shí)時(shí)性報(bào)表系統(tǒng)設(shè)計(jì)簡單,用于小數(shù)據(jù)統(tǒng)計(jì)時(shí)效率高;而用于 大數(shù)據(jù)統(tǒng)計(jì)時(shí),由于用戶的請(qǐng)求需要等待很長時(shí)間才能得到響應(yīng)結(jié)果,因此效率差。然而, 隨著網(wǎng)絡(luò)的發(fā)展,海量日志信息成為必然趨勢(shì)。2)按照預(yù)定跳時(shí)間進(jìn)行統(tǒng)計(jì)的報(bào)表系統(tǒng),使 用該種報(bào)表系統(tǒng),用戶可以每隔預(yù)定跳時(shí)間進(jìn)行報(bào)表統(tǒng)計(jì)。比如,每隔5分鐘啟動(dòng)一次統(tǒng)計(jì) 線程,對(duì)最近5分鐘內(nèi)的日志進(jìn)行統(tǒng)計(jì),并保存中間統(tǒng)計(jì)結(jié)果,這樣,當(dāng)客戶需要生成報(bào)表 時(shí),可以根據(jù)這些中間統(tǒng)計(jì)結(jié)果來生成。該種報(bào)表系統(tǒng)由于復(fù)用了中間統(tǒng)計(jì)結(jié)果,無需每次 請(qǐng)求都進(jìn)行報(bào)表統(tǒng)計(jì),因此2)報(bào)表系統(tǒng)要優(yōu)于1)報(bào)表系統(tǒng),其產(chǎn)生報(bào)表的效率也遠(yuǎn)遠(yuǎn)超過 1)報(bào)表系統(tǒng)產(chǎn)生報(bào)表的效率,但是這種報(bào)表系統(tǒng)也存在問題:
[0004] (1)日志數(shù)據(jù)一般都保存在含有大量數(shù)據(jù)的數(shù)據(jù)表中,如果每隔預(yù)定跳時(shí)間進(jìn)行 報(bào)表統(tǒng)計(jì),從數(shù)據(jù)表中查找到該預(yù)定跳時(shí)間內(nèi)的數(shù)據(jù)需要大量的時(shí)間,效率低。
[0005] (2)統(tǒng)計(jì)線程對(duì)數(shù)據(jù)表進(jìn)行每隔預(yù)定跳時(shí)間的報(bào)表統(tǒng)計(jì)時(shí),入庫線程也不斷往該 數(shù)據(jù)表中寫入數(shù)據(jù),這樣,統(tǒng)計(jì)線程會(huì)跟入庫線程爭(zhēng)用該數(shù)據(jù)表,不僅降低了數(shù)據(jù)的入庫效 率,而且還降低了報(bào)表的統(tǒng)計(jì)效率。
[0006] (3)原始的數(shù)據(jù)表中保存有大量的數(shù)據(jù)信息,而對(duì)報(bào)表而言,很多信息是不需要 的,因此,直接使用原始的數(shù)據(jù)表進(jìn)行報(bào)表統(tǒng)計(jì),大量的噪聲數(shù)據(jù)會(huì)導(dǎo)致統(tǒng)計(jì)效率降低。
[0007] 針對(duì)相關(guān)技術(shù)中在報(bào)表統(tǒng)計(jì)時(shí),報(bào)表系統(tǒng)產(chǎn)生報(bào)表的效率低的問題,目前尚未提 出有效的解決方案。


【發(fā)明內(nèi)容】

[0008] 本發(fā)明的主要目的在于提供一種報(bào)表的統(tǒng)計(jì)方法和裝置,以解決在報(bào)表統(tǒng)計(jì)時(shí), 報(bào)表系統(tǒng)產(chǎn)生報(bào)表的效率低的問題。
[0009] 為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種報(bào)表的統(tǒng)計(jì)方法。該方法 包括:獲取目標(biāo)報(bào)表,所述目標(biāo)報(bào)表為待統(tǒng)計(jì)的報(bào)表;根據(jù)所述目標(biāo)報(bào)表確定所述目標(biāo)報(bào) 表的字段信息;獲取已經(jīng)完成寫入操作的第一鏡像表,所述第一鏡像表包括一個(gè)或者多個(gè), 每個(gè)所述第一鏡像表用于存儲(chǔ)一個(gè)第一預(yù)設(shè)時(shí)間段內(nèi)所述目標(biāo)報(bào)表的所述字段信息對(duì)應(yīng) 的日志信息;以及根據(jù)所述第一鏡像表對(duì)所述目標(biāo)報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處理,得到報(bào)表統(tǒng)計(jì) 結(jié)果。
[0010] 進(jìn)一步地,根據(jù)所述目標(biāo)報(bào)表確定所述目標(biāo)報(bào)表的字段信息之后,所述統(tǒng)計(jì)方法 還包括:根據(jù)所述字段信息創(chuàng)建第二鏡像表,所述第二鏡像表用于存儲(chǔ)第二預(yù)設(shè)時(shí)間段內(nèi) 所述目標(biāo)報(bào)表的所述字段信息對(duì)應(yīng)的日志信息,所述第二預(yù)設(shè)時(shí)間段以當(dāng)前時(shí)刻為起點(diǎn), 且與所述第一預(yù)設(shè)時(shí)間段不重疊;在所述第二預(yù)設(shè)時(shí)間段內(nèi),獲取所述字段信息對(duì)應(yīng)的日 志信息;以及將所述字段信息對(duì)應(yīng)的日志信息寫入所述第二鏡像表中。
[0011] 進(jìn)一步地,所述目標(biāo)報(bào)表存儲(chǔ)在報(bào)表庫中,所述字段信息對(duì)應(yīng)的字段存儲(chǔ)在字段 庫中,在根據(jù)所述字段信息創(chuàng)建第二鏡像表之前,所述統(tǒng)計(jì)方法還包括:更新所述報(bào)表庫和 所述目標(biāo)報(bào)表;以及更新所述字段庫和所述字段信息,其中,根據(jù)更新后的字段信息創(chuàng)建所 述第二鏡像表。
[0012] 進(jìn)一步地,所述第一預(yù)設(shè)時(shí)間段包括多個(gè),在更新所述報(bào)表庫和所述目標(biāo)報(bào)表之 后,所述統(tǒng)計(jì)方法還包括:將更新后的報(bào)表庫存儲(chǔ)至屬性文件中,在更新所述字段庫和所述 字段信息之后,所述統(tǒng)計(jì)方法還包括:將更新后的字段庫存儲(chǔ)至所述屬性文件中。
[0013] 進(jìn)一步地,根據(jù)所述第一鏡像表對(duì)所述目標(biāo)報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處理,得到報(bào)表統(tǒng) 計(jì)結(jié)果包括:根據(jù)所述第一鏡像表確定與所述第一鏡像表相對(duì)應(yīng)的報(bào)表,所述與所述第一 鏡像表相對(duì)應(yīng)的報(bào)表為所述目標(biāo)報(bào)表;以及對(duì)所述與所述第一鏡像表相對(duì)應(yīng)的報(bào)表執(zhí)行報(bào) 表統(tǒng)計(jì)處理,得到報(bào)表統(tǒng)計(jì)結(jié)果。
[0014] 為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種報(bào)表的統(tǒng)計(jì)裝置。該裝置 包括:第一獲取單元,用于獲取目標(biāo)報(bào)表,所述目標(biāo)報(bào)表為待統(tǒng)計(jì)的報(bào)表;確定單元,用于 根據(jù)所述目標(biāo)報(bào)表確定所述目標(biāo)報(bào)表的字段信息;第二獲取單元,用于獲取已經(jīng)完成寫入 操作的第一鏡像表,所述第一鏡像表包括一個(gè)或者多個(gè),每個(gè)所述第一鏡像表用于存儲(chǔ)一 個(gè)第一預(yù)設(shè)時(shí)間段內(nèi)所述目標(biāo)報(bào)表的所述字段信息對(duì)應(yīng)的日志信息;以及執(zhí)行單元,用于 根據(jù)所述第一鏡像表對(duì)所述目標(biāo)報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處理,得到報(bào)表統(tǒng)計(jì)結(jié)果。
[0015] 進(jìn)一步地,所述的報(bào)表的統(tǒng)計(jì)裝置還包括:創(chuàng)建單元,用于根據(jù)所述目標(biāo)報(bào)表確定 所述目標(biāo)報(bào)表的字段信息之后,根據(jù)所述字段信息創(chuàng)建第二鏡像表,所述第二鏡像表用于 存儲(chǔ)第二預(yù)設(shè)時(shí)間段內(nèi)所述目標(biāo)報(bào)表的所述字段信息對(duì)應(yīng)的日志信息,所述第二預(yù)設(shè)時(shí)間 段以當(dāng)前時(shí)刻為起點(diǎn),且與所述第一預(yù)設(shè)時(shí)間段不重疊;第三獲取單元,用于在所述第二預(yù) 設(shè)時(shí)間段內(nèi),獲取所述字段信息對(duì)應(yīng)的日志信息;以及寫入單元,用于將所述字段信息對(duì)應(yīng) 的日志信息寫入所述第二鏡像表中。
[0016] 進(jìn)一步地,所述目標(biāo)報(bào)表存儲(chǔ)在報(bào)表庫中,所述字段信息對(duì)應(yīng)的字段存儲(chǔ)在字段 庫中,所述統(tǒng)計(jì)裝置還包括:第一更新單元,用于在根據(jù)所述字段信息創(chuàng)建第二鏡像表之 前,更新所述報(bào)表庫和所述目標(biāo)報(bào)表;以及第二更新單元,用于更新所述字段庫和所述字段 信息,其中,所述創(chuàng)建單元還用于根據(jù)更新后的字段信息創(chuàng)建所述第二鏡像表。
[0017] 進(jìn)一步地,所述第一預(yù)設(shè)時(shí)間段包括多個(gè),所述統(tǒng)計(jì)裝置還包括:第一存儲(chǔ)單元, 用于在更新所述報(bào)表庫和所述目標(biāo)報(bào)表之后,將更新后的報(bào)表庫存儲(chǔ)至屬性文件中;以及 第二存儲(chǔ)單元,用于在更新所述字段庫和所述字段信息之后,將更新后的字段庫存儲(chǔ)至所 述屬性文件中。
[0018] 進(jìn)一步地,所述執(zhí)行單元包括:確定模塊,用于根據(jù)所述第一鏡像表確定與所述第 一鏡像表相對(duì)應(yīng)的報(bào)表,所述與所述第一鏡像表相對(duì)應(yīng)的報(bào)表為所述目標(biāo)報(bào)表;以及執(zhí)行 模塊,用于對(duì)所述與所述第一鏡像表相對(duì)應(yīng)的報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處理,得到報(bào)表統(tǒng)計(jì)結(jié)果。
[0019] 通過本發(fā)明,采用獲取目標(biāo)報(bào)表,目標(biāo)報(bào)表為待統(tǒng)計(jì)的報(bào)表;根據(jù)目標(biāo)報(bào)表確定目 標(biāo)報(bào)表的字段信息;獲取已經(jīng)完成寫入操作的第一鏡像表,第一鏡像表包括一個(gè)或者多個(gè), 每個(gè)第一鏡像表用于存儲(chǔ)一個(gè)第一預(yù)設(shè)時(shí)間段內(nèi)目標(biāo)報(bào)表的字段信息對(duì)應(yīng)的日志信息;以 及根據(jù)第一鏡像表對(duì)目標(biāo)報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處理,得到報(bào)表統(tǒng)計(jì)結(jié)果,解決了在報(bào)表統(tǒng)計(jì) 時(shí),報(bào)表系統(tǒng)產(chǎn)生報(bào)表的效率低的問題,進(jìn)而達(dá)到了提高報(bào)表的產(chǎn)生效率的效果。

【專利附圖】

【附圖說明】
[0020] 構(gòu)成本申請(qǐng)的一部分的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí) 施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0021] 圖1是根據(jù)本發(fā)明實(shí)施例的報(bào)表的統(tǒng)計(jì)方法的流程圖;
[0022] 圖2是根據(jù)本發(fā)明實(shí)施例的基于鏡像表的報(bào)表系統(tǒng)的拓?fù)鋱D;以及
[0023] 圖3是根據(jù)本發(fā)明實(shí)施例的報(bào)表的統(tǒng)計(jì)裝置的示意圖。

【具體實(shí)施方式】
[0024] 需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相 互組合。下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。
[0025] 為了使本領(lǐng)域的技術(shù)人員更好的理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的 附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是 本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,在本領(lǐng)域普通技 術(shù)人員沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明的保護(hù)范 圍。
[0026] 需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語"第一"、"第 二"等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用 的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或 描述的那些以外的順序?qū)嵤?。此外,術(shù)語"包括"和"具有"以及他們的任何變形,意圖在于 覆蓋不排他的包含。
[0027] 根據(jù)本發(fā)明的實(shí)施例,提供了一種報(bào)表的統(tǒng)計(jì)裝置,該報(bào)表的統(tǒng)計(jì)裝置用于先將 報(bào)表按照預(yù)設(shè)時(shí)間間隔(即,預(yù)設(shè)時(shí)間段)通過入庫線程入庫至鏡像表中,再對(duì)每個(gè)已經(jīng)完 成寫入操作的鏡像表對(duì)應(yīng)的報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處理,以避免入庫線程爭(zhēng)用緩存線程所使用 的報(bào)表數(shù)據(jù)表。
[0028] 圖1是根據(jù)本發(fā)明實(shí)施例的報(bào)表的統(tǒng)計(jì)方法的流程圖。如圖1所示,該方法包括 如下的步驟S102至步驟S108 :
[0029] 步驟S102,獲取目標(biāo)報(bào)表,目標(biāo)報(bào)表為待統(tǒng)計(jì)的報(bào)表。
[0030] 具體地,在報(bào)表統(tǒng)計(jì)線程中,可以通過查找存儲(chǔ)報(bào)表的報(bào)表庫來獲取目標(biāo)報(bào)表。優(yōu) 選地,在查找報(bào)表庫中的目標(biāo)報(bào)表時(shí),可以檢測(cè)查找到的準(zhǔn)目標(biāo)報(bào)表是否為正在啟用的報(bào) 表。如果檢測(cè)出查找到的準(zhǔn)目標(biāo)報(bào)表為正在啟用的報(bào)表,則獲取該準(zhǔn)目標(biāo)報(bào)表,并將其作為 目標(biāo)報(bào)表;如果檢測(cè)出查找到的準(zhǔn)目標(biāo)報(bào)表為未啟用的報(bào)表,則不獲取該準(zhǔn)目標(biāo)報(bào)表。這 樣,可以濾除冗余的目標(biāo)報(bào)表,提高目標(biāo)報(bào)表的統(tǒng)計(jì)效率。
[0031] 需要說明的是,目標(biāo)報(bào)表可以用于存儲(chǔ)日志等的相關(guān)信息。具體地,目標(biāo)報(bào)表可以 通過字段記錄日志等的相關(guān)信息。其中,每個(gè)目標(biāo)報(bào)表可以具有一個(gè)或者多個(gè)字段,不同的 字段可以對(duì)應(yīng)不同的日志等的相關(guān)信息。進(jìn)一步地,字段可以存儲(chǔ)在字段庫中,字段庫中的 所有字段均為不重復(fù)的字段。這樣,可以節(jié)約字段庫資源,防止字段重復(fù)存儲(chǔ)導(dǎo)致字段庫資 源匱乏。
[0032] 步驟S104,根據(jù)目標(biāo)報(bào)表確定目標(biāo)報(bào)表的字段信息。
[0033] 具體地,首先,可以通過解析目標(biāo)報(bào)表,得到解析結(jié)果,并從解析結(jié)果中獲取該目 標(biāo)報(bào)表的所有的字段,然后,針對(duì)每個(gè)字段查找字段庫,得到每個(gè)字段所對(duì)應(yīng)的字段信息。
[0034] 步驟S106,獲取已經(jīng)完成寫入操作的第一鏡像表。
[0035] 需要說明的是,第一鏡像表可以包括一個(gè)或者多個(gè),每個(gè)第一鏡像表都可以用于 存儲(chǔ)一個(gè)第一預(yù)設(shè)時(shí)間段內(nèi)目標(biāo)報(bào)表的字段信息對(duì)應(yīng)的日志信息。任意兩個(gè)第一鏡像表所 對(duì)應(yīng)的第一預(yù)設(shè)時(shí)間段各不相同。也即,在入庫線程中,每隔一個(gè)第一預(yù)設(shè)時(shí)間段,可以創(chuàng) 建一個(gè)第一鏡像表,并且每個(gè)第一鏡像表可以用于存儲(chǔ)與之相對(duì)應(yīng)的第一預(yù)設(shè)時(shí)間段內(nèi)的 日志等的相關(guān)信息。
[0036] 例如,假設(shè)第一預(yù)設(shè)時(shí)間段的時(shí)長為5分鐘,在入庫線程中,可以每隔5分鐘創(chuàng)建 一個(gè)第一鏡像表,并將與該5分鐘對(duì)應(yīng)的報(bào)表入庫至這個(gè)第一鏡像表中。
[0037] 步驟S108,根據(jù)第一鏡像表對(duì)目標(biāo)報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處理,得到報(bào)表統(tǒng)計(jì)結(jié)果。
[0038] 具體地,可以根據(jù)第一鏡像表對(duì)應(yīng)的報(bào)表庫中的所有的目標(biāo)報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處 理,得到報(bào)表統(tǒng)計(jì)結(jié)果(即,中間統(tǒng)計(jì)結(jié)果)。優(yōu)選地,在得到報(bào)表統(tǒng)計(jì)結(jié)果之后,可以將其 存儲(chǔ)至報(bào)表數(shù)據(jù)表中,這樣,數(shù)據(jù)表中的報(bào)表統(tǒng)計(jì)結(jié)果可以在下次報(bào)表統(tǒng)計(jì)時(shí)被復(fù)用,達(dá)到 提高報(bào)表統(tǒng)計(jì)效率的效果。
[0039] 通過本發(fā)明,采用獲取目標(biāo)報(bào)表,目標(biāo)報(bào)表為待統(tǒng)計(jì)的報(bào)表;根據(jù)目標(biāo)報(bào)表確定目 標(biāo)報(bào)表的字段信息;獲取已經(jīng)完成寫入操作的第一鏡像表,第一鏡像表包括一個(gè)或者多個(gè), 每個(gè)第一鏡像表用于存儲(chǔ)一個(gè)第一預(yù)設(shè)時(shí)間段內(nèi)目標(biāo)報(bào)表的字段信息對(duì)應(yīng)的日志信息;以 及根據(jù)第一鏡像表對(duì)目標(biāo)報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處理,得到報(bào)表統(tǒng)計(jì)結(jié)果,解決了在報(bào)表統(tǒng)計(jì) 時(shí),報(bào)表系統(tǒng)產(chǎn)生報(bào)表的效率低的問題,進(jìn)而達(dá)到了提高報(bào)表的產(chǎn)生效率的效果。
[0040] 優(yōu)選地,在本發(fā)明實(shí)施例中,根據(jù)目標(biāo)報(bào)表確定目標(biāo)報(bào)表的字段信息之后,該統(tǒng)計(jì) 方法還可以包括:
[0041] S2,根據(jù)字段信息創(chuàng)建第二鏡像表,第二鏡像表用于存儲(chǔ)第二預(yù)設(shè)時(shí)間段內(nèi)目標(biāo) 報(bào)表的字段信息對(duì)應(yīng)的日志信息,第二預(yù)設(shè)時(shí)間段以當(dāng)前時(shí)刻為起點(diǎn),且與第一預(yù)設(shè)時(shí)間 段不重疊。
[0042] 需要說明的是,第一鏡像表與第二鏡像表為同一類型的鏡像表,第一預(yù)設(shè)時(shí)間段 與第二預(yù)設(shè)時(shí)間段可以為時(shí)間長度相等的時(shí)間段,但是兩個(gè)時(shí)間段的起點(diǎn)時(shí)刻不同,且兩 個(gè)時(shí)間段內(nèi)的時(shí)間不重合。第一鏡像表用于存儲(chǔ)在第一時(shí)間段內(nèi)入庫的日志報(bào)表,第二鏡 像表用于存儲(chǔ)在第二時(shí)間段內(nèi)入庫的日志報(bào)表。
[0043] S4,在第二預(yù)設(shè)時(shí)間段內(nèi),獲取字段信息對(duì)應(yīng)的日志信息。
[0044] S6,將字段信息對(duì)應(yīng)的日志信息寫入第二鏡像表中。
[0045] 其中,第二預(yù)設(shè)時(shí)間段為入庫線程時(shí)間段。在入庫線程之前,報(bào)表系統(tǒng)可以執(zhí)行 緩存線程。在緩存線程中,可以每隔一個(gè)預(yù)設(shè)時(shí)間段(如,第一預(yù)設(shè)時(shí)間段,或者第二預(yù)設(shè) 時(shí)間段)獲取一次當(dāng)前時(shí)間啟用的所有報(bào)表及這些報(bào)表所對(duì)應(yīng)的所有字段,并根據(jù)這些字 段從網(wǎng)絡(luò)設(shè)備中讀取日志信息。例如,可以每5分鐘獲取一次當(dāng)前時(shí)刻正在啟用的所有報(bào) 表及其對(duì)應(yīng)的所有字段。之后,根據(jù)獲取的報(bào)表及其對(duì)應(yīng)的字段將日志緩存至緩存文件中, 進(jìn)一步地,可以將該緩存文件存儲(chǔ)至緩存文件夾中。至此,報(bào)表系統(tǒng)由緩存線程進(jìn)入入庫線 程,并將前述的緩存文件和緩存文件夾提交至入庫線程已將緩存文件中的日志信息入庫, 也即,將緩存文件中的日志信息寫入第二鏡像表中。
[0046]通過本發(fā)明實(shí)施例,由于第二鏡像表為正在進(jìn)行寫入操作的鏡像表,而第一鏡像 表為已經(jīng)完成寫入操作的鏡像表,也即,米用對(duì)報(bào)表系統(tǒng)中的日志信息實(shí)行分表存儲(chǔ)的方 式,按照第二預(yù)設(shè)時(shí)間段、第一預(yù)設(shè)時(shí)間段等進(jìn)行存儲(chǔ),每個(gè)鏡像表用于存儲(chǔ)一個(gè)時(shí)間長度 (如,心跳時(shí)間長度)的日志信息。這樣,避免了日志數(shù)據(jù)爭(zhēng)用同一個(gè)數(shù)據(jù)表(如,第一鏡像 表或第二鏡像表),并且無需對(duì)數(shù)據(jù)表進(jìn)行鎖表處理。由于鏡像表中的日志信息是該鏡像表 對(duì)應(yīng)的預(yù)設(shè)時(shí)間段內(nèi)的所有日志信息,因此,統(tǒng)計(jì)線程每次對(duì)該鏡像表進(jìn)行報(bào)表統(tǒng)計(jì)時(shí),無 需查找整個(gè)大的數(shù)據(jù)表就可以直接進(jìn)行報(bào)表統(tǒng)計(jì)了,提高了報(bào)表統(tǒng)計(jì)的效率。
[0047]優(yōu)選地,在本發(fā)明實(shí)施例中,目標(biāo)報(bào)表存儲(chǔ)在報(bào)表庫中,字段信息對(duì)應(yīng)的字段存儲(chǔ) 在字段庫中,在根據(jù)字段信息創(chuàng)建第二鏡像表之前,該統(tǒng)計(jì)方法還可以包括:
[0048] S8,更新報(bào)表庫和目標(biāo)報(bào)表,得到更新后的報(bào)表庫和更新后的目標(biāo)報(bào)表。
[0049] S10,更新字段庫和字段信息,得到更新后的字段庫和更新后的字段信息。
[0050] 其中,根據(jù)更新后的字段信息創(chuàng)建第二鏡像表。
[0051] 由于用戶不僅可以選擇啟用或者禁用指定的報(bào)表,并且還可修改(如,添加、刪 除)報(bào)表,以及添加或者刪除報(bào)表中的字段信息,因此,采用更新報(bào)表庫和目標(biāo)報(bào)表以及字 段庫和字段信息,可以簡化報(bào)表系統(tǒng)中鏡像表的結(jié)構(gòu),并且只對(duì)用戶啟用的報(bào)表才獲取創(chuàng) 建這些報(bào)表的鏡像表所需要的字段,并使用這些字段動(dòng)態(tài)地創(chuàng)建鏡像表,摒除了海量冗余 信息,提高了檢索效率。實(shí)驗(yàn)表明,用戶啟用的報(bào)表所占用的字段數(shù)量最高僅占原始數(shù)據(jù)所 占用的字段數(shù)量的二分之一。
[0052] 優(yōu)選地,在本發(fā)明實(shí)施例中,第一預(yù)設(shè)時(shí)間段包括多個(gè),該統(tǒng)計(jì)方法還可以包括:
[0053] S12,在更新報(bào)表庫和目標(biāo)報(bào)表之后,將更新后的報(bào)表庫存儲(chǔ)至屬性文件中。
[0054] S14,在更新字段庫和字段信息之后,將更新后的字段庫存儲(chǔ)至屬性文件中。
[0055] 在報(bào)表系統(tǒng)啟動(dòng)時(shí),可以對(duì)報(bào)表庫和字段庫進(jìn)行初始化,如,先讀取當(dāng)前用戶啟用 的報(bào)表,存入報(bào)表庫中,在根據(jù)每個(gè)啟用的報(bào)表,獲取每個(gè)報(bào)表所對(duì)應(yīng)的全部字段,并將這 些字段存入字段庫中。
[0056] 通過本發(fā)明實(shí)施例,將更新后的報(bào)表庫和字段庫存儲(chǔ)至屬性文件中,可以防止斷 電后且報(bào)表系統(tǒng)再次啟用時(shí)無法恢復(fù)該報(bào)表系統(tǒng)的緩存線程、入庫線程和報(bào)表統(tǒng)計(jì)線程。
[0057] 優(yōu)選地,在本發(fā)明實(shí)施例中,根據(jù)第一鏡像表對(duì)目標(biāo)報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處理,得到 報(bào)表統(tǒng)計(jì)結(jié)果可以包括:
[0058] S16,根據(jù)第一鏡像表確定與第一鏡像表相對(duì)應(yīng)的報(bào)表,與第一鏡像表相對(duì)應(yīng)的報(bào) 表為目標(biāo)報(bào)表。
[0059] S18,對(duì)與第一鏡像表相對(duì)應(yīng)的報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處理,得到報(bào)表統(tǒng)計(jì)結(jié)果。
[0060] 具體地,可以根據(jù)第一鏡像表確定與第一鏡像表相對(duì)應(yīng)的所有的報(bào)表,并且與第 一鏡像表相對(duì)應(yīng)的所有的報(bào)表均為目標(biāo)報(bào)表,這樣,可以對(duì)前述的所有的報(bào)表中的每一報(bào) 表基于第一鏡像表執(zhí)行報(bào)表統(tǒng)計(jì)處理,得到每個(gè)報(bào)表統(tǒng)計(jì)結(jié)果。
[0061] 需要說明的是,在本發(fā)明實(shí)施例中,上述的報(bào)表統(tǒng)計(jì)處理需要在報(bào)表統(tǒng)計(jì)線程中 執(zhí)行。報(bào)表統(tǒng)計(jì)線程為定時(shí)線程,可以按照預(yù)設(shè)時(shí)間(如,心跳時(shí)間)進(jìn)行啟動(dòng)。啟動(dòng)之 后,可以讀取當(dāng)前所有的鏡像表,并按照表名進(jìn)行對(duì)所有的鏡像表進(jìn)行升序排列,并讀取當(dāng) 前正在執(zhí)行寫入操作的鏡像表(即,第二鏡像表),因?yàn)樗械溺R像表是按照升序進(jìn)行創(chuàng)建 和入庫的,所以所有的鏡像表的名字小于當(dāng)前正在進(jìn)行寫入操作的鏡像表的表名的,都是 已經(jīng)完成寫入操作的鏡像表(即,第一鏡像表),可以進(jìn)行報(bào)表統(tǒng)計(jì)了。
[0062] 優(yōu)選地,在報(bào)表統(tǒng)計(jì)線程中,可以按照鏡像表表名從小到大的順序統(tǒng)計(jì)報(bào)表。具體 地,可以獲取鏡像表對(duì)應(yīng)的報(bào)表庫,根據(jù)報(bào)表庫中每個(gè)報(bào)表各對(duì)鏡像表統(tǒng)計(jì)一次,在該鏡像 表對(duì)應(yīng)的所有報(bào)表都統(tǒng)計(jì)完成之后,可以刪除該鏡像表,然后對(duì)下一個(gè)鏡像表進(jìn)行報(bào)表統(tǒng) 計(jì),其報(bào)表統(tǒng)計(jì)過程與對(duì)前一個(gè)鏡像表的統(tǒng)計(jì)過程相同,再次不再贅述。
[0063] 需要說明的是,圖1所示的實(shí)施例描述的是報(bào)表系統(tǒng)中報(bào)表統(tǒng)計(jì)線程,另外,該報(bào) 表系統(tǒng)還可以包括緩存線程和入庫線程。并且在報(bào)表統(tǒng)計(jì)之前,需要依次經(jīng)過日志信息的 緩存線程、入庫線程和報(bào)表統(tǒng)計(jì)線程,以下參照?qǐng)D2對(duì)各個(gè)線程進(jìn)行詳細(xì)闡述:
[0064] 如圖2所示,報(bào)表所使用的日志數(shù)據(jù)來自網(wǎng)絡(luò)設(shè)備(如,日志服務(wù)器202),在接收 到日志服務(wù)器202的日志信息之后,解析服務(wù)器204用于對(duì)該日志信息進(jìn)行解析,得到解析 后的日志信息,其中,解析后的日志信息與報(bào)表以及報(bào)表的字段 對(duì)應(yīng)。
[0065] 具體地,在緩存線程(cache線程)中,可以每隔一個(gè)心跳時(shí)間(即,預(yù)設(shè)時(shí)間段, 如,N分鐘)去報(bào)表庫206讀取當(dāng)前所啟用的目標(biāo)報(bào)表,并去字段庫208中讀取當(dāng)前的目標(biāo) 報(bào)表所需要的全部字段,然后根據(jù)這些字段,將日志信息對(duì)應(yīng)的字段的源數(shù)據(jù)寫入到緩存 文件210 (cache文件)中。進(jìn)一步,可以將cache文件寫入cache文件夾212中,并將該 cache文件夾中的cache文件提交給入庫線程入庫。
[0066] 需要說明的是,報(bào)表庫206為動(dòng)態(tài)報(bào)表庫,字段庫208為動(dòng)態(tài)的字段庫,所謂動(dòng)態(tài) 是指用戶214可以所示啟用/禁用/修改/添加/刪除報(bào)表庫中的報(bào)表和字段庫中的字 段。優(yōu)選地,在讀取當(dāng)前所啟用的目標(biāo)報(bào)表及其所需要的全部字段之后,可以保存當(dāng)前所啟 用的所有的目標(biāo)報(bào)表與目標(biāo)報(bào)表對(duì)應(yīng)的全部字段,將其寫入對(duì)應(yīng)的屬性文件(properties 文件)中,這樣,在報(bào)表系統(tǒng)重啟時(shí),可以快速回復(fù)當(dāng)前的報(bào)表統(tǒng)計(jì)任務(wù)。具體地,在本功能 啟動(dòng)時(shí),首先會(huì)計(jì)算當(dāng)前心跳時(shí)間間隔,然后讀取該心跳時(shí)間間隔對(duì)應(yīng)的報(bào)表庫和字段庫, 將報(bào)表庫和字段庫存入properties文件。在報(bào)表系統(tǒng)啟動(dòng)時(shí),由動(dòng)態(tài)的報(bào)表庫和動(dòng)態(tài)的字 段庫程序來維護(hù)報(bào)表庫和字段庫,用戶可以啟用、禁用、添加、修改報(bào)表,這樣會(huì)導(dǎo)致報(bào)表庫 變化,進(jìn)而影響字段庫。入庫線程每隔心跳時(shí)間去讀取一次報(bào)表庫和字段庫來對(duì)應(yīng)當(dāng)前新 建的心跳時(shí)間的鏡像表,該心跳時(shí)間的鏡像表只用于存儲(chǔ)當(dāng)前心跳時(shí)間間隔的報(bào)表信息, 該鏡像表的結(jié)構(gòu)由當(dāng)前用戶啟用的報(bào)表所對(duì)應(yīng)的字段來動(dòng)態(tài)創(chuàng)建。因?yàn)槿霂炀€程每隔一個(gè) 心跳時(shí)間會(huì)獲取一次報(bào)表庫和字段庫,所以用戶的更新體現(xiàn)出來會(huì)最遲晚一個(gè)心跳時(shí)間。 [0067] 在入庫線程中,可以讀取properties文件,獲得當(dāng)前心跳時(shí)間所啟用的報(bào)表及其 對(duì)應(yīng)的字段,使用這些字段創(chuàng)建該心跳時(shí)間對(duì)應(yīng)的鏡像表216,并按照這些字段將緩存文件 210寫入鏡像表216中,然后將鏡像表216提交給報(bào)表統(tǒng)計(jì)線程。例如,在接收到日志信息 后,根據(jù)讀取的字段,將日志對(duì)象對(duì)應(yīng)的字段的源數(shù)據(jù)寫入到cache文件中,并提交給入庫 線程。報(bào)表統(tǒng)計(jì)線程可以每隔一個(gè)心跳時(shí)間啟動(dòng)一次。優(yōu)選地,可以根據(jù)日志信息的時(shí)間 來判斷該心跳時(shí)間間隔是否結(jié)束,結(jié)束則去讀取下一個(gè)心跳時(shí)間間隔對(duì)應(yīng)的報(bào)表庫和字段 庫。入庫線程根據(jù)當(dāng)前心跳時(shí)間間隔對(duì)應(yīng)的字段庫,動(dòng)態(tài)創(chuàng)建該心跳時(shí)間間隔的鏡像表,當(dāng) 該心跳時(shí)間間隔過去,將該鏡像表標(biāo)記為完成。
[0068] 在報(bào)表統(tǒng)計(jì)線程中,可以獲取所有的已經(jīng)入庫完畢的與每個(gè)心跳時(shí)間對(duì)應(yīng)的鏡像 表,并對(duì)每個(gè)這樣的鏡像表中的所有報(bào)表進(jìn)行報(bào)表統(tǒng)計(jì)。具體地,可以根據(jù)前述的所有報(bào)表 中的每一個(gè)報(bào)表對(duì)已經(jīng)入庫完畢的鏡像表進(jìn)行報(bào)表統(tǒng)計(jì),并將統(tǒng)計(jì)結(jié)果保存到每個(gè)報(bào)表對(duì) 應(yīng)的數(shù)據(jù)庫表中。優(yōu)選地,可以按照時(shí)間升序排列的方式對(duì)所有的鏡像表進(jìn)行排序,對(duì)最早 的、已經(jīng)標(biāo)記為完成的鏡像表按照每個(gè)報(bào)表進(jìn)行統(tǒng)計(jì),將統(tǒng)計(jì)結(jié)果寫入到報(bào)表對(duì)應(yīng)的數(shù)據(jù) 庫表中。
[0069] 需要說明的是,在創(chuàng)建cache文件時(shí),可以先將cache文件的名字命名為cache文 件名-鏡像表名,其中,鏡像表名為edcach e_時(shí)間毫秒,時(shí)間毫秒為遞增數(shù)據(jù),所以鏡像表 名也為遞增數(shù)據(jù),這樣,方便災(zāi)難恢復(fù)工作;再讀取報(bào)表的日志信息,判斷該日志信息是否 屬于當(dāng)前心跳時(shí)間間隔。如果屬于,則根據(jù)獲取的字段庫,動(dòng)態(tài)獲取當(dāng)前日志信息對(duì)應(yīng)的 字段數(shù)據(jù)(因?yàn)槿绻侄螏彀l(fā)生改變,字段數(shù)據(jù)也會(huì)改變,所以每個(gè)心跳時(shí)間間隔都去讀 取報(bào)表庫和字段庫),寫入到cache文件(cache文件大小為1秒鐘數(shù)據(jù)),完成后將cache 文件提交給入庫線程緩存隊(duì)列。而在讀取緩存隊(duì)列中的cache文件和對(duì)應(yīng)的鏡像表時(shí),如 果跟當(dāng)前鏡像表一樣,則入庫當(dāng)前鏡像表。如果不一樣,那么獲取該文件對(duì)應(yīng)鏡像表的字段 庫,建立新鏡像表,并將表名記錄下來。
[0070] 所謂災(zāi)難恢復(fù),是指在啟動(dòng)時(shí),獲得上次沒有入庫完畢的cache文件,寫入緩存隊(duì) 列中,根據(jù)cache文件的名字,獲取對(duì)應(yīng)的鏡像表名。在獲取到鏡像表名后,再讀取鏡像表 名對(duì)應(yīng)的報(bào)表庫和字段庫,并根據(jù)字段庫,動(dòng)態(tài)的創(chuàng)建鏡像表(因?yàn)槊總€(gè)心跳時(shí)間間隔都 會(huì)去重新取一次報(bào)表庫和字段庫,所以鏡像表的結(jié)構(gòu)也可能不同),并將鏡像表名記錄下 來,從而為后續(xù)的報(bào)表統(tǒng)計(jì)線程判斷哪些鏡像表為已經(jīng)完成的鏡像表保存依據(jù)。
[0071] 需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的 計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不 同于此處的順序執(zhí)行所示出或描述的步驟。
[0072] 根據(jù)本發(fā)明的實(shí)施例,提供了一種報(bào)表的統(tǒng)計(jì)裝置,該報(bào)表的統(tǒng)計(jì)裝置用于先將 報(bào)表按照預(yù)設(shè)時(shí)間間隔(即,預(yù)設(shè)時(shí)間段)通過入庫線程入庫至鏡像表中,再對(duì)每個(gè)已經(jīng)完 成寫入操作的鏡像表對(duì)應(yīng)的報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處理,以避免入庫線程爭(zhēng)用緩存線程所使用 的報(bào)表數(shù)據(jù)表。該報(bào)表的統(tǒng)計(jì)方法可以運(yùn)行在計(jì)算機(jī)處理設(shè)備上。需要說明的是,本發(fā)明 實(shí)施例所提供的報(bào)表的統(tǒng)計(jì)方法可以通過本發(fā)明實(shí)施例的報(bào)表的統(tǒng)計(jì)裝置來執(zhí)行,本發(fā)明 實(shí)施例的報(bào)表的統(tǒng)計(jì)裝置也可以用于執(zhí)行本發(fā)明實(shí)施例的報(bào)表的統(tǒng)計(jì)方法。
[0073] 圖3是根據(jù)本發(fā)明實(shí)施例的報(bào)表的統(tǒng)計(jì)裝置的示意圖。如圖3所示,該裝置包括: 第一獲取單元302、確定單元304、第二獲取單元306和執(zhí)行單元308。
[0074] 第一獲取單兀302用于獲取目標(biāo)報(bào)表,所述目標(biāo)報(bào)表為待統(tǒng)計(jì)的報(bào)表。
[0075] 具體地,在報(bào)表統(tǒng)計(jì)線程中,可以通過查找存儲(chǔ)報(bào)表的報(bào)表庫來獲取目標(biāo)報(bào)表。優(yōu) 選地,在查找報(bào)表庫中的目標(biāo)報(bào)表時(shí),可以檢測(cè)查找到的準(zhǔn)目標(biāo)報(bào)表是否為正在啟用的報(bào) 表。如果檢測(cè)出查找到的準(zhǔn)目標(biāo)報(bào)表為正在啟用的報(bào)表,則獲取該準(zhǔn)目標(biāo)報(bào)表,并將其作為 目標(biāo)報(bào)表;如果檢測(cè)出查找到的準(zhǔn)目標(biāo)報(bào)表為未啟用的報(bào)表,則不獲取該準(zhǔn)目標(biāo)報(bào)表。這 樣,可以濾除冗余的目標(biāo)報(bào)表,提高目標(biāo)報(bào)表的統(tǒng)計(jì)效率。
[0076] 需要說明的是,目標(biāo)報(bào)表可以用于存儲(chǔ)日志等的相關(guān)信息。具體地,目標(biāo)報(bào)表可以 通過字段記錄日志等的相關(guān)信息。其中,每個(gè)目標(biāo)報(bào)表可以具有一個(gè)或者多個(gè)字段,不同的 字段可以對(duì)應(yīng)不同的日志等的相關(guān)信息。進(jìn)一步地,字段可以存儲(chǔ)在字段庫中,字段庫中的 所有字段均為不重復(fù)的字段。這樣,可以節(jié)約字段庫資源,防止字段重復(fù)存儲(chǔ)導(dǎo)致字段庫資 源匱乏。
[0077] 確定單元304用于根據(jù)所述目標(biāo)報(bào)表確定所述目標(biāo)報(bào)表的字段信息。
[0078] 具體地,首先,可以通過解析目標(biāo)報(bào)表,得到解析結(jié)果,并從解析結(jié)果中獲取該目 標(biāo)報(bào)表的所有的字段,然后,針對(duì)每個(gè)字段查找字段庫,得到每個(gè)字段所對(duì)應(yīng)的字段信息。
[0079] 第二獲取單元306用于獲取已經(jīng)完成寫入操作的第一鏡像表,所述第一鏡像表包 括一個(gè)或者多個(gè),每個(gè)所述第一鏡像表用于存儲(chǔ)一個(gè)第一預(yù)設(shè)時(shí)間段內(nèi)所述目標(biāo)報(bào)表的所 述字段信息對(duì)應(yīng)的日志信息。
[0080] 需要說明的是,第一鏡像表可以包括一個(gè)或者多個(gè),每個(gè)第一鏡像表都可以用于 存儲(chǔ)一個(gè)第一預(yù)設(shè)時(shí)間段內(nèi)目標(biāo)報(bào)表的字段信息對(duì)應(yīng)的日志信息。任意兩個(gè)第一鏡像表所 對(duì)應(yīng)的第一預(yù)設(shè)時(shí)間段各不相同。也即,在入庫線程中,每隔一個(gè)第一預(yù)設(shè)時(shí)間段,可以創(chuàng) 建一個(gè)第一鏡像表,并且每個(gè)第一鏡像表可以用于存儲(chǔ)與之相對(duì)應(yīng)的第一預(yù)設(shè)時(shí)間段內(nèi)的 日志等的相關(guān)信息。
[0081] 例如,假設(shè)第一預(yù)設(shè)時(shí)間段的時(shí)長為5分鐘,在入庫線程中,可以每隔5分鐘創(chuàng)建 一個(gè)第一鏡像表,并將與該5分鐘對(duì)應(yīng)的報(bào)表入庫至這個(gè)第一鏡像表中。
[0082] 執(zhí)行單元308用于根據(jù)所述第一鏡像表對(duì)所述目標(biāo)報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處理,得到 報(bào)表統(tǒng)計(jì)結(jié)果。
[0083] 具體地,可以根據(jù)第一鏡像表對(duì)應(yīng)的報(bào)表庫中的所有的目標(biāo)報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處 理,得到報(bào)表統(tǒng)計(jì)結(jié)果(即,中間統(tǒng)計(jì)結(jié)果)。優(yōu)選地,在得到報(bào)表統(tǒng)計(jì)結(jié)果之后,可以將其 存儲(chǔ)至報(bào)表數(shù)據(jù)表中,這樣,數(shù)據(jù)表中的報(bào)表統(tǒng)計(jì)結(jié)果可以在下次報(bào)表統(tǒng)計(jì)時(shí)被復(fù)用,達(dá)到 提高報(bào)表統(tǒng)計(jì)效率的效果。
[0084]通過本發(fā)明,采用獲取目標(biāo)報(bào)表,目標(biāo)報(bào)表為待統(tǒng)計(jì)的報(bào)表;根據(jù)目標(biāo)報(bào)表確定目 標(biāo)報(bào)表的字段信息;獲取已經(jīng)完成寫入操作的第一鏡像表,第一鏡像表包括一個(gè)或者多個(gè), 每個(gè)第一鏡像表用于存儲(chǔ)一個(gè)第一預(yù)設(shè)時(shí)間段內(nèi)目標(biāo)報(bào)表的字段信息對(duì)應(yīng)的日志信息;以 及根據(jù)第一鏡像表對(duì)目標(biāo)報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處理,得到報(bào)表統(tǒng)計(jì)結(jié)果,解決了在報(bào)表統(tǒng)計(jì) 時(shí),報(bào)表系統(tǒng)產(chǎn)生報(bào)表的效率低的問題,進(jìn)而達(dá)到了提高報(bào)表的產(chǎn)生效率的效果。
[0085]優(yōu)選地,在本發(fā)明實(shí)施例中,該報(bào)表的統(tǒng)計(jì)裝置還可以包括:創(chuàng)建單元、第三獲取 單元和寫入單元。
[0086] 創(chuàng)建單元用于根據(jù)目標(biāo)報(bào)表確定目標(biāo)報(bào)表的字段信息之后,根據(jù)字段信息創(chuàng)建第 二鏡像表,第二鏡像表用于存儲(chǔ)第二預(yù)設(shè)時(shí)間段內(nèi)目標(biāo)報(bào)表的字段信息對(duì)應(yīng)的日志信息, 第二預(yù)設(shè)時(shí)間段以當(dāng)前時(shí)刻為起點(diǎn),且與第一預(yù)設(shè)時(shí)間段不重疊。需要說明的是,第一鏡像 表與第二鏡像表為同一類型的鏡像表,第一預(yù)設(shè)時(shí)間段與第二預(yù)設(shè)時(shí)間段可以為時(shí)間長度 相等的時(shí)間段,但是兩個(gè)時(shí)間段的起點(diǎn)時(shí)刻不同,且兩個(gè)時(shí)間段內(nèi)的時(shí)間不重合。第一鏡像 表用于存儲(chǔ)在第一時(shí)間段內(nèi)入庫的日志報(bào)表,第二鏡像表用于存儲(chǔ)在第二時(shí)間段內(nèi)入庫的 曰;艮表。
[0087]第三獲取單元用于在第二預(yù)設(shè)時(shí)間段內(nèi),獲取字段信息對(duì)應(yīng)的日志信息。寫入單 兀用于將字段信息對(duì)應(yīng)的日志信息寫入第二鏡像表中。
[0088] 其中,第二預(yù)設(shè)時(shí)間段為入庫線程時(shí)間段。在入庫線程之前,報(bào)表系統(tǒng)可以執(zhí)行 緩存線程。在緩存線程中,可以每隔一個(gè)預(yù)設(shè)時(shí)間段(如,第一預(yù)設(shè)時(shí)間段,或者第二預(yù)設(shè) 時(shí)間段)獲取一次當(dāng)前時(shí)間啟用的所有報(bào)表及這些報(bào)表所對(duì)應(yīng)的所有字段,并根據(jù)這些字 段從網(wǎng)絡(luò)設(shè)備中讀取日志信息。例如,可以每5分鐘獲取一次當(dāng)前時(shí)刻正在啟用的所有報(bào) 表及其對(duì)應(yīng)的所有字段。之后,根據(jù)獲取的報(bào)表及其對(duì)應(yīng)的字段將日志緩存至緩存文件中, 進(jìn)一步地,可以將該緩存文件存儲(chǔ)至緩存文件夾中。至此,報(bào)表系統(tǒng)由緩存線程進(jìn)入入庫線 程,并將前述的緩存文件和緩存文件夾提交至入庫線程已將緩存文件中的日志信息入庫, 也即,將緩存文件中的日志信息寫入第二鏡像表中。
[0089]通過本發(fā)明實(shí)施例,由于第二鏡像表為正在進(jìn)行寫入操作的鏡像表,而第一鏡像 表為已經(jīng)完成寫入操作的鏡像表,也即,米用對(duì)報(bào)表系統(tǒng)中的日志信息實(shí)行分表存儲(chǔ)的方 式,按照第二預(yù)設(shè)時(shí)間段、第一預(yù)設(shè)時(shí)間段等進(jìn)行存儲(chǔ),每個(gè)鏡像表用于存儲(chǔ)一個(gè)時(shí)間長度 (如,心跳時(shí)間長度)的日志信息。這樣,避免了日志數(shù)據(jù)爭(zhēng)用同一個(gè)數(shù)據(jù)表(如,第一鏡像 表或第二鏡像表),并且無需對(duì)數(shù)據(jù)表進(jìn)行鎖表處理。由于鏡像表中的日志信息是該鏡像表 對(duì)應(yīng)的預(yù)設(shè)時(shí)間段內(nèi)的所有日志信息,因此,統(tǒng)計(jì)線程每次對(duì)該鏡像表進(jìn)行報(bào)表統(tǒng)計(jì)時(shí),無 需查找整個(gè)大的數(shù)據(jù)表就可以直接進(jìn)行報(bào)表統(tǒng)計(jì)了,提高了報(bào)表統(tǒng)計(jì)的效率。
[0090] 優(yōu)選地,在本發(fā)明實(shí)施例中,目標(biāo)報(bào)表存儲(chǔ)在報(bào)表庫中,字段信息對(duì)應(yīng)的字段存儲(chǔ) 在字段庫中,該統(tǒng)計(jì)裝置還包括:第一更新單元和第二更新單元。第一更新單元用于在根據(jù) 字段信息創(chuàng)建第二鏡像表之前,更新報(bào)表庫和目標(biāo)報(bào)表。第二更新單元,用于更新字段庫和 字段信息,其中,創(chuàng)建單元還用于根據(jù)更新后的字段信息創(chuàng)建第二鏡像表。
[0091]由于用戶不僅可以選擇啟用或者禁用指定的報(bào)表,并且還可修改(如,添加、刪 除)報(bào)表,以及添加或者刪除報(bào)表中的字段信息,因此,采用更新報(bào)表庫和目標(biāo)報(bào)表以及字 段庫和字段信息,可以簡化報(bào)表系統(tǒng)中鏡像表的結(jié)構(gòu),并且只對(duì)用戶啟用的報(bào)表才獲取創(chuàng) 建這些報(bào)表的鏡像表所需要的字段,并使用這些字段動(dòng)態(tài)地創(chuàng)建鏡像表,摒除了海量冗余 信息,提高了檢索效率。實(shí)驗(yàn)表明,用戶啟用的報(bào)表所占用的字段數(shù)量最高僅占原始數(shù)據(jù)所 占用的字段數(shù)量的二分之一。
[0092] 優(yōu)選地,在本發(fā)明實(shí)施例中,第一預(yù)設(shè)時(shí)間段包括多個(gè),該統(tǒng)計(jì)裝置還可以包括: 第一存儲(chǔ)單元和第二存儲(chǔ)單元。第一存儲(chǔ)單元用于在更新報(bào)表庫和目標(biāo)報(bào)表之后,將更新 后的報(bào)表庫存儲(chǔ)至屬性文件中。第二存儲(chǔ)單元用于在更新字段庫和字段信息之后,將更新 后的字段庫存儲(chǔ)至屬性文件中。
[0093]在報(bào)表系統(tǒng)啟動(dòng)時(shí),可以對(duì)報(bào)表庫和字段庫進(jìn)行初始化,如,先讀取當(dāng)前用戶啟用 的報(bào)表,存入報(bào)表庫中,在根據(jù)每個(gè)啟用的報(bào)表,獲取每個(gè)報(bào)表所對(duì)應(yīng)的全部字段,并將這 些字段存入字段庫中。
[0094]通過本發(fā)明實(shí)施例,將更新后的報(bào)表庫和字段庫存儲(chǔ)至屬性文件中,可以防止斷 電后且報(bào)表系統(tǒng)再次啟用時(shí)無法恢復(fù)該報(bào)表系統(tǒng)的緩存線程、入庫線程和報(bào)表統(tǒng)計(jì)線程。 [0095]優(yōu)選地,在本發(fā)明實(shí)施例中,前述的執(zhí)行單元可以包括:確定模塊和執(zhí)行模塊。確 定模塊用于根據(jù)第一鏡像表確定與第一鏡像表相對(duì)應(yīng)的報(bào)表,與第一鏡像表相對(duì)應(yīng)的報(bào)表 為目標(biāo)報(bào)表。執(zhí)行模塊用于對(duì)與第一鏡像表相對(duì)應(yīng)的報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處理,得到報(bào)表統(tǒng) 計(jì)結(jié)果。
[0096]具體地,可以根據(jù)第一鏡像表確定與第一鏡像表相對(duì)應(yīng)的所有的報(bào)表,并且與第 一鏡像表相對(duì)應(yīng)的所有的報(bào)表均為目標(biāo)報(bào)表,這樣,可以對(duì)前述的所有的報(bào)表中的每一報(bào) 表基于第一鏡像表執(zhí)行報(bào)表統(tǒng)計(jì)處理,得到每個(gè)報(bào)表統(tǒng)計(jì)結(jié)果。
[0097] 需要說明的是,在本發(fā)明實(shí)施例中,上述的報(bào)表統(tǒng)計(jì)處理需要在報(bào)表統(tǒng)計(jì)線程中 執(zhí)行。報(bào)表統(tǒng)計(jì)線程為定時(shí)線程,可以按照預(yù)設(shè)時(shí)間(如,心跳時(shí)間)進(jìn)行啟動(dòng)。啟動(dòng)之 后,可以讀取當(dāng)前所有的鏡像表,并按照表名進(jìn)行對(duì)所有的鏡像表進(jìn)行升序排列,并讀取當(dāng) 前正在執(zhí)行寫入操作的鏡像表(即,第二鏡像表),因?yàn)樗械溺R像表是按照升序進(jìn)行創(chuàng)建 和入庫的,所以所有的鏡像表的名字小于當(dāng)前正在進(jìn)行寫入操作的鏡像表的表名的,都是 已經(jīng)完成寫入操作的鏡像表(即,第一鏡像表),可以進(jìn)行報(bào)表統(tǒng)計(jì)了。
[0098] 優(yōu)選地,在報(bào)表統(tǒng)計(jì)線程中,可以按照鏡像表表名從小到大的順序統(tǒng)計(jì)報(bào)表。具體 地,可以獲取鏡像表對(duì)應(yīng)的報(bào)表庫,根據(jù)報(bào)表庫中每個(gè)報(bào)表各對(duì)鏡像表統(tǒng)計(jì)一次,在該鏡像 表對(duì)應(yīng)的所有報(bào)表都統(tǒng)計(jì)完成之后,可以刪除該鏡像表,然后對(duì)下一個(gè)鏡像表進(jìn)行報(bào)表統(tǒng) 計(jì),其報(bào)表統(tǒng)計(jì)過程與對(duì)前一個(gè)鏡像表的統(tǒng)計(jì)過程相同,再次不再贅述。
[0099]另外,由于可以將報(bào)表系統(tǒng)模塊化,因此可以將報(bào)表系統(tǒng)從日志審計(jì)中分離出來 作為一個(gè)獨(dú)立的系統(tǒng),這樣,可以實(shí)現(xiàn)報(bào)表系統(tǒng)快捷地向分布式系統(tǒng)上遷移。隨著網(wǎng)絡(luò)的發(fā) 展,日后海量日志會(huì)成為常態(tài),而單機(jī)報(bào)表統(tǒng)計(jì)會(huì)越來越成為瓶頸,因此高效率的分布式報(bào) 表統(tǒng)計(jì)是未來發(fā)展的主流。
[0100] 需要說明的是,上述的報(bào)表的統(tǒng)計(jì)方法和裝置所涉及的應(yīng)用程序可以應(yīng)用在表1 所示的運(yùn)行環(huán)境中:
[0101] 表 1
[0102]
[0103]

【權(quán)利要求】
1. 一種報(bào)表的統(tǒng)計(jì)方法,其特征在于,包括: 獲取目標(biāo)報(bào)表,所述目標(biāo)報(bào)表為待統(tǒng)計(jì)的報(bào)表; 根據(jù)所述目標(biāo)報(bào)表確定所述目標(biāo)報(bào)表的字段信息; 獲取已經(jīng)完成寫入操作的第一鏡像表,所述第一鏡像表包括一個(gè)或者多個(gè),每個(gè)所述 第一鏡像表用于存儲(chǔ)一個(gè)第一預(yù)設(shè)時(shí)間段內(nèi)所述目標(biāo)報(bào)表的所述字段信息對(duì)應(yīng)的日志信 息;以及 根據(jù)所述第一鏡像表對(duì)所述目標(biāo)報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處理,得到報(bào)表統(tǒng)計(jì)結(jié)果。
2. 根據(jù)權(quán)利要求1所述的報(bào)表的統(tǒng)計(jì)方法,其特征在于,根據(jù)所述目標(biāo)報(bào)表確定所述 目標(biāo)報(bào)表的字段信息之后,所述統(tǒng)計(jì)方法還包括: 根據(jù)所述字段信息創(chuàng)建第二鏡像表,所述第二鏡像表用于存儲(chǔ)第二預(yù)設(shè)時(shí)間段內(nèi)所述 目標(biāo)報(bào)表的所述字段信息對(duì)應(yīng)的日志信息,所述第二預(yù)設(shè)時(shí)間段以當(dāng)前時(shí)刻為起點(diǎn),且與 所述第一預(yù)設(shè)時(shí)間段不重疊; 在所述第二預(yù)設(shè)時(shí)間段內(nèi),獲取所述字段信息對(duì)應(yīng)的日志信息;以及 將所述字段信息對(duì)應(yīng)的日志信息寫入所述第二鏡像表中。
3. 根據(jù)權(quán)利要求2所述的報(bào)表的統(tǒng)計(jì)方法,其特征在于,所述目標(biāo)報(bào)表存儲(chǔ)在報(bào)表庫 中,所述字段信息對(duì)應(yīng)的字段存儲(chǔ)在字段庫中,在根據(jù)所述字段信息創(chuàng)建第二鏡像表之前, 所述統(tǒng)計(jì)方法還包括: 更新所述報(bào)表庫和所述目標(biāo)報(bào)表;以及 更新所述字段庫和所述字段信息, 其中,根據(jù)更新后的字段信息創(chuàng)建所述第二鏡像表。
4. 根據(jù)權(quán)利要求3所述的報(bào)表的統(tǒng)計(jì)方法,其特征在于,所述第一預(yù)設(shè)時(shí)間段包括多 個(gè), 在更新所述報(bào)表庫和所述目標(biāo)報(bào)表之后,所述統(tǒng)計(jì)方法還包括:將更新后的報(bào)表庫存 儲(chǔ)至屬性文件中, 在更新所述字段庫和所述字段信息之后,所述統(tǒng)計(jì)方法還包括:將更新后的字段庫存 儲(chǔ)至所述屬性文件中。
5. 根據(jù)權(quán)利要求1所述的報(bào)表的統(tǒng)計(jì)方法,其特征在于,根據(jù)所述第一鏡像表對(duì)所述 目標(biāo)報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處理,得到報(bào)表統(tǒng)計(jì)結(jié)果包括: 根據(jù)所述第一鏡像表確定與所述第一鏡像表相對(duì)應(yīng)的報(bào)表,所述與所述第一鏡像表相 對(duì)應(yīng)的報(bào)表為所述目標(biāo)報(bào)表;以及 對(duì)所述與所述第一鏡像表相對(duì)應(yīng)的報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處理,得到報(bào)表統(tǒng)計(jì)結(jié)果。
6. -種報(bào)表的統(tǒng)計(jì)裝置,其特征在于,包括: 第一獲取單兀,用于獲取目標(biāo)報(bào)表,所述目標(biāo)報(bào)表為待統(tǒng)計(jì)的報(bào)表; 確定單元,用于根據(jù)所述目標(biāo)報(bào)表確定所述目標(biāo)報(bào)表的字段信息; 第二獲取單元,用于獲取已經(jīng)完成寫入操作的第一鏡像表,所述第一鏡像表包括一個(gè) 或者多個(gè),每個(gè)所述第一鏡像表用于存儲(chǔ)一個(gè)第一預(yù)設(shè)時(shí)間段內(nèi)所述目標(biāo)報(bào)表的所述字段 信息對(duì)應(yīng)的日志信息;以及 執(zhí)行單元,用于根據(jù)所述第一鏡像表對(duì)所述目標(biāo)報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處理,得到報(bào)表統(tǒng) 計(jì)結(jié)果。
7. 根據(jù)權(quán)利要求6所述的報(bào)表的統(tǒng)計(jì)裝置,其特征在于,還包括: 創(chuàng)建單元,用于根據(jù)所述目標(biāo)報(bào)表確定所述目標(biāo)報(bào)表的字段信息之后,根據(jù)所述字段 信息創(chuàng)建第二鏡像表,所述第二鏡像表用于存儲(chǔ)第二預(yù)設(shè)時(shí)間段內(nèi)所述目標(biāo)報(bào)表的所述字 段信息對(duì)應(yīng)的日志信息,所述第二預(yù)設(shè)時(shí)間段以當(dāng)前時(shí)刻為起點(diǎn),且與所述第一預(yù)設(shè)時(shí)間 段不重疊; 第三獲取單元,用于在所述第二預(yù)設(shè)時(shí)間段內(nèi),獲取所述字段信息對(duì)應(yīng)的日志信息;以 及 寫入單元,用于將所述字段信息對(duì)應(yīng)的日志信息寫入所述第二鏡像表中。
8. 根據(jù)權(quán)利要求7所述的報(bào)表的統(tǒng)計(jì)裝置,其特征在于,所述目標(biāo)報(bào)表存儲(chǔ)在報(bào)表庫 中,所述字段信息對(duì)應(yīng)的字段存儲(chǔ)在字段庫中,所述統(tǒng)計(jì)裝置還包括: 第一更新單元,用于在根據(jù)所述字段信息創(chuàng)建第二鏡像表之前,更新所述報(bào)表庫和所 述目標(biāo)報(bào)表;以及 第二更新單元,用于更新所述字段庫和所述字段信息, 其中,所述創(chuàng)建單元還用于根據(jù)更新后的字段信息創(chuàng)建所述第二鏡像表。
9. 根據(jù)權(quán)利要求8所述的報(bào)表的統(tǒng)計(jì)裝置,其特征在于,所述第一預(yù)設(shè)時(shí)間段包括多 個(gè),所述統(tǒng)計(jì)裝置還包括: 第一存儲(chǔ)單元,用于在更新所述報(bào)表庫和所述目標(biāo)報(bào)表之后,將更新后的報(bào)表庫存儲(chǔ) 至屬性文件中;以及 第二存儲(chǔ)單元,用于在更新所述字段庫和所述字段信息之后,將更新后的字段庫存儲(chǔ) 至所述屬性文件中。
10. 根據(jù)權(quán)利要求6所述的報(bào)表的統(tǒng)計(jì)裝置,其特征在于,所述執(zhí)行單元包括: 確定模塊,用于根據(jù)所述第一鏡像表確定與所述第一鏡像表相對(duì)應(yīng)的報(bào)表,所述與所 述第一鏡像表相對(duì)應(yīng)的報(bào)表為所述目標(biāo)報(bào)表;以及 執(zhí)行模塊,用于對(duì)所述與所述第一鏡像表相對(duì)應(yīng)的報(bào)表執(zhí)行報(bào)表統(tǒng)計(jì)處理,得到報(bào)表 統(tǒng)計(jì)結(jié)果。
【文檔編號(hào)】G06F17/30GK104317820SQ201410510715
【公開日】2015年1月28日 申請(qǐng)日期:2014年9月28日 優(yōu)先權(quán)日:2014年9月28日
【發(fā)明者】趙豐富 申請(qǐng)人:網(wǎng)神信息技術(shù)(北京)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1