本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體涉及一種實時計算平臺的日志處理方法和裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,互聯(lián)網(wǎng)大數(shù)據(jù)的趨勢日益顯著,每一條互聯(lián)網(wǎng)的業(yè)務線都在不斷地產(chǎn)生新的打點日志,對產(chǎn)生的日志進行進一步地處理以對互聯(lián)網(wǎng)業(yè)務的運行進行反饋是相當重要的工作之一?,F(xiàn)有技術(shù)中,當工作人員希望對某一業(yè)務線的數(shù)據(jù)源輸出的待處理日志進行處理時,需要根據(jù)相應的處理需求手動編寫完整的數(shù)據(jù)處理程序,不同的日志處理需求需要重新編寫不同的程序,對于不同業(yè)務線的工作人員來說,維護成本高、學習周期長,十分費時費力,使得數(shù)據(jù)處理效率低下,不符合大數(shù)據(jù)發(fā)展趨勢。
技術(shù)實現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種實時計算平臺的日志處理方法和裝置。
依據(jù)本發(fā)明的一個方面,提供了一種實時計算平臺的日志處理方法,其中,該方法包括:
接收計算任務,讀取該計算任務的配置信息;
根據(jù)所述配置信息中的數(shù)據(jù)源信息,從相應數(shù)據(jù)源接收實時輸入的待處理日志;
對于接收到的每條待處理日志,將該條待處理日志中的字段解析為指定格式的元數(shù)據(jù);
判斷所述配置信息中是否包含用戶輸入的自定義統(tǒng)計模型;
是則,根據(jù)所述自定義統(tǒng)計模型對指定格式的元數(shù)據(jù)進行統(tǒng)計處理,得到統(tǒng)計處理結(jié)果。
可選地,所述根據(jù)所述自定義統(tǒng)計模型對指定格式的元數(shù)據(jù)進行統(tǒng)計處理包括:
對用戶輸入的自定義統(tǒng)計模型進行解析,動態(tài)地將所述自定義統(tǒng)計模型解析為以實時計算平臺可運行的語言表達的統(tǒng)計模型;
根據(jù)該解析出的統(tǒng)計模型,對指定格式的元數(shù)據(jù)進行統(tǒng)計。
可選地,用戶輸入的對應于該條待處理日志的數(shù)據(jù)源的自定義統(tǒng)計模型是以DSL語言表達的自定義統(tǒng)計模型。
可選地,該方法進一步包括:
預設(shè)多個基本統(tǒng)計模板;
當所述配置信息中不包含用戶輸入的自定義統(tǒng)計模型且所述配置信息中包含用戶從預設(shè)的多個基本統(tǒng)計模板中選擇的一個基本統(tǒng)計模板時,
根據(jù)用戶選擇的基本統(tǒng)計模板,對指定格式的元數(shù)據(jù)進行統(tǒng)計。
可選地,所述基本統(tǒng)計模板包括如下一種或多種:
頁面瀏覽量的統(tǒng)計模板,獨立訪客數(shù)的統(tǒng)計模板,訪客的訪問次數(shù)的統(tǒng)計模板,獨立IP數(shù)的統(tǒng)計模板。
可選地,所述指定格式的元數(shù)據(jù)為由字段和字段取值構(gòu)成的鍵值對形式。
可選地,所述將該條待處理日志中的字段解析為指定格式的元數(shù)據(jù)包括:
根據(jù)所述配置信息中的解析條件,通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合所述解析條件的字段解析為指定格式的元數(shù)據(jù)。
可選地,在得到統(tǒng)計處理結(jié)果之后,該方法進一步包括:
根據(jù)所述配置信息中的存儲規(guī)則,將所述統(tǒng)計處理結(jié)果保存到相應的存儲介質(zhì)中。
可選地,該方法進一步包括:預存多個基本解析器,每個基本解析器適配于一種基本數(shù)據(jù)格式;
所述通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合所述解析條件的字段解析為指定格式的元數(shù)據(jù)包括:
當該條待處理日志的格式為單一基本數(shù)據(jù)格式時,從預存的多個基本解析器中查找適配于該基本數(shù)據(jù)格式的基本解析器,通過調(diào)用查找到的基本解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)。
可選地,所述通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合所述解析條件的字段解析為指定格式的元數(shù)據(jù)還包括:
當該條待處理日志的格式為多種基本數(shù)據(jù)格式的組合時,對于每種基本數(shù)據(jù)格式,從預存的多個基本解析器中查找適配于該基本數(shù)據(jù)格式的基本解析器,通過調(diào)用查找到的多個基本解析器的組合將該條待處理日志中富惡化解析條件的字段解析為指定格式的元數(shù)據(jù)。
可選地,所述通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合所述解析條件的字段解析為指定格式的元數(shù)據(jù)包括:
根據(jù)該條待處理日志的格式,確定適配于該條待處理日志的一個或多個解析函數(shù);
創(chuàng)建該條待處理日志對應的解析器,在該解析器中動態(tài)注冊所述一個或多個解析函數(shù);
通過調(diào)用所創(chuàng)建的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)。
可選地,在所述通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合所述解析條件的字段解析為指定格式的元數(shù)據(jù)之后,該方法進一步包括:
將所調(diào)用的解析器放入指定全局變量數(shù)據(jù)庫中。
可選地,所述所述通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合所述解析條件的字段解析為指定格式的元數(shù)據(jù)包括:
根據(jù)該條待處理日志的格式,從所述指定全局變量數(shù)據(jù)庫中查找該條待處理日志對應的解析器;
如果查找到,直接通過調(diào)用查找到的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù);
如果未查找到,創(chuàng)建該條待處理日志對應的解析器,通過調(diào)用所創(chuàng)建的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)。
依據(jù)本發(fā)明的另一個方面,提供了一種實時計算平臺的日志處理裝置,其中,該裝置包括:
任務接收單元,適于接收計算任務,讀取該計算任務的配置信息;
日志接收單元,適于根據(jù)所述配置信息中的數(shù)據(jù)源信息,從相應數(shù)據(jù)源接收實時輸入的待處理日志;
解析單元,適于對于接收到的每條待處理日志,將該條待處理日志中的字段解析為指定格式的元數(shù)據(jù);
統(tǒng)計單元,適于判斷所述配置信息中是否包含用戶輸入的自定義統(tǒng)計模型;是則,根據(jù)所述自定義統(tǒng)計模型對指定格式的元數(shù)據(jù)進行統(tǒng)計處理,得到統(tǒng)計處理結(jié)果。
可選地,所述統(tǒng)計單元,適于對用戶輸入的自定義統(tǒng)計模型進行解析,動態(tài)地將所述自定義統(tǒng)計模型解析為以實時計算平臺可運行的語言表達的統(tǒng)計模型;根據(jù)該解析出的統(tǒng)計模型,對指定格式的元數(shù)據(jù)進行統(tǒng)計。
可選地,用戶輸入的對應于該條待處理日志的數(shù)據(jù)源的自定義統(tǒng)計模型是以DSL語言表達的自定義統(tǒng)計模型。
可選地,所述統(tǒng)計單元,進一步適于預設(shè)多個基本統(tǒng)計模板;適于當所述配置信息中不包含用戶輸入的自定義統(tǒng)計模型且所述配置信息中包含用戶從預設(shè)的多個基本統(tǒng)計模板中選擇的一個基本統(tǒng)計模板時,根據(jù)用戶選擇的基本統(tǒng)計模板,對指定格式的元數(shù)據(jù)進行統(tǒng)計。
可選地,所述基本統(tǒng)計模板包括如下一種或多種:
頁面瀏覽量的統(tǒng)計模板,獨立訪客數(shù)的統(tǒng)計模板,訪客的訪問次數(shù)的統(tǒng)計模板,獨立IP數(shù)的統(tǒng)計模板。
可選地,所述指定格式的元數(shù)據(jù)為由字段和字段取值構(gòu)成的鍵值對形式。
可選地,所述解析單元,適于根據(jù)所述配置信息中的解析條件,通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合所述解析條件的字段解析為指定格式的元數(shù)據(jù)。
可選地,該裝置進一步包括:
存儲處理單元,適于根據(jù)所述配置信息中的存儲規(guī)則,將所述統(tǒng)計處理結(jié)果保存到相應的存儲介質(zhì)中。
可選地,所述解析單元,進一步適于預存多個基本解析器,每個基本解析器適配于一種基本數(shù)據(jù)格式;以及適于當該條待處理日志的格式為單一基本數(shù)據(jù)格式時,從預存的多個基本解析器中查找適配于該基本數(shù)據(jù)格式的基本解析器,通過調(diào)用查找到的基本解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)。
可選地,所述解析單元,還適于當該條待處理日志的格式為多種基本數(shù)據(jù)格式的組合時,對于每種基本數(shù)據(jù)格式,從預存的多個基本解析器中查找適配于該基本數(shù)據(jù)格式的基本解析器,通過調(diào)用查找到的多個基本解析器的組合將該條待處理日志中富惡化解析條件的字段解析為指定格式的元數(shù)據(jù)。
可選地,所述解析單元,適于根據(jù)該條待處理日志的格式,確定適配于該條待處理日志的一個或多個解析函數(shù);創(chuàng)建該條待處理日志對應的解析器,在該解析器中動態(tài)注冊所述一個或多個解析函數(shù);通過調(diào)用所創(chuàng)建的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)。
可選地,所述解析單元,進一步適于在所述通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合所述解析條件的字段解析為指定格式的元數(shù)據(jù)之后,將所調(diào)用的解析器放入指定全局變量數(shù)據(jù)庫中。
可選地,所述解析單元,適于根據(jù)該條待處理日志的格式,從所述指定全局變量數(shù)據(jù)庫中查找該條待處理日志對應的解析器;如果查找到,直接通過調(diào)用查找到的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù);如果未查找到,創(chuàng)建該條待處理日志對應的解析器,通過調(diào)用所創(chuàng)建的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)。
由上述可知,本發(fā)明提供的技術(shù)方案執(zhí)行了實時計算平臺上的日志處理流程,該日志處理流程是依據(jù)實時計算平臺接收到的計算任務的配置信息而展開的,根據(jù)配置信息中的數(shù)據(jù)源信息從相應的數(shù)據(jù)源獲取待處理日志,由于不同數(shù)據(jù)源輸出的待處理日志的格式不相同,先將接收到的待處理日志解析為統(tǒng)一格式的元數(shù)據(jù),再對接收到的待處理日志進行統(tǒng)計處理,具體地,當配置信息中包含用戶輸入的自定義統(tǒng)計模型時,根據(jù)該自定義統(tǒng)計模型對待處理日志進行統(tǒng)計處理。依據(jù)本方案,實時計算平臺為不同的日志處理需求開設(shè)了統(tǒng)一的接口,接收各種計算任務并執(zhí)行各計算任務對應的日志處理過程,在日志處理過程中,將待處理日志解析為統(tǒng)一的格式有利于后續(xù)統(tǒng)計處理的開展,且統(tǒng)計處理的過程支持基于用戶輸入的自定義統(tǒng)計模型而進行,實現(xiàn)了計算任務的可定制化,也實現(xiàn)了實時計算平臺對可定制化的計算任務的動態(tài)適配,能夠盡可能地滿足不同的日志處理需求,快速有效地得到所需要的統(tǒng)計處理結(jié)果。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了根據(jù)本發(fā)明一個實施例的一種實時計算平臺的日志處理方法的流程圖;
圖2示出了根據(jù)本發(fā)明一個實施例的一種實時計算平臺的日志處理裝置的示意圖;
圖3示出了根據(jù)本發(fā)明另一個實施例的一種實時計算平臺的日志處理裝置的示意圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
圖1示出了根據(jù)本發(fā)明一個實施例的一種實時計算平臺的日志處理方法的流程圖。如圖1所示,該方法包括:
步驟S110,接收計算任務,讀取該計算任務的配置信息。
步驟S120,根據(jù)配置信息中的數(shù)據(jù)源信息,從相應數(shù)據(jù)源接收實時輸入的待處理日志。
步驟S130,對于接收到的每條待處理日志,將該條待處理日志中的字段解析為指定格式的元數(shù)據(jù)。
步驟S140,判斷配置信息中是否包含用戶輸入的自定義統(tǒng)計模型。
本步驟中,用戶輸入的自定義統(tǒng)計模型是指:由用戶自己編寫的指示日志處理過程應遵循的統(tǒng)計規(guī)則的統(tǒng)計模型。
步驟S150,是則,根據(jù)自定義統(tǒng)計模型對指定格式的元數(shù)據(jù)進行統(tǒng)計處理,得到統(tǒng)計處理結(jié)果。
可見,圖1所示的方法描述了實時計算平臺上的日志處理流程,該日志處理流程是依據(jù)實時計算平臺接收到的計算任務的配置信息而展開的,根據(jù)配置信息中的數(shù)據(jù)源信息從相應的數(shù)據(jù)源獲取待處理日志,由于不同數(shù)據(jù)源輸出的待處理日志的格式不相同,先將接收到的待處理日志解析為統(tǒng)一格式的元數(shù)據(jù),再對接收到的待處理日志進行統(tǒng)計處理,具體地,當配置信息中包含用戶輸入的自定義統(tǒng)計模型時,根據(jù)該自定義統(tǒng)計模型對待處理日志進行統(tǒng)計處理。依據(jù)本方案,實時計算平臺為不同的日志處理需求開設(shè)了統(tǒng)一的接口,接收各種計算任務并執(zhí)行各計算任務對應的日志處理過程,在日志處理過程中,將待處理日志解析為統(tǒng)一的格式有利于后續(xù)統(tǒng)計處理的開展,且統(tǒng)計處理的過程支持基于用戶輸入的自定義統(tǒng)計模型而進行,實現(xiàn)了計算任務的可定制化,也實現(xiàn)了實時計算平臺對可定制化的計算任務的動態(tài)適配,能夠盡可能地滿足不同的日志處理需求,快速有效地得到所需要的統(tǒng)計處理結(jié)果。
在本發(fā)明的一個實施例中,所接收的計算任務的配置信息是由用戶配置輸入的,具體地,實時計算平臺的前端與用戶進行交互,根據(jù)用戶配置輸入的配置信息創(chuàng)建計算任務,如以網(wǎng)頁頁面的形式向用戶展示多個輸入框,用戶通過在輸入框中進行輸入設(shè)置來完成配置信息的配置過程;前端將創(chuàng)建的計算任務提交到實時計算平臺,實時計算平臺接收計算任務,讀取該計算任務的配置信息,根據(jù)配置信息中的數(shù)據(jù)源信息,從相應的數(shù)據(jù)源接收實時輸入的待處理日志,對待處理日志進行解析,將待處理日志中的字段解析為指定格式的元數(shù)據(jù),根據(jù)計算任務的配置信息中的用戶輸入的自定義統(tǒng)計模型,對指定格式的元數(shù)據(jù)進行統(tǒng)計處理,得到統(tǒng)計處理結(jié)果。該實時計算平臺為不同的日志處理需求開設(shè)了統(tǒng)一的接口,用戶無需為日志處理過程編寫完整的程序代碼,只需要將對應于日志處理需求的配置信息輸入到前端創(chuàng)建計算任務即可,便于實施,十分省時省力,實時計算平臺的整合性好、實時性高、效率高、與用戶交互友好,且可以同時運行多個計算任務,符合當前的大數(shù)據(jù)發(fā)展趨勢。
在本發(fā)明的一個實施例中,步驟S150中根據(jù)自定義統(tǒng)計模型對指定格式的元數(shù)據(jù)進行統(tǒng)計處理包括:對用戶輸入的自定義統(tǒng)計模型進行解析,動態(tài)地將自定義統(tǒng)計模型解析為以實時計算平臺可運行的語言表達的統(tǒng)計模型;根據(jù)該解析出的統(tǒng)計模型,對指定格式的元數(shù)據(jù)進行統(tǒng)計。
具體地,用戶輸入的對應于該條待處理日志的數(shù)據(jù)源的自定義統(tǒng)計模型是以DSL語言表達的自定義統(tǒng)計模型;DSL是具有受限表達性的一種計算機程序設(shè)計語言,DSL語言屬于聲明式變成,其特點是語法簡單、可維護性高、學習成本低,對于絕大多數(shù)具有日志處理需求的用戶來說,都可以掌握以DSL語言來表達自定義統(tǒng)計模型,因此,在本例中以DSL語言作為用戶配置自定義統(tǒng)計模型的語言,當然,其他具有上述特點的語言均可以作為用戶配置自定義統(tǒng)計模型的語言,在此不做限制,由于DSL語言表達的的自定義統(tǒng)計模型是沒辦法生成實時計算平臺可識別的編程語如Java語言,因此需要相應的解析器對該自定義統(tǒng)計模型進行解釋,動態(tài)地生成實時計算平臺可運行的語言,相當于把自定義統(tǒng)計模型翻譯成一個更復雜的統(tǒng)計模型,但是這個更復雜的統(tǒng)計模型是無法固化下來的。
例如,接收一個計算任務,讀取該計算任務的配置信息,根據(jù)該配置信息中的數(shù)據(jù)源信息,從相應的數(shù)據(jù)源接收實時輸入的待處理日志,將當前接收到的待處理日志解析為指定格式的元數(shù)據(jù),解析結(jié)果包括:(k1,v1)、(k2,v2)和(k3,v3),且該配置信息中包含了用戶輸入的以DSL語言表達的自定義統(tǒng)計模型,自定義統(tǒng)計模型如下所示:
DSpark::input(…)
→filter(“a”=“b”)
→Map(array(k1,k2))
→groupBy(k1)
→count(…)
→output(…)
調(diào)用DSL解析器對用戶輸入的該自定義統(tǒng)計模型進行解析,動態(tài)地將自定義統(tǒng)計模型解析為以實時計算平臺可運行的語言表達的統(tǒng)計模型,獲知上述自定義統(tǒng)計模型的含義是:DSpark,有一個輸入源,在這里面?zhèn)饕恍﹨?shù)(input(…),參數(shù)具體沒有寫出),然后做一個過濾,過濾條件是a=b(filter(“a”=“b”)),判斷是否滿足該過濾條件,接著從前面解析出的結(jié)果包括(k1,v1)、(k2,v2)和(k3,v3)中拿出k1和k2的字段(Map(array(k1,k2))),進行分步統(tǒng)計,對k1進行匯總(groupBy(k1)),后面還可以計算總數(shù)(count(…)),后面直接輸出(output(…))。則在對用戶輸入的自定義統(tǒng)計模型進行解析后,根據(jù)該解析出的統(tǒng)計模型,按照該統(tǒng)計模型指示的統(tǒng)計規(guī)則,對指定格式的元數(shù)據(jù)進行統(tǒng)計,得到統(tǒng)計處理結(jié)果。
前文提到實時計算平臺接收到的計算任務的配置信息是由用戶輸入設(shè)置的,如用戶通過交互頁面上的輸入框進行輸入設(shè)置,對于每個輸入框,用戶可以在該輸入框中手動輸入自定義字符,也可以通過在與該輸入框關(guān)聯(lián)的模板庫中進行選擇設(shè)置,則在本方案中,用戶可以在配置信息中設(shè)置自定義統(tǒng)計模型,也可以不設(shè)置自定義統(tǒng)計模型而是直接從預設(shè)的模板庫中進行選擇。因此,在本發(fā)明的一個實施例中,圖1所示的方法進一步包括:預設(shè)多個基本統(tǒng)計模板,所述多個基本統(tǒng)計模板保存在模板庫中;當配置信息中不包含用戶輸入的自定義統(tǒng)計模型且該配置信息中包含用戶從預設(shè)的多個基本統(tǒng)計模板中選擇的一個基本統(tǒng)計模板時,根據(jù)用戶選擇的基本統(tǒng)計模板,對指定格式的元數(shù)據(jù)進行統(tǒng)計。
具體地,基本統(tǒng)計模板包括如下一種或多種:頁面瀏覽量的統(tǒng)計模板,獨立訪客數(shù)的統(tǒng)計模板,訪客的訪問次數(shù)的統(tǒng)計模板,獨立IP數(shù)的統(tǒng)計模板。眾所周知地,頁面瀏覽量(PV)、獨立訪客數(shù)(UV)、訪客的訪問次數(shù)(VV)、獨立IP數(shù)(IP)是網(wǎng)站分析工作中非常重要的幾項分析指標;頁面瀏覽量是衡量一個網(wǎng)站或網(wǎng)頁用戶訪問量的數(shù)據(jù),具體地,PV值就是所有訪問者在預設(shè)統(tǒng)計時間內(nèi)如24小時(0點到24點)內(nèi)看了某個網(wǎng)站多少個頁面或某個網(wǎng)頁多少次,也就是頁面刷新的次數(shù),每一次頁面刷新,就算做一次PV流量,其度量方法就是從瀏覽器發(fā)出一個對網(wǎng)絡服務器的請求(Request),網(wǎng)絡服務器接到這個請求后,會將該請求對應的一個網(wǎng)頁(Page)發(fā)送給瀏覽器,從而產(chǎn)生了一個PV,那么在這里只要是這個請求發(fā)送給了瀏覽器,無論這個頁面是否完全打開(下載完成),那么都是應當計為1個PV;獨立訪客數(shù)指訪問某個站點或點擊某個網(wǎng)頁的不同ID的人數(shù)。在同一天內(nèi),UV只記錄第一次進入網(wǎng)站的具有獨立ID的訪問者,在同一天內(nèi)再次訪問該網(wǎng)站則不計數(shù),UV提供了一定時間內(nèi)不同觀眾數(shù)量的統(tǒng)計指標,而沒有反應出網(wǎng)站的全面活動;獨立IP數(shù)可以理解為獨立IP的訪問用戶,指1天內(nèi)使用不同IP地址的用戶訪問網(wǎng)站的數(shù)量,同一IP無論訪問了幾個頁面,獨立IP數(shù)均為1,但是假如說兩臺機器訪問而使用的是同一個IP,那么只能算是一個IP的訪問,IP和UV之間的數(shù)據(jù)不會有太大的差異,通常UV量和比IP量高出一點,每個UV相對于每個IP更準確地對應一個實際的瀏覽者。
例如,實時計算平臺接收計算任務,讀取計算任務的配置信息,讀取該計算任務的配置信息,根據(jù)該配置信息中的數(shù)據(jù)源信息,從相應的數(shù)據(jù)源接收實時輸入的待處理日志,將接收到的待處理日志解析為指定格式的元數(shù)據(jù),且該配置信息中不包含用戶輸入的自定義統(tǒng)計模型且該配置信息中包含用戶選擇的獨立訪客數(shù)的統(tǒng)計模板,則根據(jù)該獨立訪客數(shù)的統(tǒng)計模板從上述指定格式的元數(shù)據(jù)中取出所有表示訪問指定網(wǎng)頁的用戶ID的字段,對這些字段進行去重,將去重后剩下的字段的數(shù)量作為統(tǒng)計得到的獨立訪客數(shù)。
此外,用戶在進行配置信息的設(shè)置時,也可以選擇多個基本統(tǒng)計模型的組合的形式,如一個計算任務的配置信息中包含用戶選擇的獨立訪客數(shù)的統(tǒng)計模板和頁面瀏覽量的統(tǒng)計模板,則在對指定格式的元數(shù)據(jù)進行統(tǒng)計處理時,可以分別根據(jù)獨立訪客數(shù)的統(tǒng)計模板和頁面瀏覽量的統(tǒng)計模板統(tǒng)計相應的獨立訪客數(shù)和頁面瀏覽量。進一步地,基本統(tǒng)計模板還可以包括TopN統(tǒng)計模板,當一個計算任務的配置信息中包含用戶選擇的TopN統(tǒng)計模板時,則在對解析出的指定格式的元數(shù)據(jù)進行統(tǒng)計處理的過程中,對指定格式的元數(shù)據(jù)進行排序統(tǒng)計。
通常情況下,上述幾種基本統(tǒng)計模板基本覆蓋了70%-80%的日志處理需求,對于不滿足的日志處理需求,則可以采用前文所述的自定義統(tǒng)計模型進行配置,可見,本方案提供的實時計算平臺基本可以滿足所有的日志處理需求,并且可以同時運行多個計算任務,從各數(shù)據(jù)源不斷接收待處理日志經(jīng)過統(tǒng)計處理后不斷輸出統(tǒng)計處理結(jié)果,具有極高的日志處理效率。
在本發(fā)明的一個實施例中,指定格式的元數(shù)據(jù)為由字段和字段取值構(gòu)成的鍵值對形式,即key-value的形式,該形式的元數(shù)據(jù)能夠反映待處理日志中的所有數(shù)據(jù)參數(shù)。
在本發(fā)明的一個實施例中,步驟S130中將該條待處理日志中的字段解析為指定格式的元數(shù)據(jù)包括:根據(jù)配置信息中的解析條件,通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)。
其中,通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)包括以下方式:
方式一,根據(jù)該條待處理日志的格式,確定適配于該條待處理日志的一個或多個解析函數(shù);創(chuàng)建該條待處理日志對應的解析器,在該解析器中動態(tài)注冊一個或多個解析函數(shù);通過調(diào)用所創(chuàng)建的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)。
其中,解析函數(shù)包括如下一種或多種:Base64decode函數(shù)、base64encode函數(shù)、urldecode函數(shù)、urlencode函數(shù)、isNum函數(shù)、isVer函數(shù)、getDay函數(shù)、getHour函數(shù)、getMin函數(shù),其中,Base64decode函數(shù)用于對Base64編碼的數(shù)據(jù)進行解碼,base64encode函數(shù)用于對數(shù)據(jù)進行Base64編碼,urldecode函數(shù)用于還原url編碼字符串,urlencode函數(shù)用于對字符串進行url編碼,isNum函數(shù)用于判斷是否是數(shù)字,isVer函數(shù)用于判斷是否是版本,getDay函數(shù)用于獲取時間的日期信息,getHour函數(shù)用于獲取時間的小時信息,getMin函數(shù)用于獲取時間的分鐘信息。本實施例通過在創(chuàng)建的解析器中動態(tài)注冊解析待處理日志所需的解析函數(shù),實現(xiàn)了對解析器的動態(tài)定制,可以動態(tài)地適配待處理日志的形式的多樣化。
方式二,預存多個基本解析器,每個基本解析器適配于一種基本數(shù)據(jù)格式。具體地,基本解析器包括如下一種或多種:Apache日志解析器、Nginx日志解析器、數(shù)組日志解析器、Json日志解析器、分割符解析器,Apache日志解析器適配于Apache日志的數(shù)據(jù)格式,Nginx日志解析器適配于Nginx日志的數(shù)據(jù)格式,數(shù)組日志解析器適配于數(shù)組日志的數(shù)據(jù)格式,Json日志解析器適配于Json日志的數(shù)據(jù)格式,分割符解析器適配于以指定分割符進行字段分割的數(shù)據(jù)格式。
當該條待處理日志的格式為單一基本數(shù)據(jù)格式時,從預存的多個基本解析器中查找適配于該基本數(shù)據(jù)格式的基本解析器,通過調(diào)用查找到的基本解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)。
當該條待處理日志的格式為多種基本數(shù)據(jù)格式的組合時,對于每種基本數(shù)據(jù)格式,從預存的多個基本解析器中查找適配于該基本數(shù)據(jù)格式的基本解析器,通過調(diào)用查找到的多個基本解析器的組合將該條待處理日志中富惡化解析條件的字段解析為指定格式的元數(shù)據(jù)。
例如,接收到的待處理日志是Apache日志,對應于Apache日志的數(shù)據(jù)格式,是單一基本數(shù)據(jù)格式,則對接收到的待處理日志進行解析的過程是:從預存的多個基本解析器中查找到Apache日志解析器,通過調(diào)用該Apache日志解析器將待處理日志中的字段解析為指定格式的元數(shù)據(jù)?;蛘?,接收到的待處理日志是由分割符進行字段分割的,如“字段1&字段2”,其中“&”是分割符,字段1是數(shù)組格式,字段2是Json格式,則在對接收到的待處理日志進行解析時,需要調(diào)用分割符解析器、數(shù)組日志解析器和Json日志解析器的組合將待處理日志中的字段解析為指定格式的元數(shù)據(jù),數(shù)組日志解析器和Json日志解析器是并列式組合,分割符解析器與該并列式組合形成層級式組合,具體地,先通過調(diào)用分隔符解析器分別解析出字段1和字段2,再通過調(diào)用數(shù)組日志解析器對字段1進行解析,以及通過調(diào)用Json日志解析器對字段2進行解析。
進一步地,在通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合所述解析條件的字段解析為指定格式的元數(shù)據(jù)之后,上述方法進一步包括:將所調(diào)用的解析器放入指定全局變量數(shù)據(jù)庫中。則通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)包括:根據(jù)該條待處理日志的格式,從所述指定全局變量數(shù)據(jù)庫中查找該條待處理日志對應的解析器;如果查找到,直接通過調(diào)用查找到的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù);如果未查找到,創(chuàng)建該條待處理日志對應的解析器,通過調(diào)用所創(chuàng)建的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)。
例如,從同一數(shù)據(jù)源接收到待處理日志1和待處理日志2,待處理日志1和待處理日志2具有相同的數(shù)據(jù)格式,先對待處理日志1進行解析,創(chuàng)建待處理日志1對應的解析器1,將待處理日志1中的字段解析為指定格式的元數(shù)據(jù),在解析之后,將解析器1放入指定全局變量數(shù)據(jù)庫中,使得該解析器1作為全局變量存在可以被方便地調(diào)用,則在對待處理日志2進行解析時,先從指定全局變量數(shù)據(jù)庫中查找是否有待處理日志2對應的解析器,由于待處理數(shù)據(jù)2與待處理數(shù)據(jù)1的數(shù)據(jù)格式相同,解析器1同樣適配于待處理日志2,因此,直接通過調(diào)用指定全局變量數(shù)據(jù)庫中的解析器1對待處理日志2進行解析,避免了適配于相同數(shù)據(jù)格式的解析器的重復創(chuàng)建,避免不必要的系統(tǒng)資源的使用,且直接全局地找解析器的過程比重新創(chuàng)建解析器的過程快得多,加快了解析過程,保證日志處理過程的實時性。
在本發(fā)明的一個實施例中,在得到統(tǒng)計處理結(jié)果之后,圖1所示的方法進一步包括:根據(jù)配置信息中的存儲規(guī)則,將統(tǒng)計處理結(jié)果保存到相應的存儲介質(zhì)中。其中,所述存儲介質(zhì)包括如下一種或多種:Redis數(shù)據(jù)庫,大存儲Redis數(shù)據(jù)庫,Mysql數(shù)據(jù)庫,HBase數(shù)據(jù)庫,HDFS數(shù)據(jù)庫,GreenPlum數(shù)據(jù)庫。不同的存儲介質(zhì)具有不同的特性,可以根據(jù)存儲需求選擇合適的存儲介質(zhì),如Redis數(shù)據(jù)庫是基于key-value形式在內(nèi)存中進行存儲的,但當數(shù)據(jù)量達到一定程度時,可以采用基于磁盤進行存儲的大存儲Redis數(shù)據(jù)庫來分擔存儲壓力,或者也可以采用分布式存儲的GreenPlum數(shù)據(jù)庫來分擔存儲壓力,使得往存儲介質(zhì)中寫數(shù)據(jù)以及從存儲介質(zhì)中讀取數(shù)據(jù)的過程較為快捷,保證實時計算平臺的實時性、有效性和穩(wěn)定性。后續(xù)可以從存儲介質(zhì)中讀取統(tǒng)計處理結(jié)果,將統(tǒng)計處理結(jié)果展示給用戶,供用戶查看以及在線搜索查詢。
在一個具體的例子中,在將統(tǒng)計處理結(jié)果保存到存儲介質(zhì)中之前,還可以對統(tǒng)計處理結(jié)果進行聚合處理,以減輕存儲介質(zhì)的壓力,或者,在實時程度要求范圍之內(nèi),設(shè)定觸發(fā)存儲的條件,在得到統(tǒng)計處理結(jié)果后,不直接進行存儲,而是在滿足觸發(fā)存儲的條件后進行存儲,同樣可以減輕存儲壓力。
圖2示出了根據(jù)本發(fā)明一個實施例的一種實時計算平臺的日志處理裝置的示意圖。如圖2所示,該實時計算平臺的日志處理裝置200包括:
任務接收單元210,適于接收計算任務,讀取該計算任務的配置信息。
日志接收單元220,適于根據(jù)配置信息中的數(shù)據(jù)源信息,從相應數(shù)據(jù)源接收實時輸入的待處理日志。
解析單元230,適于對于接收到的每條待處理日志,將該條待處理日志中的字段解析為指定格式的元數(shù)據(jù)。
統(tǒng)計單元240,適于判斷配置信息中是否包含用戶輸入的自定義統(tǒng)計模型;是則,根據(jù)自定義統(tǒng)計模型對指定格式的元數(shù)據(jù)進行統(tǒng)計處理,得到統(tǒng)計處理結(jié)果。
可見,圖2所示的裝置執(zhí)行了實時計算平臺上的日志處理流程,該日志處理流程是依據(jù)實時計算平臺接收到的計算任務的配置信息而展開的,根據(jù)配置信息中的數(shù)據(jù)源信息從相應的數(shù)據(jù)源獲取待處理日志,由于不同數(shù)據(jù)源輸出的待處理日志的格式不相同,先將接收到的待處理日志解析為統(tǒng)一格式的元數(shù)據(jù),再對接收到的待處理日志進行統(tǒng)計處理,具體地,當配置信息中包含用戶輸入的自定義統(tǒng)計模型時,根據(jù)該自定義統(tǒng)計模型對待處理日志進行統(tǒng)計處理。依據(jù)本方案,實時計算平臺為不同的日志處理需求開設(shè)了統(tǒng)一的接口,接收各種計算任務并執(zhí)行各計算任務對應的日志處理過程,在日志處理過程中,將待處理日志解析為統(tǒng)一的格式有利于后續(xù)統(tǒng)計處理的開展,且統(tǒng)計處理的過程支持基于用戶輸入的自定義統(tǒng)計模型而進行,實現(xiàn)了計算任務的可定制化,也實現(xiàn)了實時計算平臺對可定制化的計算任務的動態(tài)適配,能夠盡可能地滿足不同的日志處理需求,快速有效地得到所需要的統(tǒng)計處理結(jié)果。
在本發(fā)明的一個實施例中,統(tǒng)計單元240,適于對用戶輸入的自定義統(tǒng)計模型進行解析,動態(tài)地將自定義統(tǒng)計模型解析為以實時計算平臺可運行的語言表達的統(tǒng)計模型;根據(jù)該解析出的統(tǒng)計模型,對指定格式的元數(shù)據(jù)進行統(tǒng)計。其中,用戶輸入的對應于該條待處理日志的數(shù)據(jù)源的自定義統(tǒng)計模型是以DSL語言表達的自定義統(tǒng)計模型。
在本發(fā)明的一個實施例中,統(tǒng)計單元240,進一步適于預設(shè)多個基本統(tǒng)計模板;適于當所述配置信息中不包含用戶輸入的自定義統(tǒng)計模型且所述配置信息中包含用戶從預設(shè)的多個基本統(tǒng)計模板中選擇的一個基本統(tǒng)計模板時,根據(jù)用戶選擇的基本統(tǒng)計模板,對指定格式的元數(shù)據(jù)進行統(tǒng)計。其中,基本統(tǒng)計模板包括如下一種或多種:頁面瀏覽量的統(tǒng)計模板,獨立訪客數(shù)的統(tǒng)計模板,訪客的訪問次數(shù)的統(tǒng)計模板,獨立IP數(shù)的統(tǒng)計模板。
在本發(fā)明的一個實施例中,所述指定格式的元數(shù)據(jù)為由字段和字段取值構(gòu)成的鍵值對形式。
在本發(fā)明的一個實施例中,解析單元230,適于根據(jù)配置信息中的解析條件,通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)。
進一步地,解析單元230,進一步適于預存多個基本解析器,每個基本解析器適配于一種基本數(shù)據(jù)格式;以及適于當該條待處理日志的格式為單一基本數(shù)據(jù)格式時,從預存的多個基本解析器中查找適配于該基本數(shù)據(jù)格式的基本解析器,通過調(diào)用查找到的基本解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù);以及,解析單元230,還適于當該條待處理日志的格式為多種基本數(shù)據(jù)格式的組合時,對于每種基本數(shù)據(jù)格式,從預存的多個基本解析器中查找適配于該基本數(shù)據(jù)格式的基本解析器,通過調(diào)用查找到的多個基本解析器的組合將該條待處理日志中富惡化解析條件的字段解析為指定格式的元數(shù)據(jù)。
在本發(fā)明的一個實施例中,解析單元230,適于根據(jù)該條待處理日志的格式,確定適配于該條待處理日志的一個或多個解析函數(shù);創(chuàng)建該條待處理日志對應的解析器,在該解析器中動態(tài)注冊所述一個或多個解析函數(shù);通過調(diào)用所創(chuàng)建的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)。
進一步地,解析單元230,進一步適于在通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)之后,將所調(diào)用的解析器放入指定全局變量數(shù)據(jù)庫中。則解析單元230,適于根據(jù)該條待處理日志的格式,從指定全局變量數(shù)據(jù)庫中查找該條待處理日志對應的解析器;如果查找到,直接通過調(diào)用查找到的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù);如果未查找到,創(chuàng)建該條待處理日志對應的解析器,通過調(diào)用所創(chuàng)建的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)。
圖3示出了根據(jù)本發(fā)明另一個實施例的一種實時計算平臺的日志處理裝置的示意圖。如圖3所示,該實時計算平臺的日志處理裝置300包括:任務接收單元310、日志接收單元320、解析單元330、統(tǒng)計單元340和存儲處理單元350。
其中,任務接收單元310、日志接收單元320、解析單元330、統(tǒng)計單元340和圖2所示的任務接收單元210、日志接收單元220、解析單元230、統(tǒng)計單元240具有對應相同的功能,相同的部分在此不再贅述。
存儲處理單元350,適于根據(jù)配置信息中的存儲規(guī)則,將統(tǒng)計處理結(jié)果保存到相應的存儲介質(zhì)中。
需要說明的是,圖2-圖3所示裝置的各實施例與圖1所示方法的各實施例對應相同,上文中已有詳細說明,在此不再贅述。
綜上所述,本發(fā)明提供的技術(shù)方案執(zhí)行了實時計算平臺上的日志處理流程,該日志處理流程是依據(jù)實時計算平臺接收到的計算任務的配置信息而展開的,根據(jù)配置信息中的數(shù)據(jù)源信息從相應的數(shù)據(jù)源獲取待處理日志,由于不同數(shù)據(jù)源輸出的待處理日志的格式不相同,先將接收到的待處理日志解析為統(tǒng)一格式的元數(shù)據(jù),再對接收到的待處理日志進行統(tǒng)計處理,具體地,當配置信息中包含用戶輸入的自定義統(tǒng)計模型時,根據(jù)該自定義統(tǒng)計模型對待處理日志進行統(tǒng)計處理。依據(jù)本方案,實時計算平臺為不同的日志處理需求開設(shè)了統(tǒng)一的接口,接收各種計算任務并執(zhí)行各計算任務對應的日志處理過程,在日志處理過程中,將待處理日志解析為統(tǒng)一的格式有利于后續(xù)統(tǒng)計處理的開展,且統(tǒng)計處理的過程支持基于用戶輸入的自定義統(tǒng)計模型而進行,實現(xiàn)了計算任務的可定制化,也實現(xiàn)了實時計算平臺對可定制化的計算任務的動態(tài)適配,能夠盡可能地滿足不同的日志處理需求,快速有效地得到所需要的統(tǒng)計處理結(jié)果。
需要說明的是:
在此提供的算法和顯示不與任何特定計算機、虛擬裝置或者其它設(shè)備固有相關(guān)。各種通用裝置也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類裝置所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的一種實時計算平臺的日志處理裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
本發(fā)明公開了A1、一種實時計算平臺的日志處理方法,其中,該方法包括:
接收計算任務,讀取該計算任務的配置信息;
根據(jù)所述配置信息中的數(shù)據(jù)源信息,從相應數(shù)據(jù)源接收實時輸入的待處理日志;
對于接收到的每條待處理日志,將該條待處理日志中的字段解析為指定格式的元數(shù)據(jù);
判斷所述配置信息中是否包含用戶輸入的自定義統(tǒng)計模型;
是則,根據(jù)所述自定義統(tǒng)計模型對指定格式的元數(shù)據(jù)進行統(tǒng)計處理,得到統(tǒng)計處理結(jié)果。
A2、如A1所述的方法,其中,所述根據(jù)所述自定義統(tǒng)計模型對指定格式的元數(shù)據(jù)進行統(tǒng)計處理包括:
對用戶輸入的自定義統(tǒng)計模型進行解析,動態(tài)地將所述自定義統(tǒng)計模型解析為以實時計算平臺可運行的語言表達的統(tǒng)計模型;
根據(jù)該解析出的統(tǒng)計模型,對指定格式的元數(shù)據(jù)進行統(tǒng)計。
A3、如A2所述的方法,其中,用戶輸入的對應于該條待處理日志的數(shù)據(jù)源的自定義統(tǒng)計模型是以DSL語言表達的自定義統(tǒng)計模型。
A4、如A1所述的方法,其中,該方法進一步包括:
預設(shè)多個基本統(tǒng)計模板;
當所述配置信息中不包含用戶輸入的自定義統(tǒng)計模型且所述配置信息中包含用戶從預設(shè)的多個基本統(tǒng)計模板中選擇的一個基本統(tǒng)計模板時,
根據(jù)用戶選擇的基本統(tǒng)計模板,對指定格式的元數(shù)據(jù)進行統(tǒng)計。
A5、如A4所述的方法,其中,所述基本統(tǒng)計模板包括如下一種或多種:
頁面瀏覽量的統(tǒng)計模板,獨立訪客數(shù)的統(tǒng)計模板,訪客的訪問次數(shù)的統(tǒng)計模板,獨立IP數(shù)的統(tǒng)計模板。
A6、如A1所述的方法,其中,所述指定格式的元數(shù)據(jù)為由字段和字段取值構(gòu)成的鍵值對形式。
A7、如A1所述的方法,其中,所述將該條待處理日志中的字段解析為指定格式的元數(shù)據(jù)包括:
根據(jù)所述配置信息中的解析條件,通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合所述解析條件的字段解析為指定格式的元數(shù)據(jù)。
A8、如A7所述的方法,其中,在得到統(tǒng)計處理結(jié)果之后,該方法進一步包括:
根據(jù)所述配置信息中的存儲規(guī)則,將所述統(tǒng)計處理結(jié)果保存到相應的存儲介質(zhì)中。
A9、如A7所述的方法,其中,該方法進一步包括:預存多個基本解析器,每個基本解析器適配于一種基本數(shù)據(jù)格式;
所述通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合所述解析條件的字段解析為指定格式的元數(shù)據(jù)包括:
當該條待處理日志的格式為單一基本數(shù)據(jù)格式時,從預存的多個基本解析器中查找適配于該基本數(shù)據(jù)格式的基本解析器,通過調(diào)用查找到的基本解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)。
A10、如A9所述的方法,其中,所述通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合所述解析條件的字段解析為指定格式的元數(shù)據(jù)還包括:
當該條待處理日志的格式為多種基本數(shù)據(jù)格式的組合時,對于每種基本數(shù)據(jù)格式,從預存的多個基本解析器中查找適配于該基本數(shù)據(jù)格式的基本解析器,通過調(diào)用查找到的多個基本解析器的組合將該條待處理日志中富惡化解析條件的字段解析為指定格式的元數(shù)據(jù)。
A11、如A7所述的方法,其中,所述通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合所述解析條件的字段解析為指定格式的元數(shù)據(jù)包括:
根據(jù)該條待處理日志的格式,確定適配于該條待處理日志的一個或多個解析函數(shù);
創(chuàng)建該條待處理日志對應的解析器,在該解析器中動態(tài)注冊所述一個或多個解析函數(shù);
通過調(diào)用所創(chuàng)建的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)。
A12、如A7所述的方法,其中,在所述通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合所述解析條件的字段解析為指定格式的元數(shù)據(jù)之后,該方法進一步包括:
將所調(diào)用的解析器放入指定全局變量數(shù)據(jù)庫中。
A13、如A12所述的方法,其中,所述所述通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合所述解析條件的字段解析為指定格式的元數(shù)據(jù)包括:
根據(jù)該條待處理日志的格式,從所述指定全局變量數(shù)據(jù)庫中查找該條待處理日志對應的解析器;
如果查找到,直接通過調(diào)用查找到的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù);
如果未查找到,創(chuàng)建該條待處理日志對應的解析器,通過調(diào)用所創(chuàng)建的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)。
本發(fā)明還公開了B14、一種實時計算平臺的日志處理裝置,其中,該裝置包括:
任務接收單元,適于接收計算任務,讀取該計算任務的配置信息;
日志接收單元,適于根據(jù)所述配置信息中的數(shù)據(jù)源信息,從相應數(shù)據(jù)源接收實時輸入的待處理日志;
解析單元,適于對于接收到的每條待處理日志,將該條待處理日志中的字段解析為指定格式的元數(shù)據(jù);
統(tǒng)計單元,適于判斷所述配置信息中是否包含用戶輸入的自定義統(tǒng)計模型;是則,根據(jù)所述自定義統(tǒng)計模型對指定格式的元數(shù)據(jù)進行統(tǒng)計處理,得到統(tǒng)計處理結(jié)果。
B15、如B14所述的裝置,其中,
所述統(tǒng)計單元,適于對用戶輸入的自定義統(tǒng)計模型進行解析,動態(tài)地將所述自定義統(tǒng)計模型解析為以實時計算平臺可運行的語言表達的統(tǒng)計模型;根據(jù)該解析出的統(tǒng)計模型,對指定格式的元數(shù)據(jù)進行統(tǒng)計。
B16、如B15所述的裝置,其中,用戶輸入的對應于該條待處理日志的數(shù)據(jù)源的自定義統(tǒng)計模型是以DSL語言表達的自定義統(tǒng)計模型。
B17、如B14所述的裝置,其中,
所述統(tǒng)計單元,進一步適于預設(shè)多個基本統(tǒng)計模板;適于當所述配置信息中不包含用戶輸入的自定義統(tǒng)計模型且所述配置信息中包含用戶從預設(shè)的多個基本統(tǒng)計模板中選擇的一個基本統(tǒng)計模板時,根據(jù)用戶選擇的基本統(tǒng)計模板,對指定格式的元數(shù)據(jù)進行統(tǒng)計。
B18、如B17所述的裝置,其中,所述基本統(tǒng)計模板包括如下一種或多種:
頁面瀏覽量的統(tǒng)計模板,獨立訪客數(shù)的統(tǒng)計模板,訪客的訪問次數(shù)的統(tǒng)計模板,獨立IP數(shù)的統(tǒng)計模板。
B19、如B14所述的裝置,其中,所述指定格式的元數(shù)據(jù)為由字段和字段取值構(gòu)成的鍵值對形式。
B20、如B14所述的裝置,其中,
所述解析單元,適于根據(jù)所述配置信息中的解析條件,通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合所述解析條件的字段解析為指定格式的元數(shù)據(jù)。
B21、如B20所述的裝置,其中,該裝置進一步包括:
存儲處理單元,適于根據(jù)所述配置信息中的存儲規(guī)則,將所述統(tǒng)計處理結(jié)果保存到相應的存儲介質(zhì)中。
B22、如B20所述的裝置,其中,
所述解析單元,進一步適于預存多個基本解析器,每個基本解析器適配于一種基本數(shù)據(jù)格式;以及適于當該條待處理日志的格式為單一基本數(shù)據(jù)格式時,從預存的多個基本解析器中查找適配于該基本數(shù)據(jù)格式的基本解析器,通過調(diào)用查找到的基本解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)。
B23、如B22所述的裝置,其中,
所述解析單元,還適于當該條待處理日志的格式為多種基本數(shù)據(jù)格式的組合時,對于每種基本數(shù)據(jù)格式,從預存的多個基本解析器中查找適配于該基本數(shù)據(jù)格式的基本解析器,通過調(diào)用查找到的多個基本解析器的組合將該條待處理日志中富惡化解析條件的字段解析為指定格式的元數(shù)據(jù)。
B24、如B20所述的裝置,其中,
所述解析單元,適于根據(jù)該條待處理日志的格式,確定適配于該條待處理日志的一個或多個解析函數(shù);創(chuàng)建該條待處理日志對應的解析器,在該解析器中動態(tài)注冊所述一個或多個解析函數(shù);通過調(diào)用所創(chuàng)建的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)。
B25、如B20所述的裝置,其中,
所述解析單元,進一步適于在所述通過調(diào)用該條待處理日志對應的解析器將該條待處理日志中符合所述解析條件的字段解析為指定格式的元數(shù)據(jù)之后,將所調(diào)用的解析器放入指定全局變量數(shù)據(jù)庫中。
B26、如B25所述的裝置,其中,
所述解析單元,適于根據(jù)該條待處理日志的格式,從所述指定全局變量數(shù)據(jù)庫中查找該條待處理日志對應的解析器;如果查找到,直接通過調(diào)用查找到的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù);如果未查找到,創(chuàng)建該條待處理日志對應的解析器,通過調(diào)用所創(chuàng)建的解析器將該條待處理日志中符合解析條件的字段解析為指定格式的元數(shù)據(jù)。