按多個時間維度的聚類事件數據的制作方法
【專利摘要】提供了用于處理記錄數據的系統和方法。確定數據組塊的集合。每個數據組塊與事件的集合相關聯,所述事件是根據事件的集合中的每個事件的主要時間維度字段來成組的。針對數據組塊中的每一個確定元數據結構。元數據結構包括數據組塊中所有事件的主要時間維度字段的范圍和數據組塊中所有事件的次要時間維度字段的范圍。選擇所述數據組塊的子集。根據至少一個事件的次要時間維度字段來生成與多個事件中的至少一個事件相關聯的數據組塊。
【專利說明】按多個時間維度的聚類事件數據
[0001] 交叉引用 本申請要求2011年11月28日遞交的、名稱為"CLUSTERING OF EVENT DATA BY MULTIPLE --ΜΕ DMENSIONS"、序號為61/564, 207(代理人檔案號82899659)的共同未決美國臨時專利 申請的優先權,其出于各種目的通過引用合并于此,就像完全在這個文檔中闡述一樣。本申 請通過引用以其整體合并2009年9月4日遞交的、名稱為"STORINGLOGDATAEFFICIENTLY WHILE SUPPORTING QUERYING"、序號為 12/554, 541 的美國申請以及 2007 年 12 月 28 日遞 交的、名稱為 "STORING LOG DATA EFFICIENTLY WHILE SUPPORTING QUERYING TO ASSIST IN COMPUTER NETWORK SECURITY"、序號為 11/966, 078 的美國申請。
【背景技術】
[0002] 安全信息/事件管理(SM或SIEM)領域通常與下述各項相關:1)從網絡和聯網設 備收集反映網絡活動和/或設備操作的數據;以及2)分析該數據以增強安全性。例如,可 以分析該數據以識別對網絡或聯網設備的攻擊并且確定哪個用戶或機器負責。如果攻擊正 在進行,則可以執行對抗措施以阻止攻擊或減輕由攻擊引起的損壞。所收集的數據通常起 源于由聯網設備生成的消息(諸如事件、警告或警報)或記錄文件中的條目。典型的聯網設 備包括防火墻、侵入檢測系統和服務器。
[0003] 每個消息或記錄文件條目("事件")被存儲以供未來使用。所存儲的事件可以按各 種方式加以組織。當涉及到寫入事件數據、搜索事件數據和刪除事件數據時,每種組織方法 具有其自身的優勢和劣勢。
【專利附圖】
【附圖說明】
[0004] 通過參考附圖,可以更好地理解本公開并且使其許多特征和優勢變得顯而易見。
[0005] 圖1是根據實施例的具有信息/事件管理系統的環境的拓撲框圖。
[0006] 圖2是根據實施例的信息/事件管理系統的記錄系統的拓撲框圖。
[0007] 圖3A是根據實施例的基于事件發生時間生成事件組塊的過程流程圖。
[0008] 圖3B是根據實施例的基于事件發生時間把事件聚類成組塊的過程流程圖。
[0009] 圖4A是根據實施例的聚類稀疏事件流的過程流程圖。
[0010] 圖4B是根據實施例的查詢的過程流程圖。
[0011] 圖5圖示了可在其中實施實施例的計算機系統。
【具體實施方式】
[0012] 事件管理系統正變成實時事件管理系統的重要組件。這樣的系統可以用于獲得有 價值的洞察,諸如實時安全狀態、網絡狀態或市場信息。
[0013] 記錄系統高效地存儲數據(諸如安全信息/事件)同時支持針對不同事件屬性的查 詢。記錄系統可以是事件管理系統或用于進一步分析記錄數據的其它系統的組件或者可以 與事件管理系統或用于進一步分析記錄數據的其它系統結合使用。記錄數據可以由各種源 (包括設備和應用)生成,并可以采用任何格式。記錄數據由稱為"事件"的數據實例組成, 該數據實例由至少一個基于時間的屬性或維度表征。事件可以例如是記錄文件中的條目、 系統記錄服務器中的條目、警告、警報、網絡分組、電子郵件或通知頁面。
[0014] 時間是任何記錄系統的重要屬性。通常,存在與事件關聯的多個時間維度。一個 維度可以是事件實際發生時的時間(即,事件發生時間)。另一維度可以是事件實際被事件 處理系統和/或記錄系統接收時的時間(即,接收時間)。
[0015] 事件發生時間("et")和接收時間("rt")之間的不一致可以由各種條件引起,例 如,通過網絡的傳輸期間的延遲和在防止故障節點向中央記錄系統發送事件的某個時間段 內的安全網絡中節點(例如代理)的失效。因為事件可能被延遲或批處理,所以時間維度可 以彼此不同步。在涉及更嚴重的延遲條件的情況下,et和rt之間的不一致可以是從數秒 到數天的任何程度。
[0016] 可以創建多個索引以用于存儲事件,例如,針對每個時間維度的索引。在具有兩個 時間維度的事件的情境中,使用這個技術,把事件例如存儲在數據文件中。通過沿時間維度 之一聚類事件來創建聚類索引。更具體地,聚類索引被鍵入到事件沿其而被聚類的時間維 度("聚類維度")。次要索引在次要時間維度上被創建。
[0017] 經常,用戶向事件管理系統或記錄系統提出的查詢包括時間維度。因為可能存在 多個時間維度,所以用戶可以查詢所有那些維度。多個索引的使用可以用于確保跨多個時 間維度的查詢效率。
[0018] 然而,在許多具有大量事件的系統部署中,構建聚類索引和次要索引兩者是過分 昂貴的。索引增加了歸因于針對要求大數據存儲的環境的索引的大小而需要的存儲量。
[0019] 另外,存在顯著的維護開銷。例如,在rt上鍵入聚類索引,并且在et上鍵入次要 索引。聚類索引的每個條目包括與存儲組塊的數據文件相關聯的唯一標識符和該數據文件 內存儲該組塊的位置(例如,作為偏移)。次要索引的每個條目包括對聚類索引中的至少一 個條目的指針或其它參考,因為每個事件與事件時間和接收時間兩者都關聯。維持這些參 考的完整性可能是處理器密集和時間密集的。
[0020] 此外,除聚類維度外的任何維度上的搜索操作可能是低效的。例如,在rt上鍵入 聚類索引并且在et上鍵入次要索引的情況下,基于et的查詢可能涉及在這兩個索引上搜 索以便識別可包括具有與查詢相匹配的事件時間的事件的所有聚類。更具體地,基于et來 首先搜索次要索引。滿足這個首先搜索的條目用于識別相關rt條目,因為次要索引中的每 個條目均包括對聚類索引中的條目的參考。在確定哪些rt對應于次要索引中的條目之后, 聚類索引中的相關條目被訪問以識別相關組塊,該相關組塊是如下組塊:其可能能夠包含 具有滿足查詢的事件時間的事件。然后,所識別的組塊被分解成其組成事件。最終,搜索這 些事件中的每一個的et屬性以確定哪些事件滿足查詢。
[0021] 這樣的搜索方法可能導致低于最優的搜索性能。在rt中對事件成組塊的情況下, et上的查詢可能涉及對組塊的大子集的掃描,尤其是在組塊包括具有大范圍的事件發生時 間的事件的情況下。被識別為對于滿足查詢來說可能相關的許多組塊可能結果是不相關, 艮P,通過不包括滿足查詢的元素。
[0022] 在一個實施例中,可以通過下列操作來最小化掃描:在多個維度上聚類數據,例如 針對事件數據的整個集合在rt上聚類,并且,也在et上聚類,但在事件數據的子集上。更 具體地,組塊中的事件的et和rt的范圍被最小化,同時最大化組塊大小(S卩,組塊中事件的 數量)。
[0023] 如本文中描述的,提供了用于處理記錄數據的系統和方法。確定數據組塊的集合。 每個數據組塊與事件的集合相關聯,事件是根據事件集合中的每個事件的第一時間維度字 段來成組的。針對每個數據組塊確定元數據結構。元數據結構包括數據組塊中的所有事件 的主要時間維度字段的范圍和數據組塊中的所有事件的次要時間維度字段的范圍。數據組 塊的子集被選擇且分解成多個事件。根據該至少一個事件的次要時間維度字段來生成與該 多個事件中的至少一個事件相關聯的數據組塊。
[0024] 記錄系統包括事件接收器和存儲管理器。事件接收器接收記錄數據,處理它,并輸 出基于行和/或基于列的數據"組塊"。存儲管理器接收數據組塊并存儲它以使得它可以被 查詢。接收器包括緩存器,該緩存器存儲事件和元數據結構,元數據結構存儲關于緩存器的 內容的信息。
[0025] 元數據包括與接收器和緩存器中事件的數量相關聯的唯一標識符。對于所關注 的作為接收時間的字段,元數據包括反映在緩存器中的所有事件上該字段的值的范圍的最 小值和最大值。對于所關注的作為事件發生時間的字段,元數據包括反映在緩存器中的事 件子集上該字段的值的范圍的最小值和最大值。組塊包括元數據結構和緩存器內容的壓縮 版本。當查詢事件數據時,元數據結構中包括接收時間范圍的部分充當搜索索引(即,聚類 索引)。當查詢事件數據時,元數據結構中包括事件發生時間范圍的部分充當另一搜索索引 (即,次要索引)。照此,如果在任一時間維度上發起搜索,則在元數據上執行查找并且高效 地且以可縮放的方式搜索事件。記錄系統可以與信息/事件管理系統結合使用。
[0026] 信息/事件管理架構 圖1是根據實施例的具有信息/事件管理系統1〇〇的環境的拓撲框圖。系統1〇〇包 括(一個或多個)數據源110。數據源110是網絡節點,其可以是設備或軟件應用。數據源 110包括侵入檢測系統(IDS)、侵入防止系統(IPS)、漏洞評價工具、防火墻、反病毒工具、反 垃圾郵件工具、加密工具、應用審查記錄和物理安全記錄。事件數據可以例如由警告、警報、 網絡分組、電子郵件或通知頁面來提供。
[0027] 數據源110的類型包括安全檢測和代理系統、訪問和策略控制、核心服務記錄和 記錄匯集器、網絡硬件、加密設備和物理安全。通常,安全檢測和代理系統包括IDS、IPS、多 用途安全裝置、漏洞評價和管理、反病毒、蜜罐、威脅響應技術和網絡監控。典型的訪問和策 略控制系統包括訪問和標識管理、虛擬專用網(VPN)、高速緩存引擎、防火墻和安全策略管 理。核心服務記錄和記錄匯集器包括操作系統記錄、數據庫審查記錄、應用記錄、記錄匯集 器、web服務器記錄和管理控制臺。典型的網絡硬件包括路由器和交換機。典型的加密設 備包括數據安全性和完整性。典型的物理安全系統包括卡-密鑰讀取器、生物計量、防盜警 報和火災警報。
[0028] 在所圖示的實施例中,系統100包括(一個或多個)代理120、(一個或多個)管理器 130、(一個或多個)數據庫140、(一個或多個)在線存檔150、(一個或多個)用戶接口 160和 (一個或多個)記錄系統170。在一些實施例中,這些模塊被組合在單個平臺中或被分布在 兩個、三個或更多平臺中(諸如在圖1中)。隨著計算機網絡或系統的發展,這個多層架構的 使用支持可縮放性。
[0029] 代理120提供面向數據源110的接口。具體來說,代理120收集來自數據源110 的數據("原始事件")、處理該數據并把經處理的數據("事件")發送到管理器130。代理120 可以在任何地方操作,諸如在經由諸如簡單網絡管理協議(SNMP)陷阱之類的協議通信的分 離設備處、在網絡內的匯集點處或者在數據源110處。例如,如果數據源110是軟件應用, 則代理120可以在托管數據源的設備上被共同托管。
[0030] 處理可以包括歸一化、聚集和濾波。例如,個體原始事件被解析和歸一化以供管理 器130使用。歸一化可以涉及把值(諸如嚴重性、優先級和時區)歸一化成公共格式和/或 把數據結構歸一化成公共模式。可以使用公共的、人類可讀的格式來對事件進行分類。這 個格式使得用戶更容易理解該事件并使得更容易使用濾波器、規則、報告和數據監控器來 分析事件。在一個實施例中,公用格式是公共事件格式(CEF)記錄管理標準。
[0031] 聚集和濾波減少了被發送給管理器130的事件的量,這節省了網絡帶寬和存儲空 間,增加了管理器的效率和準確度,并減少了事件處理時間。代理120基于時間段的到期或 基于所達到的事件的閾值數量把事件成批地發送到管理器130。
[0032] 代理120還可以把命令發送到數據源110和/或在本地主機上執行命令,諸如指 示掃描器運行掃描。這些動作可以手動地或通過來自規則和數據監控器的自動動作而執 行。另外,代理120可以把信息添加到其已收集的數據,諸如通過查找因特網協議(IP)地 址和/或主機名以便在管理器130處解析IP/主機名查找,或者通過確定定時相關數據(例 如事件發生時間等)。
[0033] 經由關聯的配置文件(未示出)來配置代理120。代理120可以包括(一個或多個) 軟件模塊,該軟件模塊包括歸一化組件、時間校正組件、聚集組件、批處理組件、解析器組 件、傳送組件和/或附加組件。這些組件可以通過配置文件中的適當命令而激活和/或去 激活。在配置期間,代理120被注冊到管理器130且被配置有基于其數據源110和期望行 為的特性。可通過手動和自動過程兩者來進一步配置代理120。例如,管理器130可以把命 令或配置更新發送到代理120。
[0034] 管理器130提供分析能力、案例管理工作流程能力和服務能力。管理器130和代 理120之間的通信可以是雙向的(例如使管理器130能夠把命令傳輸到托管代理120的平 臺)和加密的。在一些裝置中,管理器130可以充當多個代理120的集中器,且可以把信息 轉發到其它管理器130 (例如在公司總部處部署的管理器)。為了執行其任務,管理器130 使用各種濾波器、規則、報告、數據監控器、儀表板和網絡模型。
[0035] 分析可以包括檢測、相關和逐步升級。例如,管理器130使用規則引擎(未示出)來 使從代理120接收的事件交叉相關,該規則引擎評估具有網絡模型的每個事件和漏洞信息 以開發出實時威脅概要。關于案例管理,管理器130可以維持關于安全事故及其解決的狀 態的報告。管理器130還可以提供對知識庫的訪問。
[0036] 隨著事件被管理器130接收到,事件被存儲在數據庫140中。存儲事件使它們稍 后能夠被用于分析和參考。在一個實施例中,數據庫140是數據庫管理系統(例如柱狀的、 關系的、混合的等)。
[0037] 用戶經由用戶接口 160與管理器130交互。用戶接口 160使用戶能夠導航管理器 130的特征和功能。單個管理器130可以支持多個用戶接口實例。對用戶來說可用的特征 和功能可以取決于用戶的作用和許可和/或管理器的配置。在一個實施例中,訪問控制列 表使多個安全專業人員能夠使用相同管理器130和數據庫140,但是每個專業人員具有其 自身的適于其責任的視圖、相關性規則、警告、報告和知識庫。管理器130和用戶接口 160之 間的通信是雙向的且可以被加密。用戶接口 160可以用于接收要對記錄數據執行的查詢。
[0038] 在一個實施例中,記錄系統170是針對極高事件吞吐量而優化的事件數據存儲裝 置。記錄系統170存儲事件(有時稱為"記錄數據"),諸如安全事件。在一個實施例中,事件 以壓縮形式被存儲。然而,記錄系統170可以按需求檢索這些事件,并把它們恢復到針對取 證質量數據的其原始的未修改的形式。多個記錄系統170可以一起工作以擴大,從而當存 儲事件時支持高的持續的輸入速率。事件查詢可以跨記錄系統170的對等網絡而分布。用 戶可以配置記錄系統170并經由用戶接口(未示出)提供查詢。
[0039] 記錄系統170可以接收經處理的事件(例如遵循公共事件格式的事件)和原始事件 兩者。在一個實施例中,原始事件是直接從數據源110 (諸如系統記錄消息和記錄文件)接 收的,并且經處理的事件是從代理120或管理器130接收的。記錄系統170還可以發送原 始事件和經處理的事件兩者。在一個實施例中,原始事件作為系統記錄消息而被發送(到任 何設備;未示出),并且經處理的事件被發送到管理器130。
[0040] 記錄系統170包括事件聚類模塊172。事件聚類模塊172被配置為接收組塊形式的 事件數據,該事件數據包括元數據結構和事件集合的壓縮版本。可以通過接收時間("rt") 來對事件集合成組。換句話說,事件可以被認為是根據rt來聚類的。當查詢事件數據時, 元數據結構可以充當搜索索引(例如聚類索引)。事件聚類模塊172被配置為識別供進一步 處理的組塊,并根據事件的發生的時間("et")來聚類來自這些所識別的組塊的事件。組塊 針對重新聚類的事件而被生成且例如被存儲在讀取優化系統("R0S")中。下面將關于圖2 來進一步描述記錄系統170。
[0041] 通過上面描述的架構,系統100可以支持集中式或分散式環境。這是有用的,因為 組織可能想要實施系統100的單個實例并使用訪問控制列表來劃分用戶。替代地,組織可 以選擇以針對多個組中的每一個組部署分離的系統100并匯集處于"主"級別的結果。這 樣的部署還可以實現"跟隨太陽"布置,其中通過把主要監督責任傳遞給當前工作標準業務 時間的組,地理上分散的對等組彼此合作。還可以在企業層級中部署系統100,在該企業層 級中,業務部門分離地工作并支持到集中式管理功能的匯總。
[0042] 事件數據 存儲在數據存儲系統中的數據的類型的示例是事件數據。事件是被收集且存儲在數 據存儲系統處的數據的實例。事件可以與已執行的活動或動作相關聯或者描述已執行的活 動或動作。通常,事件被一次生成且之后不改變。事件數據包括(一個或多個)事件。事件 數據可以由記錄數據組成,該記錄數據可以由各種源(包括設備和應用)生成并可以采用任 何格式。事件可以例如是記錄文件中的條目、系統記錄服務器中的條目、警告、警報、網絡分 組、電子郵件、通知等。
[0043] 事件數據可以被相關和分析以識別網絡安全威脅。安全事件是事件類型且是可被 分析以確定其是否與安全威脅相關聯的任何活動。該活動可以與用戶(還稱為行動者)相關 聯以識別安全威脅和安全威脅的起因。活動可以包括登入、登出、通過網絡發送數據、發送 電子郵件、訪問應用、讀取或寫入數據等。安全威脅包括被確定為指示可疑或不適當行為的 活動,其可以通過網絡而被執行或在連接到網絡的系統上被執行。通過示例的方式,公共安 全威脅是用戶試圖通過網絡獲得對機密信息(諸如社會安全號碼、信用卡號碼等)的未授權 訪問。
[0044] 事件的數據源可以包括網絡設備、應用、或下面描述的可操作以提供可用于識別 網絡安全威脅的事件數據的其它類型的數據源。事件數據是描述事件的數據。事件數據 可以在由數據源生成的記錄或消息中被捕獲。例如,侵入檢測系統(IDS)、侵入防止系統 (IPS)、漏洞評價工具、防火墻、反病毒工具、反垃圾郵件工具和加密工具可以生成描述由源 執行的活動的記錄。事件數據可以例如由記錄文件或系統記錄服務器中的條目、警告、警 報、網絡分組、電子郵件或通知頁面來提供。
[0045] 事件數據包括隱式元數據和消息。隱式元數據可以包括關于生成了該事件的設備 或應用的信息(例如,生成了該事件的設備或應用("事件源")和何時從事件源接收到該事 件("接收時間"))。在一個實施例中,接收時間是日期/時間戳,并且事件源是網絡端點標 識符(例如,IP地址或媒體接入控制(MAC)地址)和/或對源的描述,可能包括關于產品的 供應商和版本的信息。時間屬性、源信息和其它信息用于把事件與用戶進行相關并針對安 全威脅分析事件。時間屬性還可以被用作用于識別滿足查詢的事件的鍵。
[0046] 消息表示從事件源接收了什么,并可以采用任何形式(二進制數據、字母數字數據 等)。在一個實施例中,消息是自由形式的文本,其描述值得注意的場景或改變。在另一實 施例中,消息還包括顯式元數據。顯式元數據例如通過解析消息而獲得。當事件源生成事 件時,該事件通常包括指示該事件何時發生的信息("et")。事件發生時間(其通常是日期/ 時間戳)是顯式元數據的示例且頻繁地用于分析。
[0047] 在一個實施例中,如果事件不包括發生時間,則由事件接收器在它接收到該事件 時生成的隱式時間戳(下面描述的)被視為原始發生時間戳。隨著事件被處理且潛在地通過 各種系統而被轉發,每個系統可以具有事件接收時間的隱式標記。
[0048] 在一個實施例中,事件表示包括(一個或多個)字段的數據結構,其中每個字段可 以包含值(有時稱為"屬性")。如果不同的事件包括相同類型的字段,則事件可以被組織在 表格中。表格的每行將表不不同的事件,并且表格的每列將表不不同的字段。
[0049] 記錄系統架構 圖2是根據實施例的信息/事件管理系統的記錄系統200的拓撲框圖。在所圖示的實 施例中,記錄系統200包括事件接收器210、存儲管理器220和通信機構230。雖然為了清 晰而示出了一個事件接收器210,但是系統200可以利用許多事件接收器210支持大量的并 發會話。在一個實施例中,每個事件接收器210與唯一標識符相關聯。
[0050] 事件接收器210接收記錄數據240,處理記錄數據240并輸出數據"組塊"250。事 件數據可以以流的形式被接收。記錄數據可以包括事件。事件接收器210包括控制系統 255、緩存器260的集合和元數據結構265。控制系統255通信地耦合到(一個或多個)緩存 器260的集合和元數據結構265。控制系統255控制事件接收器210的操作,把記錄數據分 離成一個或多個事件并確定每個事件何時被事件接收器210接收到。控制系統255在緩存 器260中存儲事件以及針對每個事件存儲反映事件何時被接收到的時間/日期戳,且還更 新元數據結構265。控制系統255基于元數據結構265和緩存器260的內容生成數據組塊 250,如下面進一步描述的,數據組塊250包括關于事件的信息。在一個實施例中,組塊包括 元數據結構265和緩存器260內容的壓縮版本。不同的組塊可以具有不同的大小,并且,可 以指定最大的大小。例如當緩存器260被填滿時或者當特定時間段("超時窗口")已經過去 時,最終生成組塊,在該特定時間段期間,緩存器260沒有接收到事件。
[0051] 每個緩存器260存儲關于一個或多個事件的信息。緩存器260的集合存儲基于行 的組塊和/或基于列的組塊。在一個實施例中,緩存器的大小是固定的,但該大小自身是可 配置的。如果不同的事件包括相同類型的字段,則事件可以被組織在表格中。表格的每行 可以表示不同的事件,并且表格的每列可以表示不同的字段。在一個實施例中,每個緩存 器260與特定字段相關聯且包括來自該字段("屬性")的值,該字段來自一個或多個事件。 在另一實施例中,每個緩存器260還包括指示哪個字段與該緩存器相關聯的標識符("索引 ID")。
[0052] 例如,假設事件包括稱為源IP地址的字段,其值反映發起了由事件表示的動作的 設備的IP地址。與源IP地址字段相關聯的緩存器260將包含一個或多個IP地址(針對作 為記錄數據240的一部分而被事件接收器210接收和處理的每個事件,一個IP地址)。緩 存器260還可能包含索引ID值" 100",其指示源IP地址字段。
[0053] 在另一實施例中,緩存器的集合還包括接收時間緩存器,其針對每個事件存儲反 映事件何時被事件接收器210接收到的時間/日期戳。
[0054] 元數據結構265存儲關于緩存器260的集合的內容的元數據。在一個實施例中, 這個元數據包括與接收了該事件的事件接收器210相關聯的唯一標識符、緩存器的集合中 事件的數量、以及針對每個所關注的字段(例如,接收時間、事件發生時間)的反映在緩存器 的集合中的所有事件上該字段的值的范圍(例如時間范圍)的最小值和最大值。更具體地, 與其它信息一起,組塊的元數據可以包括用于標示接收時間范圍的開始和結束的start_rt 和end_rt。另外,元數據可以包括用于標示事件發生時間范圍的開始和結束的start_et和 end_et。當查詢事件數據時,元數據結構265充當索引(即,聚類索引)。
[0055] 在一個實施例中,接收時間("rt")是所關注的字段。在這個實施例中,元數據結 構265存儲反映在緩存器的集合中的所有事件上接收時間的值的范圍的最小值和最大值。 rt的最小值是首次接收的緩存器260的集合中的事件的接收時間。rt的最大值是最后接 收的緩存器260的集合中的事件的接收時間。
[0056] 此外,事件發生時間("et")也是所關注的字段。因此,在這個實施例中,元數據結 構265還存儲反映在緩存器的集合中的所有事件上事件發生時間的值的范圍的最小值和 最大值。et的最小值是所有事件中首次發生的事件的事件發生時間。et的最大值是所有 事件中最后發生的事件的事件發生時間。
[0057] 存儲管理器220接收(一個或多個)數據組塊250并存儲它們以使得它們可以被查 詢。在一個實施例中,存儲管理器220以流傳輸的方式操作從而減小存儲器開銷。存儲管 理器220包括控制系統270、數據文件表格275、組塊表格280、寫入優化系統("W0S")283中 的數據文件285的集合以及讀取優化系統("R0S")284中的數據文件286的集合。W0S 283 可以是以下各項中的任一個:基于行的存儲系統、基于列的存儲系統、或混合行/列存儲系 統。同樣地,R0S 284可以是以下各項中的任一個:基于行的存儲系統、基于列的存儲系統、 或混合行/列存儲系統。控制系統270通信地耦合到數據文件表格275、組塊表格280、以 及數據文件285和數據文件286的集合。
[0058] 控制系統270控制存儲管理器220的操作并包括聚類模塊276。聚類模塊276被 配置為確定組塊形式的事件數據,其包括根據事件的接收時間("rt")而聚類的事件。經由 WOS 283來訪問這個事件數據。事件聚類模塊276進一步被配置為識別稀疏或重疊的組塊 并根據事件發生時間("et")來聚類來自那些所識別的組塊的事件。組塊252針對重新聚 類的事件而被生成且存儲在ROS 284中。
[0059] 數據文件表格275存儲關于數據文件285和數據文件286的集合的信息。在一個 實施例中,數據文件表格275中的每個條目表示已針對其分配空間的一個數據文件285或 一個數據文件286,并且該條目包括與數據文件相關聯的唯一標識符和數據文件的位置(例 如,文件系統、其中的路徑和文件名)。在數據文件表格275中列出的數據文件285和數據 文件286可以或可以不包含數據(例如組塊250)。數據文件表格275例如被存儲在數據庫 (未示出)中。在一個實施例中,數據文件285和數據文件286在被需要之前被分配。在這 個實施例中,這些預分配的數據文件285和數據文件286的列表(稱為"自由列表")被維持。 數據文件表格275可以包括多個表格,例如具有與數據文件285相關聯的表格和與數據文 件286相關聯的另一表格。
[0060] 組塊表格280存儲并維持關于被存儲在存儲管理器220中(具體地,被存儲在(一 個或多個)數據文件285和(一個或多個)數據文件286中)的(一個或多個)組塊250和組 塊252的信息。在一個實施例中,對于每個組塊250和組塊252,這個信息包括存儲在組塊 中的元數據和組塊的位置(例如,與存儲組塊的數據文件相關聯的唯一標識符和數據文件 內存儲組塊的位置(例如,作為偏移))。組塊表格280例如被存儲在數據庫(未示出)中。組 塊表格280可以包括多個表格,例如具有與數據文件285相關聯的表格和與數據文件286 相關聯的另一表格。
[0061] 數據文件285存儲多個組塊250。在一個實施例中,所有數據文件是相同大小的 (例如1千兆字節)且按時間順序被組織。數據文件286存儲多個組塊252。在一個實施例 中,所有數據文件按時間順序被組織,其中數據文件285按接收時間的順序被組織,并且數 據文件286按事件發生時間的順序被組織。數據文件285和數據文件286例如存儲在原始 磁盤上或存儲在數據存儲系統(諸如文件系統(未示出))中。
[0062] 通信機構230通信地耦合事件接收器210和存儲管理器220。在一個實施例中,通 信機構230包括部分公用或完全公用的網絡,諸如因特網。在其它實施例中,通信機構230 包括專用網絡或一個或多個有區別的或邏輯的專用網絡(例如,虛擬專用網或局域網)。通 往和來自通信機構230的通信鏈路可以是有線的或無線的(例如基于陸地或基于衛星的收 發器)。在一個實施例中,通信機構230是分組交換網絡,諸如使用以太網協議的基于IP的 廣域網或城域網。
[0063] 在另一實施例中,通信機構230對單個計算機系統來說是本地的(例如,如果事件 接收器210的部分和存儲管理器220的部分在相同設備上執行)。在這個實施例中,通信機 構230例如通過本地的、僅軟件的環回設備而實施。例如,數據被復制到存儲器中的各個位 置,并且,經由API來進行通信。
[0064] 在又一實施例中,通信機制230對單個過程來說是本地的(例如,如果事件接收器 210的部分和存儲管理器220的部分在相同設備上且在相同過程中執行)。在這個實施例 中,通信機構230例如通過共享的存儲器和/或指向其的指針而實施。
[0065] 檢查點 為了確保可靠性,存儲管理器220成批(例如1000個組塊)處理事件并在處理每個組塊 批次之后創建檢查點。檢查點被創建所依照的頻率是可配置的。檢查點可以被認為是指示 數據已被處理直到特定時間點的標志。在系統崩潰發生時,系統可以從該標志被設置之后 的時間點重新開始處理數據。
[0066] 基于事件發生時間的聚類 圖3A是根據實施例的基于事件發生時間生成事件組塊的過程流程圖。所描繪的過程 流程300可以通過對可執行指令序列的執行而實施。在另一實施例中,過程流程300的各 個部分由信息/事件管理系統、硬件邏輯的布置(例如專用集成電路(ASIC))等的組件來實 施。例如,過程流程300的框可以通過信息/事件管理系統的聚類模塊中可執行指令序列 的執行而執行。
[0067] 沿多個時間維度來聚類事件,并且針對每個相關時間維度維持索引。在一個實施 例中,所有事件沿主要時間維度而被聚類,并且這些事件的子集沿次要時間維度而被重新 聚類。被重新聚類的事件是作為(沿主要時間維度的)聚類的一部分的那些事件,該聚類不 具有針對相關時間維度的最小化范圍和/或最大化組塊大小。如本文中使用的,組塊大小 指代組塊中事件的數量。
[0068] 在一個實施例中,事件是通過接收時間("rt")來聚類的,該接收時間("rt")是主 要時間維度,并且,所產生的組塊被保存在寫入優化存儲器中。次要時間維度可以是事件發 生時間("et")。如下面描述的,步驟305-315描述了確定組塊的密度級別的過程。密度級 別用來標識用于重新聚類(即,根據次要時間維度的聚類)的事件的子集。確定密度級別可 以在組塊被生成、接收或存儲(例如在數據文件中)之后被離線執行。替代地,隨著密度級別 被接收到,以流傳輸的方式確定該密度級別。
[0069] 在步驟305,將與組塊相關聯的元數據讀取到例如存儲器。除了其它信息之外,組 塊的元數據包括用于標示被成組在特定組塊中的事件的開始和結束時間范圍的start_rt、 end_rt、start_et和end_et。每個組塊包括基于關聯的接收時間而聚類的事件的集合。關 聯的元數據可以被存儲在組塊中且因此從組塊中被提取。當組塊被生成、接收時或者在組 塊已被存儲(例如在數據文件中)之后,可以提取元數據。在另一實施例中,元數據被與數據 文件分離地存儲且例如從組塊表格中檢索。如前面描述的,元數據結構充當索引。照此,與 每個聚類關聯的元數據結構可以包括針對(通過接收時間而聚類的)組塊的接收時間的范 圍的索引和針對相同組塊的事件發生時間的范圍的另一索引。
[0070] 在步驟310,基于組塊中的事件的事件發生時間的范圍來確定組塊的密度級別。事 件發生時間的范圍是從關聯的元數據確定的。可以通過將組塊中事件的總數除以事件發生 時間的范圍來確定密度級別,例如 :
【權利要求】
1. 一種用于處理記錄數據的方法,所述方法包括: 通過計算設備確定數據組塊的集合,每個數據組塊包括事件的集合,所述事件是根據 事件的集合中的每個事件的主要時間維度字段來聚類的; 對于數據組塊的集合中的每個數據組塊,確定元數據結構,所述元數據結構包括數據 組塊中所有事件的主要時間維度字段的范圍和數據組塊中所有事件的次要時間維度字段 的范圍; 選擇所述數據組塊的子集; 把所述數據組塊的子集分解成多個事件;以及 生成包括所述多個事件中的至少一個事件的數據組塊,該事件是根據所述至少一個事 件的次要時間維度字段而被聚類在所述數據組塊中的。
2. 根據權利要求1的方法,其中所述主要時間維度字段的范圍包括數據組塊中所有事 件的主要時間維度字段的最小值和數據組塊中所有事件的主要時間維度字段的最大值,并 且其中次要時間維度字段的范圍包括數據組塊中所有事件的次要時間維度字段的最小值 和數據組塊中所有事件的次要時間維度字段的最大值。
3. 根據權利要求1的方法,其中選擇子集包括:針對所述數據組塊的集合中的每個數 據組塊: 確定組塊的密度級別;以及 如果所述數據組塊是稀疏組塊或密集組塊,則基于組塊的密度級別,確定所述子集包 括所述數據組塊。
4. 根據權利要求3的方法,其中確定密度級別包括: 確定與組塊相關聯的事件的數量;以及 將所述事件的數量除以組塊的事件的次要時間維度字段的范圍。
5. 根據權利要求3的方法,還包括: 將組塊的次要時間維度字段的范圍與密集時間范圍閾值相比較; 如果該范圍滿足所述密集時間范圍閾值,則確定組塊是密集組塊; 將組塊的次要時間維度字段的范圍與稀疏時間范圍閾值相比較;以及 如果該范圍滿足所述稀疏時間范圍閾值,則確定組塊是稀疏組塊。
6. 根據權利要求5的方法,還包括: 將組塊的次要時間維度字段的范圍與所述稀疏組塊的次要時間維度字段的范圍相比 較;以及 如果組塊的范圍與所述稀疏組塊的范圍重疊,則確定組塊是重疊組塊。
7. 根據權利要求1的方法,其中多個數據組塊被生成,并且其中所述數據組塊的密度 級別在多個所生成的數據組塊之間被平衡。
8. 根據權利要求1的方法,其中所述主要時間維度字段是事件接收時間。
9. 根據權利要求1的方法,其中所述次要時間維度字段是事件發生時間。
10. 根據權利要求1的方法,還包括: 把所生成的組塊存儲在讀取優化存儲器中的數據文件中;以及 把所述元數據結構更新成包括關于所生成的組塊的信息。
11. 根據權利要求1的方法,其中所述元數據結構還包括寫入優化存儲器中組塊的集 合中的每個組塊的位置和讀取優化存儲器中所生成的組塊的位置。
12. 根據權利要求1的方法,還包括: 接收搜索查詢,所述搜索查詢包括搜索項的集合; 從所述搜索項的集合中識別涉及被包含在所述元數據結構中的事件時間信息的至少 一個搜索項;以及 通過把所識別的搜索項與所述主要時間維度字段的最小值以及與所述次要時間維度 字段的最小值相比較來搜索所述元數據結構。
13. 根據權利要求12的方法,還包括: 識別滿足所述搜索項的數據組塊;以及 從讀取優化存儲器中檢索所識別的數據組塊。
14. 一種用于處理記錄數據的系統,包括: 接收模塊,用于生成數據組塊的集合,每個數據組塊包括事件的集合,所述事件是根據 事件的集合中的每個事件的主要時間維度字段來聚類的; 組塊表格,用于對于數據組塊的集合中的每個數據組塊維持元數據結構,所述元數據 結構包括數據組塊中所有事件的主要時間維度字段的范圍和數據組塊中所有事件的次要 時間維度字段的范圍; 讀取優化存儲器,用于存儲所述數據組塊的子集; 寫入優化存儲器;以及 聚類模塊,用于選擇所述數據組塊的子集,并使用所述子集的事件生成數據組塊,其中 所述子集的事件是根據次要時間維度字段來成組的。
15. -種非瞬變計算機可讀介質,存儲用于控制數據處理器處理記錄數據的多個指令, 所述多個指令包括使所述數據處理器執行如下操作的指令: 確定數據組塊的集合,每個數據組塊包括事件的集合,所述事件是根據事件的集合中 的每個事件的主要時間維度字段來聚類的; 對于數據組塊的集合中的每個數據組塊,確定元數據結構,所述元數據結構包括數據 組塊中所有事件的主要時間維度字段的范圍和數據組塊中所有事件的次要時間維度字段 的范圍; 選擇所述數據組塊的子集; 把所述數據組塊的子集分解成多個事件;以及 生成包括所述多個事件中的至少一個事件的數據組塊,所述至少一個事件是根據所述 至少一個事件的次要時間維度字段而被聚類在所述數據組塊中的。
【文檔編號】G06F21/55GK104067281SQ201280068235
【公開日】2014年9月24日 申請日期:2012年1月26日 優先權日:2011年11月28日
【發明者】D.達什, W.唐, M.奧拉亞尼 申請人:惠普發展公司,有限責任合伙企業