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