亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

時間序列搜索引擎的制作方法

文檔序號:6375263閱讀:270來源:國知局
專利名稱:時間序列搜索引擎的制作方法
技術(shù)領(lǐng)域
本發(fā)明總體上涉及信息組織、搜索以及檢索,并且更特別地涉及時間序列(time series)數(shù)據(jù)組織、搜索以及檢索。
背景技術(shù)
時間序列數(shù)據(jù)通常是一個或多個連續(xù)流中出現(xiàn)的具有時間戳的記錄的序列,其表示由離散事件組成的某些類型的活動。示例包括信息處理日志、市場交易以及來自于實時監(jiān)視器的傳感器數(shù)據(jù)(供應(yīng)鏈、軍事操作網(wǎng)絡(luò)或安全系統(tǒng))。為了理解以及利用發(fā)出大量時間序列數(shù)據(jù)的系統(tǒng),編制索引、搜索以及呈現(xiàn)相關(guān)搜索結(jié)果是重要的?,F(xiàn)有的大規(guī)模搜索引擎(例如,Google和Yahoo的web搜索)設(shè)計為滿足對時間性不太敏感類數(shù)據(jù)的需要,并且該搜索引擎建立在如下假設(shè)上,即僅需要在索引庫中存儲數(shù)據(jù)的一個狀態(tài),例如,Web搜索索引中的URL、客戶數(shù)據(jù)庫中的記錄或作為文件系統(tǒng)一部分的文檔。針對信息的搜索通?;陉P(guān)鍵字搜索項而僅檢索單個信息的副本來自于幾天前編制索引的Web站點的URL集合、來自于昨天營業(yè)結(jié)束時的客戶記錄或指定版本的文檔。相反,考慮來自于如圖I所示的典型信息處理環(huán)境中的時間序列數(shù)據(jù)的示例。防火墻、路由器、web服務(wù)器、應(yīng)用服務(wù)器和數(shù)據(jù)庫總是生成事件形式的數(shù)據(jù)流,其中,每秒可能出現(xiàn)數(shù)百次或數(shù)千次事件。這里,隨時間變化的數(shù)據(jù)行為模式以及歷史數(shù)據(jù)值通常與當前數(shù)據(jù)值一樣重要。目前的搜索方案通常幾乎不具有基于時間編制索引、搜索或結(jié)果呈現(xiàn)中相關(guān)性的概念,并且不符合時間序列數(shù)據(jù)的需要。與全文本搜索引擎(全文本搜索引擎對其索引進行組織,從而檢索具有最高相關(guān)性分數(shù)的文檔是最有效的)相比,搜索時間序列數(shù)據(jù)的引擎優(yōu)選地對索引進行組織,從而對各種時間范圍(包括不太近的時間范圍)的訪問是有效的。例如,與很多現(xiàn)代搜索引擎不同,對于時間序列搜索引擎來說,對特定關(guān)鍵字的前1000個結(jié)果進行高速緩存沒有顯著的益處。另一方面,鑒于時間序列數(shù)據(jù)的重復性質(zhì),存在對索引構(gòu)造效率和搜索優(yōu)化的機會。然而,由于可以從多個不同的源異步地、亂序地收集數(shù)據(jù),因此對時間序列數(shù)據(jù)編制索引進一步復雜化。來自于一個源的數(shù)據(jù)流可能是數(shù)秒前的,而來自于另一個源的數(shù)據(jù)可以與其他源交織,或者可能比其他源要早數(shù)天、數(shù)周或數(shù)月。而且,數(shù)據(jù)源時間可能不是彼此同步的,這需要在編制索引后的時間偏移中進行調(diào)整。此外,時間戳可以具有幾乎無限數(shù)量的格式,導致難以標識以及解釋。在沒有針對位置、格式或時間粒度(例如,日、小時、分鐘、秒、亞秒)的標準的情況下,可能很難定位數(shù)據(jù)內(nèi)的時間戳。搜索時間序列數(shù)據(jù)通常涉及以下能力有效地將搜索結(jié)果限制到指定時間窗以及基于時間的其他元數(shù)據(jù)(諸如頻率、時間間隔分布)以及結(jié)果出現(xiàn)總數(shù)或類別?;陉P(guān)鍵字的搜索通常在重要性方面是次要的,但是其在與基于時間的搜索機制組合時可能是強有力的。搜索時間序列數(shù)據(jù)需要全新的快速搜索方式。搜索引擎如今允許用戶通過最頻繁出現(xiàn)的項或數(shù)據(jù)內(nèi)的關(guān)鍵字來進行搜索,并且通常幾乎沒有基于時間搜索的概念。如果存在大量時間序列數(shù)據(jù)并且具有重復性特征,則用戶通常需要由使用基于時間的搜索機制縮小潛在的搜索結(jié)果集合開始,然后通過檢驗結(jié)果、選擇一個或多個關(guān)鍵字添加到它們的搜索參數(shù)。時間幀和基于時間的元數(shù)據(jù)(比如頻率、分布和出現(xiàn)概率)在搜索時間序列數(shù)據(jù)時是特別重要的,但是利用當前搜索引擎方法很難實現(xiàn)。例如,嘗試利用基于Web的新聞?wù)军c搜索引擎查找2005年5月10日上午10點到11點之間所有涉及“航天飛機”的報道或 同一天中每小時“航天飛機”報道的平均數(shù)量。由于關(guān)注數(shù)據(jù)何時出現(xiàn),基于時間的搜索機制和查詢對于搜索時間序列數(shù)據(jù)可能是有用的。在特定的小規(guī)模領(lǐng)域中,存在某些現(xiàn)有的、基于時間搜索的有限應(yīng)用。例如,電子郵件搜索如今在很多主流電子郵件程序和基于web的電子郵件服務(wù)中可用。然而,搜索限于簡單的時間功能,比如,某時間之前、之后或時間范圍;數(shù)據(jù)集合通常是小規(guī)模的,并且是來自于單個域的高度結(jié)構(gòu)化的;并且實時編制索引機制僅僅是附加性的,通常需要對交織的新數(shù)據(jù)重建全部索引。呈現(xiàn)有用結(jié)果的挑戰(zhàn)是時間序列數(shù)據(jù)的周期性所獨有的。傳統(tǒng)搜索引擎通常按照流行性以及通用性分類來呈現(xiàn)結(jié)果。與此相反,對于時間序列數(shù)據(jù),重點可能在于關(guān)注數(shù)據(jù)模式以及不頻繁出現(xiàn)或不尋常結(jié)果的能力。優(yōu)選地,能夠通過基于時間的模式和行為來組織和呈現(xiàn)時間序列搜索結(jié)果將是有益的。用戶需要在多個粒度(例如,秒、分鐘、小時、日)以及分布(例如,不期望或極少出現(xiàn))水平來查看結(jié)果的能力,以及查看反映遍及結(jié)果集合的模式和行為的摘要信息的能力。另一方面,在試圖首先顯示最流行結(jié)果時,現(xiàn)有搜索引擎通常返回按照關(guān)鍵字密度排序的文本結(jié)果、使用統(tǒng)計或去往或來自文檔和Web頁面的鏈接。在一類時間序列搜索引擎中,希望該引擎實時地編制索引并且允許實時地搜索數(shù)據(jù)。收集時間數(shù)據(jù)之間的延遲,將可用于搜索的時間最小化。利用傳統(tǒng)的大規(guī)模搜索引擎實現(xiàn)針對大量、頻繁改變的數(shù)據(jù)集合的實時操作,其以快速數(shù)據(jù)可用性為代價而針對小的搜索響應(yīng)時間進行優(yōu)化。例如,Web和文檔搜索引擎通常以種子開始并且通過爬取(crawl)收集數(shù)據(jù),直到經(jīng)過一定時間量或達到一定的收集規(guī)模。保存該收集的快照,并且建立、優(yōu)化以及存儲索引。然后,將被頻繁訪問的索引加載到高速緩存機構(gòu)中以優(yōu)化搜索響應(yīng)時間。取決于數(shù)據(jù)集合的大小和索引的密度,該處理可能花費數(shù)小時或甚至數(shù)日來完成。這不同于實時時間序列編制索引機制,其中實時時間序列編制索引機制被設(shè)計為,將收集數(shù)據(jù)的時刻與該數(shù)據(jù)可用于搜索的時刻之間的時間最小化。能夠在收集數(shù)據(jù)時自動對索引進行插入、刪除以及重新組織,而不需要重建索引結(jié)構(gòu),其中該索引結(jié)構(gòu)對于對時間序列編制索弓丨、以及針對此類時間序列搜索引擎提供實時搜索結(jié)果來說是重要的。關(guān)注于時間序列的其他軟件(例如,諸如Sawmill或Google的Sawzall之類的日志事件分析器)可以提供實時分析功能,但是它們本身不是搜索引擎,因為它們不提供adhoc搜索。在任何分析之前,必須定義并建立報告。此外,沒有通用的基于關(guān)鍵字或基于時間的搜索機制可用。其他流式傳輸數(shù)據(jù)搜索項目(包括Stanford流式項目以及來自于比如StreamBase Systems公司的產(chǎn)品)還可以產(chǎn)生流式傳輸數(shù)據(jù)的分析和報警,但是不提供任何持久性的數(shù)據(jù)、編制索引、基于時間或基于關(guān)鍵字的搜索。因此,需要開發(fā)其他技術(shù),用于編制索引、搜索以及呈現(xiàn)來自時間序列數(shù)據(jù)的搜索結(jié)果。

