日志結構化信息提取方法及裝置的制造方法
【技術領域】
[0001 ]本發(fā)明設及計算機領域,特別是設及日志結構化信息提取方法及裝置。
【背景技術】
[0002] 日志數(shù)據(jù)是大數(shù)據(jù)的重要組成部分。日志數(shù)據(jù)的分析在網(wǎng)站用戶行為分析、系統(tǒng) 運維統(tǒng)計等方面都是必不可少的。把日志的結構化信息提取出來,再基于提取后的結構化 數(shù)據(jù)進行分析的方法被普遍接受。
[0003] 目前日志結構化信息的提取方法不夠靈活,基本都是針對某種具體的日志需要進 行編碼提取結構化信息。不同的日志格式需要進行不同的編碼工作,對于同一日志,由日志 格式或業(yè)務變化引起的變更也需要修改相應的代碼,無法自適應其變化。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明實施例的目的是提供日志結構化信息提取方法及裝置,W實現(xiàn)自適應自動 提取日志結構化數(shù)據(jù)的目的。
[000引為實現(xiàn)上述目的,本發(fā)明提供了如下方案:
[0006] -種日志結構化信息提取方法,包括:
[0007] 獲取日志文件和與之相應的日志DDL文件,所述日志孤L文件中包含所述日志文件 中結構化信息的字段解析規(guī)則和字段定義;
[0008] 根據(jù)所述字段解析規(guī)則從所述日志文件中提取出字段并存儲至輸出文件;
[0009 ]生成與所述輸出文件對應的字段類型說明文件。
[0010] -種日志結構化信息提取裝置,包括:
[00川獲取單元,獲取日志文件和與之相應的日志DDL文件,所述日志DDL文件中包含所 述日志文件中結構化信息的字段解析規(guī)則和字段定義;
[0012] 任務單元,用于根據(jù)所述字段解析規(guī)則從所述日志文件中提取出字段并存儲至輸 出文件;
[0013] 第一生成單元,用于生成與所述輸出文件對應的字段類型說明文件。
[0014] 在本發(fā)明實施例中,上游系統(tǒng)可向下游系統(tǒng)提供日志DDL文件,運樣下游系統(tǒng)可根 據(jù)日志DDL文件自動提取日志的結構化數(shù)據(jù),后續(xù)可加載到目標數(shù)據(jù)庫供后續(xù)分析。在此過 程中,下游系統(tǒng)無需理解晦澀難懂的日志。同時,在日志格式變化或業(yè)務邏輯變化后,上游 系統(tǒng)只需要提供新的日志DDL文件,下游系統(tǒng)就可W依據(jù)新的日志DDL文件對日志進行解 析。因此,本發(fā)明實施例所提供技術方案能夠自適應由日志格式變化或業(yè)務邏輯變化引起 的字段解析規(guī)則變化,如分隔符變化、字段增減、字段位置變化等。只要結構化數(shù)據(jù)的數(shù)據(jù) 接口不變,就不會對下游系統(tǒng)有影響,下游系統(tǒng)也就不需要做任何修改。此方案,對于分隔 符變化和字段位置變化的情況,完全可W保持結構化數(shù)據(jù)的數(shù)據(jù)接口不變,也就是說運些 變化對下游系統(tǒng)而言是透明的。對于字段增減的情況,其實數(shù)據(jù)接口已經(jīng)發(fā)生改變,但是此 方案仍然能夠自適應地提取結構化數(shù)據(jù),如果下游系統(tǒng)沒有使用到受影響的字段,也不需 要做任何修改。
【附圖說明】
[0015] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例中所 需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施 例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可W根據(jù)運些附圖 獲得其他的附圖。
[0016] 圖1-4為本發(fā)明實施例提供的日志結構化信息提取方法示例性流程圖;
[0017] 圖5、6為本發(fā)明實施例提供日志結構化信息提取裝置結構示意圖。
【具體實施方式】
[0018] 下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍。
[0019] 為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖和具體實 施方式對本發(fā)明作進一步詳細的說明。
[0020] 關系數(shù)據(jù)庫存儲的數(shù)據(jù)是結構化的數(shù)據(jù),導出成文本就是固定分割符分割的數(shù) 據(jù)。與之對應的是半結構化數(shù)據(jù),比如xml, json,html格式等;非結構化數(shù)據(jù)指的是圖片,音 頻和視頻文件等。
[0021] 與傳統(tǒng)的結構化數(shù)據(jù)(如數(shù)據(jù)庫表)相比,日志由于其靈活多變的格式,不管對人 的理解還是對計算機的處理都不是很友好。
[0022] 目前日志結構化信息的提取方法不夠靈活,基本都是針對某種具體的日志需要進 行編碼提取結構化信息。
[0023] 例如,基于固定分隔符提取日志的提取方法,運種提取方式適合日志格式比較固 定的日志,如W單分割符' ?;蚨喾指舴? 分割的日志。
[0024] 但是,基于固定分隔符提取日志的提取方法只適用于格式固定的日志,無法處理 其他格式的日志。
[002引還有基于正則表達式的提取方式。正規(guī)表達式又稱正規(guī)表示法、常規(guī)表示法 (Regular Expression,在代碼中常簡寫為regex、regexp或RE)。正則表達式使用單個字符 串來描述、匹配一系列符合某個句法規(guī)則的字符串。在很多文本編輯器里,正則表達式通常 被用來檢索、替換那些符合某個模式的文本。許多程序設計語言都支持利用正則表達式進 行字符串操作。例如,在Perl中就內(nèi)建了一個功能強大的正則表達式引擎(引用自百度百 科:http : //baike .baidu. com/1 ink?u;rl = BCPBnr3ePyeoGzyQBS恥DNSxCn化fpCNSQEII HTB31YN7IMCxkLLvlZ曲4vNVda0i jM5icMh46nNzMgqJB19q)?;谡齽t表達式的日志提取方 法能夠處理各種格式的日志,也是目前業(yè)界普遍的一種做法。
[0026]但是在程序中硬編碼正則表達式的方法不夠靈活,只能處理單一格式的日志,而 且無法自適應由業(yè)務需求或日志格式變化引起的變更。同時,提取的數(shù)據(jù)沒有與其直接關 聯(lián)的元數(shù)據(jù)信息,無法自動導入目標數(shù)據(jù)庫進行分析。另一方面,對于固定分隔符分割的日 志,正則表達式提取方法效率較差。
[0027] 傳統(tǒng)的日志提取方法需要日志使用方開發(fā)人員先理解日志的內(nèi)容,然后根據(jù)應用 的需求提取需要的信息。運種方法存在若干弊端:
[0028] -方面,在很多機構中,特別是一些大型企業(yè),日志的所有方和日志的使用方往往 不在同一個團隊,甚至不在同一部口。另一方面,日志格式靈活多變,有的日志極其復雜,對 日志使用方而言如同天書,很難理解,而且目前沒有一種規(guī)范來準確地描述日志的格式和 業(yè)務含義。由于W上原因,為了提取日志的結構化信息,使用方往往要花費大量的時間和精 力在溝通和理解所需的各種日志的格式。
[0029] 為了支持業(yè)務的發(fā)展,IT系統(tǒng)往往要做相應的變更。由此導致的日志格式變更很 容易導致下游依賴相應日志的應用不能正確地解析變更后的日志,從而影響相應的業(yè)務系 統(tǒng)。即使從管理角度可W解決變更問題,但是成本卻很高??赡芤粋€很小的日志格式變更, 就要修改下游的若干系統(tǒng),每個系統(tǒng)都需要測試和上線。
[0030] 為實現(xiàn)自適應自動提取日志結構化數(shù)據(jù),本發(fā)明提出了日志結構化信息提取方法 及日志結構化信息提取裝置。
[0031] 日志結構化信息提取裝置可為日志處理引擎。
[0032] 圖1-圖3示出了日志處理引擎所執(zhí)行的日志結構化信息提取方法的示例性流程 圖,其至少可包括如下步驟:
[0033] S1:獲取日志文件和與之相應的日志孤L文件。
[0034] 更具體的是,是從日志所有方(上游系統(tǒng))獲取上述日志文件和日志DDUData Definition L曰ngu曰ge)文件。
[0035] 該日志孤L文件是用來描述日志格式的XML文件,內(nèi)容包含了日志文件中結構化信 息的字段解析規(guī)則和字段定義。
[0036] 日志孤L文件需要和日志同時提供給日志處理引擎。
[0037] S2:根據(jù)日志DDL文件中的字段解析規(guī)則,從上述日志文件中提取出字段并存儲至 輸出文件。
[0038] 提取出的字段可稱為解析結果字段或結構化數(shù)據(jù)。
[0039] S3、生成與上述輸出文件對應的字段類型說明文件。
[0040] 字段類型說明文件的內(nèi)容主要包含字段字義。字段類型說明文件可稱為結構化數(shù) 據(jù) DDL。
[0041 ] 在本發(fā)明其他實施例中,上述方法還可包括如下步驟:
[0042] S4、根據(jù)上述字段類型說明文件生成建表腳本并提交給目標數(shù)據(jù)庫。
[0043] 目標數(shù)據(jù)庫的RDBMS(關系數(shù)據(jù)庫管理系統(tǒng),Relational Database Management System),可將數(shù)據(jù)組織為相關的行和列。
[0044] 上述建表腳本可用于目標數(shù)據(jù)庫(RDBMS)創(chuàng)建空白數(shù)據(jù)庫表,并加載(加載工具自 動加載)輸出文件中的字段至上述空白數(shù)據(jù)庫表。
[004引可見,在本發(fā)明實施例中,日志所有方(上游系統(tǒng))可向日志使用方提供日志孤L文 件,運樣日志使用方(下游系統(tǒng))可根據(jù)日志D