發(fā)明內(nèi)容
根據(jù)本發(fā)明的方法和裝置允許使用時間序列搜索引擎(TSSE)來編制索引、搜索以及檢索時間序列數(shù)據(jù),從而滿足這些和其他需要。在一個實現(xiàn)中,TSSE的一個方面是將 時間用作編制索引、搜索和/或呈現(xiàn)搜索結(jié)果的主要機制。特定于基于時間的搜索機制的時間序列搜索語言(TSSL)用于以人類可讀的形式來表示搜索,并且使用特定于時間序列數(shù)據(jù)的相關(guān)性算法來呈現(xiàn)結(jié)果。搜索表達與結(jié)果基于對于搜索時間序列數(shù)據(jù)重要的關(guān)鍵概念,包括但不限于時間窗、頻率、分布、出現(xiàn)模式以及來自于多個、離散源的相關(guān)時間序列數(shù)據(jù)點。在本發(fā)明的一個方面中,對時間序列數(shù)據(jù)的多個源組織以及編制索引以用于搜索,并且在用戶或機器啟動搜索時呈現(xiàn)結(jié)果。在另一方面,時間序列搜索引擎(TSSE)包括四個部分⑴時間戳處理;⑵編制索引處理;⑶搜索處理;以及⑷結(jié)果呈現(xiàn)處理。在本發(fā)明的一個方面中,計算機實現(xiàn)的、用于時間搜索數(shù)據(jù)的方法包括以下步驟。接收時間序列數(shù)據(jù)流。時間序列數(shù)據(jù)流的一個示例包括服務(wù)器日志以及其他類型的機器數(shù)據(jù)(即,由機器生成的數(shù)據(jù))。時間序列數(shù)據(jù)流被標記時間戳,以創(chuàng)建具有時間戳的事件。對具有時間戳的事件進行時間索引,從而產(chǎn)生時間分段的(timebucketed)索引,其用于履行搜索請求。至少部分地通過搜索時間分段的索引來執(zhí)行時間序列搜索請求。在某些實現(xiàn)中,對時間序列數(shù)據(jù)流標記時間戳包括將該時間序列數(shù)據(jù)流聚合為事件,并且對該事件標記時間戳。例如,事件可以按照域來分類,并且根據(jù)它們的域標記時間戳。在一個方法中,對于利用已知的時間戳格式在域中分類的事件,從該事件提取時間戳。然而,對于沒有利用已知的時間戳格式在域中分類的事件,對時間戳進行內(nèi)插。在本發(fā)明的另一方面中,根據(jù)被標記時間戳的事件的時間戳來將具有時間戳的事件分配給時間段,從而創(chuàng)建時間分段的索引??梢允褂貌煌臅r間段策略。例如,時間段可以全部具有相同的持續(xù)時間,或者可以具有不同的持續(xù)時間。此外,時間段可以使用懶惰分配(lazy allocation)策略進行實例化。還可以對時間戳事件分割,并且將片段用于確定時間分段的索引??梢允褂酶鞣N形式的編制索引,包括熱編制索引、暖編制索引以及推理編制索引。創(chuàng)建時間分段的索引促進時間序列搜索的執(zhí)行。在一個方法中,將時間序列搜索請求針對受影響的時間段劃分為不同的子搜索,同時在相應(yīng)的時間分段的索引上執(zhí)行每個
子搜索。本發(fā)明的其他方面包括對應(yīng)于上述方法的軟件、計算機系統(tǒng)和其他設(shè)備和針對上述全部內(nèi)容的應(yīng)用。


本發(fā)明具有其他優(yōu)勢和特征,當結(jié)合附圖時,根據(jù)對本發(fā)明的詳細說明書以及所附權(quán)利要求書,將更容易理解這些優(yōu)勢和特征,在附圖中圖I (現(xiàn)有技術(shù))是時間序列數(shù)據(jù)環(huán)境的圖示。圖2是根據(jù)本發(fā)明的時間序列搜索引擎的圖示。圖3是適于與圖2的時間序列搜索引擎一起使用的時間戳處理的圖示。圖4是適于與圖3的時間戳處理一起使用的事件聚合處理的圖示。
圖5是適于圖2的時間序列搜索引擎一起使用的編制索引處理的圖示。圖6是適于與圖2的時間序列搜索引擎一起使用的搜索處理的圖示。圖7是適于與圖2的時間序列搜索引擎一起使用的結(jié)果呈現(xiàn)處理的圖示。附圖僅出于說明的目的描繪了本發(fā)明的實施方式。本領(lǐng)域的技術(shù)人員將容易地根據(jù)以下討論認識到,在不脫離在此所述本發(fā)明原理的情況下,可以采用本文所述的結(jié)構(gòu)和方法的備選實施方式。
具體實施例方式圖I示出了時間序列數(shù)據(jù)環(huán)境的不同示例,該環(huán)境具有遍及多個域的潛在大量數(shù) 據(jù)源以及時間序列數(shù)據(jù)的流。在該圖中,第一幅圖示出了信息處理環(huán)境,其具有服務(wù)器日志形式的來自于web服務(wù)器、應(yīng)用服務(wù)器和數(shù)據(jù)庫的時間序列數(shù)據(jù)。第二幅圖是典型的市場 貿(mào)易環(huán)境,其具有多個購買者和銷售者之間的以及兩個或更多市場之間的事務(wù)。以事務(wù)記錄的形式生成時間序列數(shù)據(jù),該記錄表示作為示例的目的或交易或交易的最終處理。在第三幅圖中,示出了具有以記錄測量形式產(chǎn)生時間序列數(shù)據(jù)的多個傳感器的實時監(jiān)視環(huán)境。所有這三個環(huán)境是TSSE的潛在應(yīng)用的示例。將針對圖I中的第一幅圖(信息處理環(huán)境)描述本發(fā)明的多個方面,但是本發(fā)明也可以與其他時間序列數(shù)據(jù)環(huán)境和包括圖I中示出的其他環(huán)境的應(yīng)用一起使用。圖2示出了構(gòu)造TSSE的一個方法200。時間序列數(shù)據(jù)流205以同步或異步方式從多個源到達,多個搜索255由用戶和/或其他系統(tǒng)表達,并且通過例如包括應(yīng)用編程接口和基于web的用戶接口的各種機制呈現(xiàn)結(jié)果集合275。
可以通過使TSSE直接收集時間序列數(shù)據(jù)流205,或使用戶提供的腳本收集、預處理來進行收集,并將其傳遞到默認TSSE收集點,從而實現(xiàn)使時間序列數(shù)據(jù)流205到達TSSE200。該架構(gòu)優(yōu)選地容忍數(shù)據(jù)遲到以及在時間上的亂序。當前,大部分時間序列數(shù)據(jù)的源都不是針對數(shù)據(jù)的復雜處理而設(shè)計的,因此,通常TSSE將收集或向TSSE饋送原始時間序列數(shù)據(jù)(接近其原有形式)。TSSE可以位于不同的位置,只要其能夠訪問時間序列數(shù)據(jù)即可。例如,TSSE的一個副本可以運行在單個中心計算機上,或多個副本可以配置用于與每個副本建立對等連接,每個副本對同一時間序列數(shù)據(jù)流或不同時間序列數(shù)據(jù)流進行處理。圖2示出了具有四個主要處理的示例TSSE 200 :時間戳處理210、索引處理220、搜索處理230和呈現(xiàn)處理240。時間戳處理210將原始時間序列數(shù)據(jù)205轉(zhuǎn)換為具有時間戳的事件215,以便將其饋送至編制索引處理220。根據(jù)示出的信息處理示例,來自于多個web服務(wù)器、應(yīng)用服務(wù)器和數(shù)據(jù)庫的原始日志205可以由時間戳處理210進行處理,以標識各種日志格式內(nèi)的獨立事件215,并且正確地提取時間和其他事件數(shù)據(jù)。事件數(shù)據(jù)215由索引處理220使用,以便構(gòu)建事件的時間分段的索引(time bucketed index) 225。這些索引225由搜索處理230利用,該搜索處理230執(zhí)行來自于用戶或系統(tǒng)的搜索255、分解搜索以及繼而執(zhí)行對索引集合的搜索。例如,用戶可能希望定位在最近一個小時內(nèi)出現(xiàn)的、來自于特定web服務(wù)器和特定應(yīng)用服務(wù)器、并且其中包含特定IP地址的所有事件。此外,搜索處理230可以選擇在搜索時啟動創(chuàng)建元事件237,以處理有助于對重復時間數(shù)據(jù)進行搜索的、基于時間的統(tǒng)計摘要索引。例如,元事件237可以表示實際事件或基于更復雜模式行為的平均、中值或計數(shù)。在該情況下,用戶可能希望搜索以發(fā)現(xiàn)出現(xiàn)頻率為每分鐘三次的所有事件。
在完成時,搜索處理230將結(jié)果從所選擇的索引235傳遞到呈現(xiàn)處理240,該呈現(xiàn)處理240合并結(jié)果集合、分級集合以及將結(jié)果275饋送到API或用戶接口用于呈現(xiàn)。I.時間戳處理圖3中所示了 TSSE的示例性實現(xiàn)200的處理210,其旨在于獲取流式傳輸?shù)臅r間序列數(shù)據(jù)、標識該流內(nèi)的單獨事件以及將時間戳分配給每個事件。在圖3中示出了示例時間戳處理210框圖,并且包括多個步驟,所述步驟包括事件聚合310、域標識320、時間提取330和時間內(nèi)插340。時間序列數(shù)據(jù)流205作為輸入被接收至時間戳處理210,并且然后被處理為獨立的具有時間戳的事件215。I. A事件聚合在圖3的時間戳處理210中,步驟310將流式傳輸時間序列數(shù)據(jù)205聚合為獨立事件315。在示出的信息處理示例中,web服務(wù)器時間序列數(shù)據(jù)流可以針對每個事件具有單一的行,并且容易標識。然而,應(yīng)用服務(wù)器時間序列數(shù)據(jù)流可能包含具有大量行的單個事件,從而難以在流內(nèi)標識單獨的事件。在一個實現(xiàn)中,事件聚合310使用特征提取(例如,主要的標點符號、重要的詞語、空白和換行符)以及機器學習算法來確定事件邊界在何處。圖4是適于與圖3的時間戳處理一起使用的事件聚合處理的圖示。I. A. I源標識-分類到域中在示出的信息處理示例中,如果時間序列數(shù)據(jù)205具有重復且動態(tài)的性質(zhì)(該數(shù)據(jù)被稱為機器數(shù)據(jù)205或MD205),則有效聚合處理310 (諸如在圖4中示出)優(yōu)選地將自動學習關(guān)于數(shù)據(jù)格式和結(jié)構(gòu)。在一個實現(xiàn)中,基于MD 205的源,將知識劃分為不同域。域可以是一般系統(tǒng)類型,諸如日志文件、消息總線業(yè)務(wù)以及網(wǎng)絡(luò)管理數(shù)據(jù),或指定類型的,諸如給定應(yīng)用或技術(shù)的輸出一Sendmail (發(fā)送郵件)日志數(shù)據(jù)、Oracle數(shù)據(jù)庫審計數(shù)據(jù)以及J2EE消息傳送。在該示例事件聚合處理310中,針對MD的給定源的域標識為415,從而可以應(yīng)用特定于域的組織方法。通過學習過程來確定域。該學習過程將來自于公知域的MD集合用作輸入,并且為每個域創(chuàng)建源簽名412。在一個實現(xiàn)中,通過創(chuàng)建將標點字符映射到其頻率的哈希表來從MD 205的代表性示例生成源簽名412。雖然標志和標志值在MD集合中可以改變,但是在此特定實現(xiàn)中,按照標點符號頻率生成的簽名412非常穩(wěn)定,并且在特定域內(nèi)是可靠的。其他實現(xiàn)可以使用標點符號和標志的功能,諸如行上的第一標點字符的頻率或行上的第一大寫項。如果源簽名412較大且難以讀取,則簽名可以具有可以由機器生成或人工指定的數(shù)字或文本形式的相應(yīng)標簽。例如,用于Apache web服務(wù)器日志的源簽名412可能被編程地分配標簽“205”,或用戶可以被分配標簽“Apache服務(wù)器日志”。在一個實施方式中,使用聚類(clustering)來根據(jù)所收集的MD205的源簽名412將其分類到域中。當遇到MD205集合時,通過執(zhí)行最近相鄰搜索將每個集合的簽名與已知源簽名412的集合進行匹配。如果最近匹配簽名412的距離在閾值之內(nèi),則假設(shè)最近匹配簽名412是源的域。如果不能找到最佳匹配,則可以根據(jù)采樣簽名和所創(chuàng)建的新源域來創(chuàng)建新的源簽名412??商鎿Q地,可以使用默認源域。在一個實現(xiàn)中,通過對兩個簽名屬性聯(lián)合的迭代來計算兩個簽名之間的距離,其中總簽名距離是針對每個屬性的距離平均。對于每個屬性A,比較Signaturel (簽名I)和Signature〗(簽名2)的值Vl和V2,并且計算距離。屬性A的距離是(V1-V2)*IDF的平方,其中IDF是log (N/I Al),其中N是簽名的數(shù)量,并且IAl是具有屬性a的簽名的數(shù)量。LA. 2源標識-分類為文本/ 二進制某些MD 205源是非文本的或二進制的,并且不易處理,除非已知處理可用于將二 進制MD轉(zhuǎn)換為文本形式。為了將源分類為文本或二進制,分析采樣MD集合。文本MD也可以具有嵌入的二進制MD,諸如存儲器轉(zhuǎn)儲,并且分類優(yōu)選地對其進行同樣的標識。在一個實現(xiàn)中,文本/ 二進制分類以如下方式進行。采樣是數(shù)據(jù)行的集合,其中行定義為新行(即,“\n”)、回車(即,“\r”)或它們的組合(即,“\r\n”)之間的數(shù)據(jù)。對于每一行,如果行的長度大于某些大閾值,諸如2k字符,或如果行包含具有零(O)值的ASCII的字符,則二進制類行的計數(shù)增加。否則,如果行的長度短于期望大部分文本行所低于的長度,諸如256字符,則文本類行的計數(shù)增加。如果文本類行的數(shù)量是二進制類行數(shù)量的兩倍(根據(jù)上下文可以使用其他比例),則將源分類為文本。否則,將源分類為二進制。LA. 3將機器數(shù)據(jù)聚合為原始事件當用于MD的集合的源簽名420已經(jīng)標識時(415),則將相應(yīng)的聚合規(guī)則應(yīng)用于MD集合(425)。聚合規(guī)則描述了如下方式,以該方式,通過在MD集合內(nèi)標識事件的邊界將來自于特定域的MD205組織為事件數(shù)據(jù)315(425),例如,如何通過找到離散事件的開始和結(jié)尾來對其進行定位。在一個實現(xiàn)中,在沒有先驗知識的情況下,聚合方法425通過將來自于MD205的多行分組在一起來學習。通常,MD 205包含事件315,該事件315來自于在某種程度上邏輯分組到一起的一行到數(shù)百行長度的任何位置。在執(zhí)行聚合之前,MD集合可以是事先已知的,或可以被分類為單行類型(即,僅包含單行事件)或多行類型(即,可能包含多行事件)。對于那些被分類為單行類型的MD集合,聚合425是簡單的單行類型MD集合被分解,每行作為一個獨立事件。對多行類型MD集合進行處理以用于聚合(425)。在一個實現(xiàn)中,如果1)存在大比例的以空格開始或是空白的行(例如,如果以空格開始或空白的行超過5% ),或2)在第一 N個標點字符中存在太多類型的標點字符,則將MD集合分類為多行類型。例如,如果在每行上找到的前三個標點字符集多于5種模式(例如,“::,,、“!則可能將集合分類為多行。聚合方法425的另一方面是以下能力通過分析MD的采樣來學習是什么組成了行之間的間斷以及因此成為事件之間的邊界,并將該內(nèi)容編成規(guī)則。例如,在一個實現(xiàn)中,聚合方法425將每兩行作為一對進行比較,以尋找統(tǒng)計上的類似結(jié)構(gòu)(例如,使用空白、縮進和時間戳),從而快速地學習哪兩個屬于一起而哪兩個獨立。在一個實現(xiàn)中,聚合425工作如下。對于每一行,首先檢查行是否以時間戳開始。如果是,則中斷。通常,以時間戳開始的行是新事件的開始。對于不是以時間戳開始的行,將當前行與之前的行合并,以查看該“行對”以一行在另一行之前的方式出現(xiàn)的頻率(作為MD采樣中總對的百分比)。使用行簽名來取代行,其中行簽名是行的更穩(wěn)定版本,不受簡單數(shù)字和文本改變的影響。在該實現(xiàn)中,可以通過將行轉(zhuǎn)換為字符串來創(chuàng)建簽名,其中字符串由引導空白、行上的任何標點以及行的首詞連接。將行“10:29:03 Host 191. 168. O. Irebooting :normally (重啟正常)”轉(zhuǎn)換為 “ ..Host. ”?,F(xiàn)在,該當前行簽名可以與之前的行簽名連接(即,signaturel與signature〗結(jié)合),并且用作間斷規(guī)則表中的組合鍵。間斷規(guī)則表將該組合鍵映射到間斷規(guī)則,其確定在兩行之間是否應(yīng)該存在“間斷”(即,它們是否是不同事件的部分)。間斷規(guī)則可以具有置信度,并且更可信的規(guī)則可以覆蓋不太可信的規(guī)則。可以通過分析兩行的共現(xiàn)(co-occurrence)數(shù)據(jù)和它們簽名相鄰出現(xiàn)的百分比來自動創(chuàng)建間斷規(guī)則。如果兩個行簽名高度共現(xiàn),則新規(guī)則將推薦在它們之間不間斷??商鎿Q地,如果它們極少共現(xiàn),則新規(guī)則將推薦在它們之間間斷。例如,如果行簽名A之后跟著行簽名B的次數(shù)大于看到A次數(shù)的 20%,那么可以創(chuàng)建間斷規(guī)則以推薦在它們之間不間斷。還可以基于在另一行簽名之后/之前的行簽名的原始數(shù)量來創(chuàng)建規(guī)則。例如,如果假設(shè)行簽名后跟著十個不同的行簽名,則創(chuàng)建規(guī)則,該規(guī)則推薦在它們之間間斷。如果在間斷規(guī)則表中沒有間斷規(guī)則,則默認行為是間斷的,并且假設(shè)兩行來自不同事件。通過處理每個兩行的對、更新行簽名以及共現(xiàn)統(tǒng)計,以及應(yīng)用和學習相應(yīng)的間斷規(guī)則來使處理前進。以規(guī)則的間隔,將間斷規(guī)則表寫出至硬盤或永久性存儲裝置。I. B時間戳標識一旦已經(jīng)將輸入的時間序列流205聚合為獨立事件315,則將事件及其事件數(shù)據(jù)輸入到時間戳標識步驟320中,該步驟確定時間序列事件數(shù)據(jù)是否包含如下標志,該標志指示匹配于一個已知時間戳格式的集合。如果包含,則認為數(shù)據(jù)具有來自于已知域的時間戳,并且執(zhí)行提取330。否則,執(zhí)行內(nèi)插340。I. C時間戳提取如果已經(jīng)針對事件標識了已知域,則將事件315作為對時間戳提取步驟330的輸入,其中提取來自于原始事件數(shù)據(jù)的時間戳,并且將其隨同事件傳遞到編制索引處理220。在示例性實現(xiàn)中,對來自于動態(tài)排序列表的潛在時間戳格式模式進行迭代,以此進行時間戳提取330,從而提取時間,該時間將被記錄為從Unix epoch (O秒、O分鐘、O小時,1970年I月I日,協(xié)調(diào)世界時)開始已過去的秒數(shù),不包括潤秒。此外,該實現(xiàn)考慮時區(qū)信息并且將時間規(guī)范化為公共偏移。為了提高性能,使用前移算法來確定該列表的排序,其中只要發(fā)現(xiàn)匹配,就將匹配模式移動到列表的開始。在此類實現(xiàn)中,最先并且最經(jīng)常地檢查最頻繁出現(xiàn)的模式,以改進性能。可以這樣維護前移列表在每個源的基礎(chǔ)上,針對所有時間序列數(shù)據(jù)源一起維護(利用單個源中的格式很可能相似的事實),或按照某些其他配置來維持。I. C時間戳內(nèi)插在事件不包含來自于已知域的時間戳的情況下,基于事件的上下文將時間戳分配給事件。在一個實現(xiàn)中,從來自于同一時間序列數(shù)據(jù)流的前一和后一事件315的時間戳線性內(nèi)插,而得出時間戳(340)。如果這些事件也不包含來自于已知域的時間戳,則可以將更早和/或更晚的事件用于內(nèi)插。時間戳提取模塊330將來自每個時間序列數(shù)據(jù)流的每100個事件(或某些其他可配置的周期)的時間戳自動存儲一次,以促進時間戳內(nèi)插(340)。在另一實現(xiàn)中,基于與包括獲取時間、創(chuàng)建時間或其他上下文的元時間數(shù)據(jù)的全部時間序列數(shù)據(jù)流205相關(guān)聯(lián)的事件進行時間戳內(nèi)插(340)。II.編制素引處理回到圖2,在編制索引處理220中,基于輸入的事件數(shù)據(jù)215創(chuàng)建索引。編制索引處理220在利用更多事件擴展索引集合時,以在線方式組織和優(yōu)化索引集合。在圖5中示出了示例TSSE編制索引處理220,在一個實現(xiàn)中,其包括多個步驟,這些步驟包括時間分段510、分割520、歸檔530、分配540、插入550、執(zhí)行次級存儲560、在次級存儲中合并時間段570以及在次級存儲中終止時間段580。II. A時間分段
通常,使用基于時間的運算符來查詢、更新以及終止由TSSE編制索引的事件。通過在按照時間組織的時間段集合上對索引的分量進行哈希運算,則這些運算符的效率和性能可以顯著改進。當然,時間分段的最終效率取決于硬件配置、事件到達的順序以及如何對其進行查詢,因此不存在單個最佳的時間分段策略。在一個實現(xiàn)中,使用具有統(tǒng)一擴展的時間段。例如,每個時間段可以處理一個小時的數(shù)據(jù)。備選策略可以改變從一個時段延伸到另一時段的時間段。例如,時間分段策略可以指定早于今天的事件的時間段是3小時時間段,但是按照小時來對出現(xiàn)在過去24小時期間內(nèi)的事件的時間段進行哈希運算。在該信息處理示例中,時間段可以覆蓋從01-15-200512:00:00到01-15-2005 14:59:59的時段。為了進一步改進效率,在主存儲器(即,RAM)中使用懶惰分配策略(即,盡可能地晚)將時間段實例化。在存儲器中,時間段具有最大容量,并且當它們達到極限時,將它們提交給硬盤并且由新時間段替換。時間段存儲大小是時間分段策略的另一元素,并且其還隨著時間范圍的大小而改變。最終,時間段策略通常迫使(a)時間段不重疊,并且(b)覆蓋所有可能的進入時間戳。在按照時間對事件編制索引的步驟510中,基于事件的時間戳和索引的時間分段策略來標識事件的合適的時間段。將每個進入事件215分配(510)給時間段,其中來自于該事件的時間戳與該時間段的時間標準相匹配。在一個實現(xiàn)中,使用由開始時間和結(jié)束時間限定的半開放間隔,其中開始時間包含邊界,而結(jié)束時間排除邊界。這樣做以便使得在時間段邊界上出現(xiàn)的事件被唯一分配給一個時間段。根據(jù)信息處理環(huán)境中示出的示例,可以將具有時間戳01-15-200512:00:01的數(shù)據(jù)庫服務(wù)器事件分配給上述時間段。II. B 分_丨一旦已經(jīng)針對事件標識(510) 了合適的時間段,則對原始事件數(shù)據(jù)進行分割(520)。片段(也稱為標志)是進入事件文本的子串,并且分割520是關(guān)于進入事件數(shù)據(jù)的分割算法所隱含的片段集合。片段字串可以與另一個子串重疊,但是如果重疊,則其必須全部包含在子串內(nèi)。允許將該屬性遞歸地應(yīng)用于所包含的子串,從而使片段層級形成關(guān)于進入文本的樹。在一個實現(xiàn)中,通過選擇兩個互斥的字符集合來執(zhí)行分割520,這兩個互斥的字符集合稱作次間斷符(breaker)和主間斷符。在分割原始數(shù)據(jù)期間,只要遇到次間斷符要或主間斷字符,便發(fā)出片段,其對應(yīng)于在序列的一端具有至少一個主間斷符的任何字節(jié)序列。例如在分割期間,如果發(fā)現(xiàn)次間斷字符,那么記錄如下片段,該片段對應(yīng)于當前遇到的次間斷符開始向后直到遇到的最后主間斷符所引導的字符序列。如果遇到主間斷符,則向后引導至最后主間斷符或最后的次間斷符(以最近出現(xiàn)的為準)的字符序列確定將要記錄的下一分段。分割520規(guī)則描述了如何將事件數(shù)據(jù)劃分為片段525 (也稱為標志)。在一個實現(xiàn)中,分割規(guī)則檢驗事件內(nèi)可能的分隔符或標點符號,例如,逗號、空格或分號。分割的重要方面是如下能力,即不僅標識獨立的片段525,還標識重疊的片段。例如,可以將電子郵件地址的文本“bob. smith @ corp. com”分為獨立和重疊的片段;< bob. smith >、<@>和< corp. com >可以被標識為獨立的片段,并且<< bob. smith > <@ > < corp. com > >也可以被標識為重疊的片段。如上所述,在一個實現(xiàn)中,分割520使用針對主間斷符和次間斷符的兩層系統(tǒng)。主間斷是界定最外片段525的分隔符或標點。示例包括空格、制表符以及新行。次間斷是將較大片段分為子片段的分隔符或標點符號,例如句號、逗號和等號。在一個實現(xiàn)中,將更復雜的分隔符和標點符號組合用于處理復雜的分割任務(wù)520,例如,處理 應(yīng)用服務(wù)器日志文件中的Java異常。在示出的信息處理示例中的分割示例,可以使用空白作為主間斷符,而使用句號作為次間斷符,從而劃分IP地址。因此,針對原始文本“192. 168. I. I”的片段可以是“192”“192.168”“192.168.1”“192.168.1.1”在另一實現(xiàn)中,某些片段可以表示已知實體,該實體可以通過算法或通過人工添加語義而被標記和進一步理解。例如,在上述表示中,“192. 168. I. I”可以理解為IP地址??梢砸远喾N方式通過算法來執(zhí)行已命名實體提取。在一個實現(xiàn)中,將來自于遍及多個事件的同一片段的片段值或片段形式與已知值或已知形式的實體字典進行比較。在另一實現(xiàn)中,將實體提取技術(shù)用于標識數(shù)據(jù)內(nèi)的語義實體。在一個實現(xiàn)中,可以將搜索樹或規(guī)則表達式應(yīng)用于提取和驗證例如IP地址或電子郵件地址。提取的目標是輔助分割處理520并且向數(shù)據(jù)提供語義值。II. C將事件歸檔并且為事件編制索引在處理中的該點處,進入事件具有時間戳215、片段525和與其相關(guān)聯(lián)的時間段515。為了創(chuàng)建稍后將用于在搜索處理中執(zhí)行查找的永久數(shù)據(jù)結(jié)構(gòu),存儲具有分割的事件的原始數(shù)據(jù),創(chuàng)建將片段和時間戳映射為事件數(shù)據(jù)存儲中偏移的索引,并且計算和存儲與該索引相關(guān)的元數(shù)據(jù)。由于TSSE近似實時地容忍新事件和新搜索兩者的到達,因此系統(tǒng)優(yōu)選地要仔細管理對盤的訪問。對于索引,這通過將索引創(chuàng)建分為兩個獨立階段來實現(xiàn)熱編制索引(hotindexing)和暖編制索引(warm indexing)。熱索引全部在RAM中管理、被優(yōu)化用于最小可能的插入時間、是不可搜索的并且不持續(xù)?!芭彼饕强伤阉鞯牟⑶沂浅掷m(xù)的,但是不可改變。當需要熱索引是可搜索的或持續(xù)的時,將它們轉(zhuǎn)換為暖索引。在圖5中示出的實現(xiàn)中,熱索引555包含片段的封裝數(shù)組、事件地址及其相關(guān)聯(lián)時間戳的封裝數(shù)組、以及將片段與其具有時間戳的事件地址相關(guān)聯(lián)的記錄列表(postingslist)。出于性能原因,封裝數(shù)組可以具有與其相關(guān)聯(lián)的哈希表,以提供對副本的快速移除。當對進入事件編制索引時,使用片段數(shù)組及其相關(guān)聯(lián)的哈希,來針對副本對事件的每個片段進行測試。還針對副本參照事件地址數(shù)組及其相關(guān)聯(lián)的哈希來對事件地址進行測試。如果屬性之一是副本,則使用已經(jīng)插入封裝數(shù)組的該副本的實例。否則,將新片段或事件地址復制到合適的表550中,并且更新相關(guān)聯(lián)的哈希表。當事件被插入熱索引時,使用與每個封裝數(shù)組相關(guān)聯(lián)的空間。當熱片的一個封裝數(shù)組填滿時或當熱片的一個哈希表超過使用閾值(例如,如果超過一半的哈希表處于使用中)時,認為熱片是“飽滿的(at capacity)”。一旦熱索引達到容量540,則其不能接受更多片段用于編制索引。取而代之的是,將其轉(zhuǎn)換為暖索引,提交到盤560并且以新的空熱索引取代。該特定系統(tǒng)的另一特征是推理編制索引?;谳^早的編制索引處理,作為范例,可以使用所有或部分的代表性、已完成時間段來初始化新的時間段。換言之,通過保留可能合理地期望出現(xiàn)在時間段中的數(shù)據(jù)副本,可以通過推理地初始化部分熱索引來改進編制索引 性能。在一個實施方式中,通過復制片段的封裝數(shù)組及其相關(guān)聯(lián)的來自于較早熱索引的哈希表,來執(zhí)行推理編制索引。然后,利用異常來照常填充熱片,該異常是已經(jīng)為副本測試填充以及準備了片段數(shù)組。由于高度規(guī)則的語言和機器有限的詞匯,與該推理相關(guān)聯(lián)的命中率可能非常高。搜索處理(如下一章節(jié)中描述)允許用戶搜索片段、片段前綴和片段后綴。為了支持這些搜索類型,在一個實現(xiàn)中,可以對片段數(shù)組進行排序,并且然后存儲為封閉的前編碼詞典(blocked front coded lexicon)(此后稱為“前向詞典”)。該數(shù)據(jù)結(jié)構(gòu)使得在有效地執(zhí)行片段和片段前綴查找的同時,還能實現(xiàn)合理量的片段文本壓縮。在執(zhí)行關(guān)于特定片段的搜索時,使用前向詞典中片段的偏移作為查找與其他關(guān)聯(lián)表中所查詢的片段相關(guān)聯(lián)的元數(shù)據(jù)的有效方式。為了處理后綴查找,可以在片段已經(jīng)被字符串反轉(zhuǎn)(此后稱為反轉(zhuǎn)詞典)之后,針對同一片段集合創(chuàng)建封閉的前編碼詞典。而且,填充映射,該映射將反轉(zhuǎn)詞典中的反轉(zhuǎn)片段的偏移轉(zhuǎn)換為前向詞典中的等效非反轉(zhuǎn)片段偏移(此后稱為“反轉(zhuǎn)前向映射”)。當執(zhí)行后綴查找時,將反轉(zhuǎn)詞典中的偏移用作反轉(zhuǎn)前向映射中的偏移。存儲在映射中該位置處的值是合適的偏移,以便用于暖索引中的其他元數(shù)據(jù)數(shù)組。暖索引優(yōu)選地以有效的方式為每個已編制索引的片段提供事件偏移列表。在一個實現(xiàn)中,這可以通過維持已壓縮記錄列表的數(shù)組和相關(guān)聯(lián)的到那些已封裝記錄列表開始的偏移數(shù)組來實現(xiàn)??梢园凑掌纹频捻樞蚓S持置入列表,因此,當執(zhí)行查找時,可以使用片段ID來查找記錄列表偏移數(shù)組的正確條目。記錄列表條目中的值是應(yīng)該用于查找事件地址封裝數(shù)組中事件的偏移。最終,可以為每個已編制索引的片段(例如,片段的第一次和最后一次出現(xiàn)、平均間隔時間以及間隔時間的標準差)提供統(tǒng)計的元數(shù)據(jù)。在編制索引處理過程期間,可以多次填充單個時間段并將其提交給盤560。這將導致在針對單個時間跨度的次級存儲裝置中的多個、可獨立搜索的索引。在示例性實現(xiàn)中,存在合并處理570,其將兩個或更多暖索引作為輸入,并且將它們合并為針對該時間段的單個暖索引。這是性能優(yōu)化并且不是搜索所必需的。
II. D 終 Ih事件此外,在長時間周期上,對時間序列數(shù)據(jù)應(yīng)用編制索引處理220將可能累積大量持久性數(shù)據(jù)。因此,編制索引處理優(yōu)選地包含終止處理580,其基于用戶提供的偏好針對將要刪除的時間段來監(jiān)測數(shù)據(jù)庫。在一個實現(xiàn)中,這些偏好可能包括跟蹤時間窗(“在搜索結(jié)果中不必返回3個月之前的事件”)、時間范圍(“在搜索結(jié)果中不必返回當年I月之前的事件”)、事件的最大數(shù)量(“需要在搜索結(jié)果中返回不超過I百萬個事件”)、或索引的最大總大小(“在消耗超過100GB盤時,盡可能地返回更多有用的搜索結(jié)果”)。針對符合終止標準的任何片,處理周期性地喚醒以及測試暖片集合。在終止時,將暖索引文件及其關(guān)聯(lián)的原始事件數(shù)據(jù)移出活躍索引。不必刪除索引文件。在一個實現(xiàn)中,可以將索引文件流式傳輸?shù)讲惶嘿F的離線存儲裝置。III.榑素處理在圖6中示出了的示例TSSE搜索處理,并且其包括多種方法,用于解析(610)搜 索短語,發(fā)布多個子搜索625從而滿足進入的父搜索,使用子搜索635來修整搜索,以及將子搜索結(jié)果合并(640)到搜索結(jié)果的最終集合中以便呈現(xiàn)給用戶。III. A時間序列搜索語言在搜索處理期間,根據(jù)時間序列搜索語言(TSSL)解析(610)輸入的搜索短語255,從而生成注釋的解析樹615。示例性TSSL語言語義包括采用“name (名稱):valUe(值)”格式的一系列修飾符或命令。某些修飾符可以具有默認的值,并且某些僅可以使用一次,然而某些可以在相同的搜索中以不同的值出現(xiàn)多次。示例包括如下內(nèi)容average :值一使用值時間巾貞計算事件的平均數(shù)量。page:值一由“值”呈現(xiàn)搜索結(jié)果?!爸怠笨梢允敲?、分、小時、日、周或月或任何其他元數(shù)據(jù)元素,例如,源或事件類型。count —計算事件的總數(shù)。daysago :值一搜索最后“值”天內(nèi)的事件。index :值一待搜索的索引,即主要、默認、歷史或由TSSE定義的另一索引。hoursago :值一搜索最后“值”小時數(shù)內(nèi)的事件。eventtype :值一利用與指定“值”匹配的事件類型或標簽搜索事件。host:值一搜索其主機名設(shè)置為指定“值”的事件。這是記錄事件的主機,而不必是生成事件的主機。maxresults :值一將返回結(jié)果的最大數(shù)量。minutesago :值一搜索最后“值”分鐘數(shù)內(nèi)的事件。related :值一利用與一個或多個當前事件相匹配的片段值(例如,404或用戶名)搜索事件。similar :值一利用與當前事件相類似的事件類型搜索事件。sourcetype :值一利用給定的“值”的源類型搜索事件。unexpected ::值一通過0(期望)到9(最不期望)的指定值搜索位于索引中所觀察模式之外的事件。修飾符可以與關(guān)鍵字、通配符、字符串、引用短語和布爾運算符(諸如AND(與)、OR(或)、NOT(非))結(jié)合??梢詫⒗ㄌ栍糜趯⑺阉骱妥铀阉鞫陶Z嵌套在一起。示例搜索短語可以是 “sourcetype : :mysql*sock*NOT (started OR (host foo OR host BAR))maxresults 10 (eventtype baddb OR evettype 8512-3) daysago : :30,,。在一個實現(xiàn)中,定制解析器610處理布爾運算符“NOT”和“OR”并且默認為“AND”。該實現(xiàn)還使用括號處理以消除存在多個運算符時的歧義。否則,其從左至右進行關(guān)聯(lián)。該實現(xiàn)還支持特定的搜索運算符,使用域說明符后跟著劃界元素來指示特定的搜索運算符。例如,搜索“source: :1234”可以表明搜索者(人或系統(tǒng))希望將結(jié)果限制于從特定源ID接收的事件。輸入搜索短語還可以基于特定關(guān)鍵字的映射觸發(fā)自組織(ad hoc)計算612。例如,可以將特定搜索字符串用于指示將周期性地存儲并重新發(fā)布搜索或請求源列表。在該情況下,搜索字符串將連同以下調(diào)度一起存儲在盤上的表中,所述調(diào)度指定應(yīng)該重新發(fā)布搜索的調(diào)度。根據(jù)搜索結(jié)果,在執(zhí)行時可以觸發(fā)額外的動作。例如,可以發(fā)送電子郵件報警、可以更新RSS源、或可以執(zhí)行用戶提供的腳本。觸發(fā)ad hoc計算612的搜索的另一示 例是,指示為稍后使用而保存但不周期性地重新發(fā)布的搜索。假設(shè)搜索解析器610確定應(yīng)該針對搜索字符串來創(chuàng)建注釋的語義樹615,則下一組件(即搜索執(zhí)行引擎620)將使用注釋的語義樹615來向時間分段的索引565發(fā)布子搜索625。在獨立時間段656處將每個子搜索625作為目標。以最有利于修整給定的結(jié)果的排序順序的順序來查詢時間段。例如,如果以逆時間順序?qū)λ阉鹘Y(jié)果排序,則將首先發(fā)布針對最近時間段的子搜索。這允許搜索執(zhí)行引擎620在處理附加(昂貴)的子搜索625之前檢驗子搜索的結(jié)果635。例如,如果特定子搜索返回了足夠的結(jié)果635,則不必繼續(xù)進行附加的子搜索625。一旦結(jié)果集合627已經(jīng)累積到滿足父搜索,則另一模塊將取得結(jié)果并且將它們合并(640)為滿足搜索的單個結(jié)果集合235、237。在一個實現(xiàn)中,該合并處理對來自于每個時間段的結(jié)果執(zhí)行合并排序,以保持它們是按照呈現(xiàn)處理所需的順序。IV.旱現(xiàn)處理如圖7所示,在示例TSSE的示例性實現(xiàn)中的最終處理是呈現(xiàn)240的搜索結(jié)果的準備。不同于當前按照關(guān)鍵字相關(guān)性分級排序呈現(xiàn)非交互性結(jié)果的大規(guī)模搜索引擎,該示例TSSE可以按照時間、事件關(guān)系和關(guān)鍵字相關(guān)性分級組織而呈現(xiàn)結(jié)果。IV. A基于時間的旱.現(xiàn)對于對時間序列數(shù)據(jù)進行編制索引和搜索來說,使用時間作為主要維度呈現(xiàn)結(jié)果(710)是其特有的挑戰(zhàn)。因為現(xiàn)有的大規(guī)模搜索引擎不按照時間組織信息,不考慮基于時間的結(jié)果呈現(xiàn)。然而,TSSE的主要益處是其能夠按照時間屬性編制索引、搜索以及呈現(xiàn)時間序列數(shù)據(jù)??梢赃@樣來呈現(xiàn)結(jié)果基于離散時間范圍或統(tǒng)計來計算聚合以及概括搜索結(jié)果。例如,示例TSSL可以指定僅查看針對特定時間幀的結(jié)果和/或查看按照秒、分鐘、小時、日、周或月呈現(xiàn)的結(jié)果。這樣,可以將搜索窗限制為時間巾貞,并且可以基于從搜索返回的期望的結(jié)果集合的密度將結(jié)果構(gòu)建為最佳視圖。搜索“192. 168. 169. 100 hoursago 24page :seconds”將返回包括關(guān)鍵字“ 192. 168. 169. 100”的時間序列事件,該事件出現(xiàn)在最近24小時內(nèi)并且將按照秒概括顯示結(jié)果。在TSSE的示例性實現(xiàn)中,概括可以包括針對概括窗聚合的概括事件的顯示行和/或按照概括窗對結(jié)果分頁。在上述示例中,每頁搜索結(jié)果呈現(xiàn)可以包括時間上的一秒。示例包括但不限于以下能力·以時間計數(shù)滾動/分頁數(shù)據(jù)(η)結(jié)果;·按照時間滾動/分頁數(shù)據(jù)下一 /上一秒、分鐘、小時、日、年;·指定每個時間巾貞的最大計數(shù);·在分頁的時間幀內(nèi)獲得接下來(η個)結(jié)果_( 一秒內(nèi))獲得接下來的100個結(jié)
果OIV. B元數(shù)據(jù)旱期除了基于時間的呈現(xiàn)710,TSSE的示例優(yōu)選是能夠按照元數(shù)據(jù)特征720呈現(xiàn)結(jié)果的附加聚合和概括,特征諸如數(shù)據(jù)源、數(shù)據(jù)源類型、事件類型或源起主機。這 樣,不僅可以按照時間組織結(jié)果,而且還通過元數(shù)據(jù)聚合和概括來完善結(jié)果。搜索“192. 168. 169. IOOpage :source”將呈現(xiàn)所有具有“ 192. 168. 169. 100” 的結(jié)果,并且將包含結(jié)果的每個數(shù)據(jù)源放在獨立頁上。示例包括但不限于 數(shù)據(jù)源的原始物理位置;·生成數(shù)據(jù)的原始物理機器、傳感器等;·如由編制索引處理動態(tài)分配的數(shù)據(jù)源類型;·如由編制索引處理動態(tài)分配的事件類型。IV. C縮放控制因為時間和特定元數(shù)據(jù)參數(shù)(例如,機器IP地址)可以是連續(xù)的,示例TSSE用戶交互模塊可以包括使用縮放控制730以小的時間增量(秒或分鐘)或元數(shù)據(jù)參數(shù)(不同類別的IP地址)移動。該縮放控制可以與其他元數(shù)據(jù)搜索參數(shù)合,并支持在大量數(shù)據(jù)間快速移動。示例包括但不限于以下能力·針對給定的時間(從任何秒到分鐘、小時等)進行放大以及縮??;·針對特定的數(shù)據(jù)源類型和物理機器位置,針對2005年6月3日上午12:15放大到秒分辨率。IV. P旱現(xiàn)密度控制對于不同類型的用戶(人和系統(tǒng))以及各種類型的時間序列數(shù)據(jù)以及事件(例如,從幾字節(jié)大小的單行事件,到幾兆字節(jié)大小的多行事件),能夠指定結(jié)果的密度是有用的。在一個實現(xiàn)中,可以控制(740)呈現(xiàn)強度,來僅以簡單ASCII文本格式返回和/或顯示原始數(shù)據(jù),而沒有任何元數(shù)據(jù)??商鎿Q地,可以利用作為富XML的完整元數(shù)據(jù)返回或顯示同
一結(jié)果。V.實現(xiàn)可以以很多不同的方式實現(xiàn)TSSE。在一個方法中,在各個圖中示出的每個框以軟件作為獨立的處理實現(xiàn)。所有處理都可以運行在單個機器上或可以對它們進行劃分,以便運行在獨立的邏輯或物理機器上。在備選實施方式中,以計算機硬件、固件、軟件和/或它們的組合實現(xiàn)本發(fā)明。本發(fā)明的裝置可以以計算機程序產(chǎn)品實現(xiàn),其中計算機程序產(chǎn)品有形地實現(xiàn)在機器可讀存儲設(shè)備中,以便由可編程處理器執(zhí)行;并且本發(fā)明的方法步驟可以由可編程處理器執(zhí)行,該可編程處理器執(zhí)行程序指令以通過對輸入數(shù)據(jù)進行操作并且生成輸出來執(zhí)行本發(fā)明的功能。有利的是,本發(fā)明可以以一個或多個計算機程序?qū)崿F(xiàn),這些計算機程序可在可編程系統(tǒng)上執(zhí)行,該可編程系統(tǒng)包括至少一個耦合的可編程處理器,以從數(shù)據(jù)存儲系統(tǒng)接收數(shù)據(jù)和指令,并且向數(shù)據(jù)存儲系統(tǒng)傳輸數(shù)據(jù)和指令;至少一個輸入設(shè)備以及至少一個輸出設(shè)備。每個計算機程序可以通過高級過程或面向?qū)ο缶幊陶Z言實現(xiàn),或者如果希望,可以通過匯編或機器語言實現(xiàn);并且在任何情況下,該語言可以是編譯或解釋語言。合適的處理器例如包括通用和專用微處理器兩者。通常,處理器將從只讀存儲器和/或隨機訪問存儲器接收指令和數(shù)據(jù)。通常,計算機將包括一個或多個用于存儲數(shù)據(jù)文件的大容量存儲設(shè)備;此類設(shè)備包括磁盤,諸如內(nèi)部硬盤和可移動盤;磁光盤;以及光盤。使用有形地實現(xiàn)計算機程序指令和數(shù)據(jù)的存儲設(shè)備包括所有形式的非易失性存儲器,例如包括半導體存儲器設(shè)備,諸如EPROM、EEPROM和閃存設(shè)備;磁盤,諸如內(nèi)部硬盤和可移動盤;磁光盤;以及CD-ROM盤??梢酝ㄟ^或集成ASIC (專用集成電路)和其他形式的硬件對任何前述內(nèi)容進行補充。因此,盡管詳細描述包含很多細節(jié),但是這些不應(yīng)被認為對本發(fā)明范圍的限制,而且僅作為對本發(fā)明的不同示例和方面的說明。應(yīng)該理解,本發(fā)明的范圍包括未在上文詳細討論的其他實施方式。在不脫離如所附權(quán)利要求書限定的本發(fā)明的精神和范圍的情況下,可以在本文公開的本發(fā)明的配置、操作和方法以及裝置的細節(jié)中進行各種修改、改變和變 形,其對于本領(lǐng)域的技術(shù)人員來說易見的。因此,本發(fā)明的范圍應(yīng)由所附權(quán)利要求書及其法律等同物確定。
權(quán)利要求
1.一種用于通過網(wǎng)絡(luò)搜索時間序列數(shù)據(jù)的方法,包括 采用計算設(shè)備從信息處理環(huán)境收集至少一個時間序列數(shù)據(jù)流,并且布置所述至少一個時間序列數(shù)據(jù)流以用于搜索,其中所述計算設(shè)備執(zhí)行動作,所述動作包括 基于與所述至少一個時間序列數(shù)據(jù)流對應(yīng)的域聚合所述至少一個時間序列數(shù)據(jù)流中的數(shù)據(jù); 給所述至少一個時間序列數(shù)據(jù)流標記時間戳,以生成包括至少一部分經(jīng)聚合數(shù)據(jù)的至少一個具有時間戳的事件; 基于所述時間戳給所述具有時間戳的事件編制時間索引以創(chuàng)建時間劃分索引;以及 采用所述計算設(shè)備基于接收到的時間序列數(shù)據(jù)搜索請求搜索所述時間劃分索引。
2.根據(jù)權(quán)利要求I所述的方法,其中所述收集所述至少一個時間序列數(shù)據(jù)流進一步包括采用腳本執(zhí)行包括以下至少一個的動作收集、預處理和向所述計算設(shè)備遞送所述至少一個數(shù)據(jù)流。
3.根據(jù)權(quán)利要求I所述的方法,其中所述動作進一步包括確定與所述至少一個時間序列數(shù)據(jù)流對應(yīng)的至少一個域。
4.根據(jù)權(quán)利要求I所述的方法,其中所述動作進一步包括采用所述經(jīng)聚合數(shù)據(jù)的至少一個特征來確定每個具有時間戳的事件的至少一個邊界。
5.根據(jù)權(quán)利要求I所述的方法,其中所述具有時間戳的事件表示行為的統(tǒng)計和模式中的至少一個。
6.根據(jù)權(quán)利要求I所述的方法,其中所述動作進一步包括按照每個具有時間戳的事件的對應(yīng)域?qū)哂袝r間戳的事件進行分類。
7.根據(jù)權(quán)利要求I所述的方法,其中所述動作進一步包括對利用未知時間戳格式在域中被分類的每個事件的所述時間戳進行內(nèi)插。
8.根據(jù)權(quán)利要求I所述的方法,其中所述動作進一步包括至少部分地基于時間戳將每個具有時間戳的事件分配給時間劃分索引。
9.根據(jù)權(quán)利要求I所述的方法,其中所述時間序列數(shù)據(jù)流包括以下至少一個服務(wù)器日志,事務(wù)記錄,以及記錄的測量。
10.一種用于通過網(wǎng)絡(luò)搜索時間序列數(shù)據(jù)的裝置,包括 網(wǎng)絡(luò)接口,用于支持通過所述網(wǎng)絡(luò)的通信; 存儲有指令的存儲器; 處理器,用于執(zhí)行所述指令以允許動作的執(zhí)行,所述動作包括 從信息處理環(huán)境收集至少一個時間序列數(shù)據(jù)流, 布置所述至少一個時間序列數(shù)據(jù)流以用于搜索,其中所述布置的動作包括 基于與所述至少一個時間序列數(shù)據(jù)流對應(yīng)的域聚合所述至少一個時間序列數(shù)據(jù)流中的數(shù)據(jù); 給所述至少一個時間序列數(shù)據(jù)流標記時間戳,以生成包括至少一部分經(jīng)聚合數(shù)據(jù)的至少一個具有時間戳的事件; 基于所述時間戳給所述具有時間戳的事件編制時間索引以創(chuàng)建時間劃分索引; 接收針對所述時間序列數(shù)據(jù)的搜索請求;以及 搜索所述時間劃分索引以提供針對所述搜索請求的結(jié)果。
11.根據(jù)權(quán)利要求10所述的裝置,其中所述收集所述至少一個時間序列數(shù)據(jù)流進一步包括采用腳本執(zhí)行包括以下至少一個的動作收集、預處理和向所述計算設(shè)備遞送所述至少一個數(shù)據(jù)流。
12.根據(jù)權(quán)利要求10所述的裝置,其中所述動作進一步包括確定與所述至少一個時間序列數(shù)據(jù)流對應(yīng)的至少一個域。
13.根據(jù)權(quán)利要求10所述的裝置,其中所述動作進一步包括采用所述經(jīng)聚合數(shù)據(jù)的至少一個特征來確定每個具有時間戳的事件的至少一個邊界。
14.根據(jù)權(quán)利要求10所述的裝置,其中所述具有時間戳的事件表示行為的統(tǒng)計和模式中的至少一個。
15.根據(jù)權(quán)利要求10所述的裝置,其中所述動作進一步包括按照每個具有時間戳的事件的對應(yīng)域?qū)哂袝r間戳的事件進行分類。
16.根據(jù)權(quán)利要求10所述的裝置,其中所述動作進一步包括對利用未知時間戳格式在域中被分類的每個事件的所述時間戳進行內(nèi)插。
17.根據(jù)權(quán)利要求10所述的裝置,其中所述動作進一步包括至少部分地基于時間戳將每個具有時間戳的事件分配給時間劃分索引。
18.根據(jù)權(quán)利要求10所述的方法,其中所述時間序列數(shù)據(jù)流包括以下至少一個服務(wù)器日志,事務(wù)記錄,以及記錄的測量。
19.一種處理器可讀的非易失性存儲介質(zhì),包括用于通過網(wǎng)絡(luò)搜索時間序列數(shù)據(jù)的指令,其中處理器執(zhí)行所述指令允許動作,所述動作包括 采用計算設(shè)備從信息處理環(huán)境收集至少一個時間序列數(shù)據(jù)流,并且布置所述至少一個時間序列數(shù)據(jù)流以用于搜索,其中所述計算設(shè)備執(zhí)行動作,所述動作包括 基于與所述至少一個時間序列數(shù)據(jù)流對應(yīng)的域聚合所述至少一個時間序列數(shù)據(jù)流中的數(shù)據(jù); 給所述至少一個時間序列數(shù)據(jù)流標記時間戳,以生成包括至少一部分經(jīng)聚合數(shù)據(jù)的至少一個具有時間戳的事件; 基于所述時間戳給所述具有時間戳的事件編制時間索引以創(chuàng)建時間劃分索引;以及 采用所述計算設(shè)備基于接收到的時間序列數(shù)據(jù)搜索請求搜索所述時間劃分索引。
20.根據(jù)權(quán)利要求19所述的介質(zhì),其中所述收集所述至少一個時間序列數(shù)據(jù)流進一步包括采用腳本執(zhí)行包括以下至少一個的動作收集、預處理和向所述計算設(shè)備遞送所述至少一個數(shù)據(jù)流。
21.根據(jù)權(quán)利要求19所述的介質(zhì),其中所述動作進一步包括確定與所述至少一個時間序列數(shù)據(jù)流對應(yīng)的至少一個域。
22.根據(jù)權(quán)利要求19所述的介質(zhì),其中所述動作進一步包括采用所述經(jīng)聚合數(shù)據(jù)的至少一個特征來確定每個具有時間戳的事件的至少一個邊界。
23.根據(jù)權(quán)利要求19所述的介質(zhì),其中所述具有時間戳的事件表示行為的統(tǒng)計和模式中的至少一個。
24.根據(jù)權(quán)利要求19所述的介質(zhì),其中所述動作進一步包括按照每個具有時間戳的事件的對應(yīng)域?qū)哂袝r間戳的事件進行分類。
25.根據(jù)權(quán)利要求19所述的介質(zhì),其中所述動作進一步包括對利用未知時間戳格式在域中被分類的每個事件的所述時間戳進行內(nèi)插。
26.根據(jù)權(quán)利要求19所述的介質(zhì),其中所述動作進一步包括至少部分地基于時間戳將每個具有時間戳的事件分配給時間劃分索引。
27.根據(jù)權(quán)利要求19所述的介質(zhì),其中所述時間序列數(shù)據(jù)流包括以下至少一個服務(wù)器日志,事務(wù)記錄,以及記錄的測量。
28.一種用于通過網(wǎng)絡(luò)搜索時間序列數(shù)據(jù)的系統(tǒng),包括 客戶端設(shè)備,包括 網(wǎng)絡(luò)接口,用于支持通過所述網(wǎng)絡(luò)的通信; 存儲有指令的存儲器; 處理器,用于執(zhí)行所述指令以允許動作的執(zhí)行,所述動作包括傳送搜索請求;以及 服務(wù)器設(shè)備,包括 網(wǎng)絡(luò)接口,用于支持通過所述網(wǎng)絡(luò)的通信; 存儲有指令的存儲器; 處理器,用于執(zhí)行所述指令以允許動作的執(zhí)行,所述動作包括 從信息處理環(huán)境收集至少一個時間序列數(shù)據(jù)流, 布置所述至少一個時間序列數(shù)據(jù)流以用于搜索,其中所述布置的動作包括 基于與所述至少一個時間序列數(shù)據(jù)流對應(yīng)的域聚合所述至少一個時間序列數(shù)據(jù)流中的數(shù)據(jù); 給所述至少一個時間序列數(shù)據(jù)流標記時間戳,以生成包括至少一部分經(jīng)聚合數(shù)據(jù)的至少一個具有時間戳的事件; 基于所述時間戳給所述具有時間戳的事件編制時間索引以創(chuàng)建時間劃分索引; 從所述客戶端設(shè)備接收所述搜索請求;以及 搜索所述時間劃分索引以向所述客戶端設(shè)備提供針對所述搜索請求的結(jié)果。
29.根據(jù)權(quán)利要求28所述的系統(tǒng),其中所述收集所述至少一個時間序列數(shù)據(jù)流進一步包括采用腳本執(zhí)行包括以下至少一個的動作收集、預處理和向所述計算設(shè)備遞送所述至少一個數(shù)據(jù)流。
30.根據(jù)權(quán)利要求28所述的系統(tǒng),其中所述服務(wù)器設(shè)備的所述動作進一步包括確定與所述至少一個時間序列數(shù)據(jù)流對應(yīng)的至少一個域。
31.根據(jù)權(quán)利要求28所述的系統(tǒng),其中所述動作進一步包括采用所述經(jīng)聚合數(shù)據(jù)的至少一個特征來確定每個具有時間戳的事件的至少一個邊界。
32.根據(jù)權(quán)利要求28所述的系統(tǒng),其中所述具有時間戳的事件表示行為的統(tǒng)計和模式中的至少一個。
33.根據(jù)權(quán)利要求28所述的系統(tǒng),其中所述服務(wù)器設(shè)備的所述動作進一步包括按照每個具有時間戳的事件的對應(yīng)域?qū)哂袝r間戳的事件進行分類。
34.根據(jù)權(quán)利要求28所述的方法,其中所述服務(wù)器設(shè)備的所述動作進一步包括對利用未知時間戳格式在域中被分類的每個事件的所述時間戳進行內(nèi)插。
35.根據(jù)權(quán)利要求28所述的系統(tǒng),其中所述服務(wù)器設(shè)備的所述動作進一步包括至少部分地基于時間戳將每個具有時間戳的事件分配給時間劃分索引。
36.根據(jù)權(quán)利要求28所述的系統(tǒng),其中所述時間序列數(shù)據(jù)流包括以下至少一個服務(wù)器日志,事務(wù)記錄,以及記錄 的測量。
全文摘要
本發(fā)明涉及時間序列搜索引擎。根據(jù)本發(fā)明的方法和裝置基于搜索而提供組織、編制索引、搜索和呈現(xiàn)時間序列數(shù)據(jù)的能力。時間序列數(shù)據(jù)通常是一個或多個連續(xù)流中出現(xiàn)的具有時間戳的記錄的序列,其表示某些類型的活動。在一個實施方式中,利用規(guī)格化時間戳將時間序列數(shù)據(jù)組織為離散事件,并且通過時間和關(guān)鍵字對這些事件編制索引。接收搜索請求,并且整體或部分地基于時間索引機制、關(guān)鍵字索引機制或搜索時計算的統(tǒng)計索引來檢索相關(guān)事件信息。
文檔編號G06F17/30GK102831214SQ201210293010
公開日2012年12月19日 申請日期2007年10月5日 優(yōu)先權(quán)日2006年10月5日
發(fā)明者M·鮑姆, D·卡拉索, R·達斯, R·格林, B·哈爾, N·米利, B·墨菲, S·索爾金, A·斯特克特, E·M·斯旺 申請人:斯普蘭克公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1