亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

數(shù)據(jù)采集系統(tǒng)及數(shù)據(jù)采集方法與流程

文檔序號:12278175閱讀:675來源:國知局
數(shù)據(jù)采集系統(tǒng)及數(shù)據(jù)采集方法與流程

本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及數(shù)據(jù)采集系統(tǒng)及數(shù)據(jù)采集方法。



背景技術(shù):

Flume是Cloudera提供的日志收集系統(tǒng),該日志收集系統(tǒng)主要包括數(shù)據(jù)采集器Source、傳輸隊列Channel、數(shù)據(jù)取出器Sink,其中Source用于對日志數(shù)據(jù)進行采集,并分成transtion和event放入Channel中進行緩存,Sink取出Channel中緩存的數(shù)據(jù),并將其存儲至相應(yīng)的存儲文件系統(tǒng)、數(shù)據(jù)庫或者提交到遠程服務(wù)器。但是上述Flume中使用的傳輸隊列是基于jvm創(chuàng)建的用戶空間內(nèi)存,如果程序意外終止時存在該傳輸隊列中的數(shù)據(jù)會丟失。



技術(shù)實現(xiàn)要素:

本發(fā)明實施例的主要目的在于提供一種數(shù)據(jù)采集系統(tǒng)及數(shù)據(jù)采集方法,旨在避免數(shù)據(jù)采集過程中,程序意外終止時的數(shù)據(jù)丟失,從而保證了數(shù)據(jù)的完整性。

為實現(xiàn)上述目的,本發(fā)明實施例提供了一種數(shù)據(jù)采集系統(tǒng),包括采集器、共享傳輸通道、分布式消息隊列系統(tǒng)、云分揀器;其中:

所述采集器用于采集業(yè)務(wù)日志服務(wù)器上的日志數(shù)據(jù),將所采集的日志數(shù)據(jù)發(fā)送至分布式消息隊列系統(tǒng);

所述共享傳輸通道的接收端用于接收所述采集器采集的日志數(shù)據(jù),所述共享傳輸通道的發(fā)送端用于將通道內(nèi)的日志數(shù)據(jù)發(fā)送至所述分布式消息隊列系統(tǒng);

所述云分揀器從所述分布式消息隊列系統(tǒng)中讀取日志數(shù)據(jù),并對所述日志數(shù)據(jù)進行分揀處理,獲得分揀數(shù)據(jù),再將所述分揀數(shù)據(jù)存儲至所述分布式消息隊列系統(tǒng);

所述分布式消息隊列系統(tǒng)將所接收到的數(shù)據(jù)和所存儲的數(shù)據(jù)同步至文 件存儲系統(tǒng)。

此外,為實現(xiàn)上述目的,本發(fā)明還提出了一種數(shù)據(jù)采集方法,包括以下步驟:

采集業(yè)務(wù)日志服務(wù)器上的日志數(shù)據(jù),將所采集的日志數(shù)據(jù)發(fā)送至共享傳輸通道;

將所述共享傳輸通道內(nèi)的日志數(shù)據(jù)發(fā)送至所述分布式消息隊列系統(tǒng);

從所述分布式消息隊列系統(tǒng)中讀取日志數(shù)據(jù),并對所述日志數(shù)據(jù)進行分揀處理,獲得分揀數(shù)據(jù),再將所述分揀數(shù)據(jù)存儲至所述分布式消息隊列系統(tǒng);

將所述分布式消息隊列系統(tǒng)所接收到的數(shù)據(jù)和所存儲的數(shù)據(jù)同步至文件存儲系統(tǒng)。

本發(fā)明實施例利用共享傳輸通道接收采集器所采集的數(shù)據(jù),并將所采集的數(shù)據(jù)發(fā)送至分布式消息隊列系統(tǒng)進行存儲,因此,該數(shù)據(jù)采集系統(tǒng)避免了數(shù)據(jù)采集過程中,程序意外終止時的數(shù)據(jù)丟失,從而保證了數(shù)據(jù)的完整性。同時,還利用云分揀器對其進行分揀處理,以供下游系統(tǒng)使用,而且分布式消息隊列系統(tǒng)還將接收到的采集器的數(shù)據(jù)以及分揀處理后的分揀數(shù)據(jù)同步至文件存儲系統(tǒng)。因此,本發(fā)明數(shù)據(jù)采集系統(tǒng)既實現(xiàn)了下游系統(tǒng)對分布式消息隊列系統(tǒng)中的實時日志數(shù)據(jù)的使用,也實現(xiàn)了數(shù)據(jù)采集系統(tǒng)處于離線狀態(tài)下時,下游系統(tǒng)對文件存儲系統(tǒng)中的日志數(shù)據(jù)的使用。

附圖說明

圖1為本發(fā)明數(shù)據(jù)采集系統(tǒng)第一實施例的功能模塊示意圖;

圖2為本發(fā)明數(shù)據(jù)采集系統(tǒng)第二實施例的功能模塊示意圖;

圖3為本發(fā)明數(shù)據(jù)采集系統(tǒng)第三實施例的功能模塊示意圖;

圖4為本發(fā)明數(shù)據(jù)采集方法第一實施例的流程示意圖;

圖5為本發(fā)明數(shù)據(jù)采集方法第二實施例的流程示意圖;

圖6為本發(fā)明數(shù)據(jù)采集方法第三實施例的流程示意圖。

本發(fā)明目的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說 明。

具體實施方式

以下結(jié)合說明書附圖及具體實施例進一步說明本發(fā)明的技術(shù)方案。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

本發(fā)明提出了一種數(shù)據(jù)采集系統(tǒng),利用采集器從業(yè)務(wù)日志服務(wù)器中采集日志數(shù)據(jù),并將該日志數(shù)據(jù)先暫存至共享傳輸通道,再通過共享傳輸通道發(fā)送至分布式消息隊列系統(tǒng)進行存儲。因此,該數(shù)據(jù)采集系統(tǒng)避免了數(shù)據(jù)采集過程中,程序意外終止時的數(shù)據(jù)丟失,從而保證了數(shù)據(jù)的完整性。同時,還利用云分揀器對其進行分揀處理,以供下游系統(tǒng)使用,而且分布式消息隊列系統(tǒng)還將存儲的數(shù)據(jù)同步至文件存儲系統(tǒng),供下游系統(tǒng)使用。該數(shù)據(jù)采集系統(tǒng)使得下游系統(tǒng)可以使用分布式消息隊列系統(tǒng)或者文件存儲系統(tǒng)中的日志數(shù)據(jù)。因此,本發(fā)明數(shù)據(jù)采集系統(tǒng)既實現(xiàn)了下游系統(tǒng)對實時日志數(shù)據(jù)的使用,也實現(xiàn)了數(shù)據(jù)采集系統(tǒng)處于離線狀態(tài)下時,下游系統(tǒng)對文件存儲系統(tǒng)中的日志數(shù)據(jù)的使用。

如圖1所示,示出了本發(fā)明一種數(shù)據(jù)采集系統(tǒng)第一實施例的結(jié)構(gòu)。該數(shù)據(jù)采集系統(tǒng)100包括:采集器110、分布式消息隊列系統(tǒng)120、云分揀器130、共享傳輸通道140。其中,所述采集器110用于采集業(yè)務(wù)日志服務(wù)器上的日志數(shù)據(jù),將所采集的日志數(shù)據(jù)發(fā)送至共享傳輸通道140。所述共享傳輸通道140的接收端用于接收所述采集器采集的日志數(shù)據(jù),所述共享傳輸通道140的發(fā)送端用于將通道內(nèi)的日志數(shù)據(jù)發(fā)送至所述分布式消息隊列系統(tǒng)120。所述云分揀器130從所述分布式消息隊列系統(tǒng)中讀取日志數(shù)據(jù),并對所述日志數(shù)據(jù)進行分揀處理,獲得分揀數(shù)據(jù),再該分揀數(shù)據(jù)存儲至所述分布式消息隊列系統(tǒng)120。所述分布式消息隊列系統(tǒng)120將所接收到的數(shù)據(jù)和所存儲的數(shù)據(jù)同步至文件存儲系統(tǒng)200。

該采集器110可與業(yè)務(wù)日志服務(wù)器300進行通信,以讀取業(yè)務(wù)日志服務(wù)器上記錄的日志數(shù)據(jù)。業(yè)務(wù)日志服務(wù)器300用于接收與業(yè)務(wù)日志服務(wù)器300連接的各業(yè)務(wù)單元上報的業(yè)務(wù)日志。優(yōu)選地,該采集器110將設(shè)置在業(yè)務(wù)日志服務(wù)器上,且每個業(yè)務(wù)日志服務(wù)器300均設(shè)有至少1個采集器110。具體地,預(yù)先在業(yè)務(wù)日志服務(wù)器300中嵌入API接口,業(yè)務(wù)日志服務(wù)器300實時 或定時將記錄的日志數(shù)據(jù)通過該API接口發(fā)送至采集器110中;或者采集器110通過該API接口實時或定時獲取業(yè)務(wù)日志服務(wù)器300中記錄的日志數(shù)據(jù)。在此不做限定。上述文件存儲系統(tǒng)200可包括分布式消息系統(tǒng)、本地文件系統(tǒng)、數(shù)據(jù)庫系統(tǒng)等等。

上述共享傳輸通道140為共享內(nèi)存隊列,用于接收各采集器110發(fā)送的日志數(shù)據(jù)。該共享傳輸通道140為各采集器110共享,而不再屬于單個的采集器110。因此,當(dāng)數(shù)據(jù)采集系統(tǒng)100突然停止運行時,該共享內(nèi)存隊列中存儲的日志數(shù)據(jù)將被保存下來,不會被丟失。

該分布式消息隊列系統(tǒng)120可包括Tdbank、Kafka、metaq、RocketMQ等等。該分布式消息隊列系統(tǒng)120對日志數(shù)據(jù)進行預(yù)處理,例如數(shù)據(jù)解壓縮、數(shù)據(jù)分類分隊列存儲等等,并分發(fā)至離線或在線處理平臺。因此,該分布式消息隊列系統(tǒng)120用于構(gòu)建數(shù)據(jù)源和數(shù)據(jù)處理系統(tǒng)間的橋梁,將數(shù)據(jù)處理系統(tǒng)與數(shù)據(jù)源進行解耦。

云分揀器130可包括實時分揀引擎,且該實時分揀引擎持續(xù)執(zhí)行分揀任務(wù),即不斷從分布式消息隊列系統(tǒng)120中讀取日志數(shù)據(jù),并對其進行分揀處理,獲得分揀數(shù)據(jù),存儲至分布式消息隊列系統(tǒng)120中??梢岳斫獾氖?,采集器110發(fā)送至分布式消息隊列系統(tǒng)120的數(shù)據(jù)與經(jīng)過云分揀器130的處理后獲得的分揀數(shù)據(jù)存儲在分布式消息隊列系統(tǒng)120的不同位置。

本發(fā)明實施例利用共享傳輸通道接收采集器所采集的數(shù)據(jù),并將所采集的數(shù)據(jù)發(fā)送至分布式消息隊列系統(tǒng)進行存儲,因此,該數(shù)據(jù)采集系統(tǒng)避免了數(shù)據(jù)采集過程中,程序意外終止時的數(shù)據(jù)丟失,從而保證了數(shù)據(jù)的完整性。同時,還利用云分揀器對其進行分揀處理,以供下游系統(tǒng)使用,而且分布式消息隊列系統(tǒng)還將接收到的采集器的數(shù)據(jù)以及分揀處理后的分揀數(shù)據(jù)同步至文件存儲系統(tǒng)。因此,本發(fā)明數(shù)據(jù)采集系統(tǒng)既實現(xiàn)了下游系統(tǒng)對分布式消息隊列系統(tǒng)中的實時日志數(shù)據(jù)的使用,也實現(xiàn)了數(shù)據(jù)采集系統(tǒng)處于離線狀態(tài)下時,下游系統(tǒng)對文件存儲系統(tǒng)中的日志數(shù)據(jù)的使用。

進一步地,如圖2所示,上述數(shù)據(jù)采集系統(tǒng)還包括存儲盤150,所述存儲盤150用于存儲所述共享傳輸通道140被寫滿時,發(fā)送至所述共享傳輸通道140的日志數(shù)據(jù)。該存儲盤150可以為磁盤、硬盤等等。在采集器110將 采集的日志數(shù)據(jù)寫入共享傳輸通道140時,若共享傳輸通道140已寫滿,則將該寫滿的共享傳輸通道140的日志數(shù)據(jù)寫入磁盤中,并將共享傳輸通道140的日志數(shù)據(jù)清空,以存儲采集器110寫入的日志數(shù)據(jù)。

上述數(shù)據(jù)采集系統(tǒng)100還包括數(shù)據(jù)發(fā)送器160,所述數(shù)據(jù)發(fā)送器160從所述共享傳輸通道140和所述存儲盤150中讀取日志數(shù)據(jù),并將所讀取的日志數(shù)據(jù)發(fā)送至所述分布式消息隊列系統(tǒng)120。具體地,所述分布式消息隊列系統(tǒng)120將讀取的日志數(shù)據(jù)進行壓縮處理,形成壓縮包。而且,該數(shù)據(jù)發(fā)送發(fā)送器160采用TCP、多線程的方式發(fā)送到分布式消息隊列系統(tǒng)120。

進一步地,如圖3所示,上述數(shù)據(jù)采集系統(tǒng)100包括配置中心170,用于配置分揀規(guī)則;所述云分揀器130包括實時分揀引擎131,所述實時分揀引擎131用于按照所述配置中心的分揀規(guī)則,對從所述分布式消息隊列系統(tǒng)120中讀取的所述日志數(shù)據(jù)進行分揀處理。具體地,配置中心170用于可視化配置數(shù)據(jù)分揀的規(guī)則、數(shù)據(jù)選擇的字段、分配數(shù)據(jù)分拆后在分布式消息隊列系統(tǒng)120的存儲隊列等。具體可采用gojs實現(xiàn)可視化操作,并生成json格式的規(guī)則數(shù)據(jù)。

上述數(shù)據(jù)分揀的規(guī)則是指:數(shù)據(jù)按某些字段的值,劃分到不同業(yè)務(wù),這些字段、值的配置稱為規(guī)則。該規(guī)則使用樹的形式、json格式存儲,易讀,易配置。

上述數(shù)據(jù)選擇的字段是指:具體業(yè)務(wù)所需要提取的數(shù)據(jù)字段,例如oid,cid等。

上述配置中心的配置信息可以進行更改或新增。需要說明的是,在修改保存后,并不會立即生效,而是需要單獨觸發(fā)“發(fā)布”配置。而且發(fā)布時,會記錄該次發(fā)布的版本和備注等信息,如果遇到數(shù)據(jù)異常,則可恢復(fù)配置到歷史的任意版本。

另外,該配置中心還需要對配置進行同步更新,即將數(shù)據(jù)庫中當(dāng)前生效的配置版本讀出,更新到配置中心170和云分揀器130中,云分揀器130使用。配置更新時將做單元測試,以測試該配置是否有效。如果單元測試不通過,該配置將不會被更新。

進一步地,上述云分揀器130還包括備用分揀引擎132,所述備用分揀引擎132用于在實時分揀引擎131無法進行分揀時(例如,實時分揀引擎131出現(xiàn)故障時,或者分布式消息隊列系統(tǒng)120處于離線狀態(tài)時),從所述文件存儲系統(tǒng)200中讀取日志數(shù)據(jù),并按照預(yù)設(shè)的分揀規(guī)則對所述日志數(shù)據(jù)進行分揀處理,獲得分揀數(shù)據(jù),再存儲至所述文件存儲系統(tǒng)200;所述備用分揀引擎132的分揀規(guī)則與實時分揀引擎131的分揀規(guī)則相同。配置中心170在更新或新增分揀規(guī)則后,還將該更新后的分揀規(guī)則同步至云分揀器130中的備用分揀引擎132。

上述實時分揀引擎131和備用分揀引擎132運行的分揀規(guī)則一致,且分揀過程也一致。即先按照分揀規(guī)則,對所述日志數(shù)據(jù)進行業(yè)務(wù)分類,然后按照所選擇的字段,將日志數(shù)據(jù)中相應(yīng)字段值提取出來,并進行拼接后,供下游使用。具體為:

首先,分揀引擎將分揀規(guī)則解析為“多分決策樹”。一條數(shù)據(jù)被分揀時,采用決策樹進行決策,確定該數(shù)據(jù)應(yīng)該屬于哪個業(yè)務(wù)。

上述多分決策樹的模型如下:

存儲格式:json

如:{

"nodeDataArray":[

{"key":1,"name":"Init","title":"ad_dtype","condition":"1==1"},

{"key":2,"name":"視頻和IM流量","title":"ad_clienttype","condition":"ad_dtype==2"},

{"key":3,"name":"IM","title":"bglct_id","condition":"ad_clienttype==1"}],

"linkDataArray":[

{"from":1,"to":2},

{"from":2,"to":3}]

}

其中,nodeDataArray表示決策樹的各個節(jié)點,condition表示到達該節(jié)點的條件,title表示從該節(jié)點出發(fā),下一步的拆分鍵。linkDataArray表示各條可能的通路。

一條數(shù)據(jù)通過多分決策樹的過程可以描述如下:

i.將數(shù)據(jù)拆分為<k,v>結(jié)構(gòu),放入map;

ii.從決策樹的根節(jié)點出發(fā),廣度遍歷(遍歷的過程中綜合節(jié)點的condition,condition不滿足時,該子路返回),得到所有可能的葉子節(jié)點;

iii.按葉子節(jié)點的名稱,分別輸出每條數(shù)據(jù)相應(yīng)的業(yè)務(wù)類型。

其次,根據(jù)配置中心170配置的對不同業(yè)務(wù)類型需要提取的字段的配置,將確定業(yè)務(wù)類型的日志數(shù)據(jù),提取與該業(yè)務(wù)類型相應(yīng)的字段的值,并對其進行拼接,供下游使用。

另外,實時分揀引擎131從分布式消息隊列系統(tǒng)120中讀取日志數(shù)據(jù),并按照配置中心170中配置的分揀規(guī)則對該日志數(shù)據(jù)進行業(yè)務(wù)分類,再提取該分類后的日志數(shù)據(jù)中與該業(yè)務(wù)類型對應(yīng)配置的字段的字段數(shù)據(jù),并將該提取的字段數(shù)據(jù)進行拼接,形成分揀數(shù)據(jù)。該分揀數(shù)據(jù)再存儲至分布式消息隊列系統(tǒng)120中。同時,該分布式消息隊列系統(tǒng)120中的數(shù)據(jù)將同步至文件存儲系統(tǒng)200中。

備用分揀引擎132從文件存儲系統(tǒng)200中讀取日志數(shù)據(jù),并按照備用分揀引擎132中預(yù)存的分揀規(guī)則對該日志數(shù)據(jù)進行業(yè)務(wù)分類,再提取該分類后的日志數(shù)據(jù)中與該業(yè)務(wù)類型對應(yīng)配置的字段的字段數(shù)據(jù),并將該提取的字段數(shù)據(jù)進行拼接,形成分揀數(shù)據(jù)。該分揀數(shù)據(jù)再存儲至文件存儲系統(tǒng)200中。

對應(yīng)地,基于上述數(shù)據(jù)采集系統(tǒng),本發(fā)明還提出了一種數(shù)據(jù)采集方法。如圖4所示,本發(fā)明實施例的數(shù)據(jù)采集方法包括以下步驟:

步驟S110、采集業(yè)務(wù)日志服務(wù)器上的日志數(shù)據(jù),將所采集的日志數(shù)據(jù)發(fā)送至共享傳輸通道;

利用采集器110與業(yè)務(wù)日志服務(wù)器300進行通信,以讀取業(yè)務(wù)日志服務(wù)器上記錄的日志數(shù)據(jù)。優(yōu)選地,該采集器110將設(shè)置在業(yè)務(wù)日志服務(wù)器上,且每個業(yè)務(wù)日志服務(wù)器300均設(shè)有至少1個采集器110。具體地,預(yù)先在業(yè)務(wù)日志服務(wù)器300中嵌入API接口,業(yè)務(wù)日志服務(wù)器300實時或定時將記錄的日志數(shù)據(jù)通過該API接口發(fā)送至采集器110中;或者采集器110通過該API接口實時或定時獲取業(yè)務(wù)日志服務(wù)器300中記錄的日志數(shù)據(jù)。采集器110將采集的日志數(shù)據(jù)發(fā)送至共享傳輸通道140。共享傳輸通道140為共享內(nèi)存隊列,用于接收各采集器110發(fā)送的日志數(shù)據(jù)。該共享傳輸通道140為各采 集器110共享,而不再屬于單個的采集器110。因此,當(dāng)數(shù)據(jù)采集系統(tǒng)100突然停止運行時,該共享內(nèi)存隊列中存儲的日志數(shù)據(jù)將被保存下來,不會被丟失。

步驟S120、將所述共享傳輸通道內(nèi)的日志數(shù)據(jù)發(fā)送至所述分布式消息隊列系統(tǒng);

步驟S130、從所述分布式消息隊列系統(tǒng)中讀取日志數(shù)據(jù),并對所述日志數(shù)據(jù)進行分揀處理,獲得分揀數(shù)據(jù),再將所述分揀數(shù)據(jù)存儲至所述分布式消息隊列系統(tǒng);

上述分布式消息隊列系統(tǒng)120可包括Tdbank、Kafka、metaq、RocketMQ等等。該分布式消息隊列系統(tǒng)120對日志數(shù)據(jù)進行預(yù)處理,例如數(shù)據(jù)解壓縮、數(shù)據(jù)分類分隊列存儲等等,并分發(fā)至離線或在線處理平臺。因此,該分布式消息隊列系統(tǒng)120用于構(gòu)建數(shù)據(jù)源和數(shù)據(jù)處理系統(tǒng)間的橋梁,將數(shù)據(jù)處理系統(tǒng)與數(shù)據(jù)源進行解耦。利用云分揀器130進行日志數(shù)據(jù)的分揀處理,該云分揀器130可包括實時分揀引擎,且該實時分揀引擎持續(xù)執(zhí)行分揀任務(wù),即不斷從分布式消息隊列系統(tǒng)120中讀取日志數(shù)據(jù),并對其進行分揀處理,獲得分揀數(shù)據(jù),存儲至分布式消息隊列系統(tǒng)120中??梢岳斫獾氖?,采集器110發(fā)送至分布式消息隊列系統(tǒng)120的數(shù)據(jù)與經(jīng)過云分揀器130的處理后獲得的分揀數(shù)據(jù)存儲在分布式消息隊列系統(tǒng)120的不同位置。

步驟S140、將所述分布式消息隊列系統(tǒng)所接收到的數(shù)據(jù)和所存儲的數(shù)據(jù)同步至文件存儲系統(tǒng)。

上述文件存儲系統(tǒng)200可包括分布式消息系統(tǒng)、本地文件系統(tǒng)、數(shù)據(jù)庫系統(tǒng)等等。

本發(fā)明實施例利用共享傳輸通道接收采集器所采集的數(shù)據(jù),并將所采集的數(shù)據(jù)發(fā)送至分布式消息隊列系統(tǒng)進行存儲,因此,該數(shù)據(jù)采集系統(tǒng)避免了數(shù)據(jù)采集過程中,程序意外終止時的數(shù)據(jù)丟失,從而保證了數(shù)據(jù)的完整性。同時,還利用云分揀器對其進行分揀處理,以供下游系統(tǒng)使用,而且分布式消息隊列系統(tǒng)還將接收到的采集器的數(shù)據(jù)以及分揀處理后的分揀數(shù)據(jù)同步至文件存儲系統(tǒng)。因此,本發(fā)明數(shù)據(jù)采集系統(tǒng)既實現(xiàn)了下游系統(tǒng)對分布式消息隊列系統(tǒng)中的實時日志數(shù)據(jù)的使用,也實現(xiàn)了數(shù)據(jù)采集系統(tǒng)處于離線狀態(tài)下時,下游系統(tǒng)對文件存儲系統(tǒng)中的日志數(shù)據(jù)的使用。

進一步地,如圖5所示,上述數(shù)據(jù)采集方法的步驟S110之后還包括以下步驟:

步驟S150、在所述共享傳輸通道被寫滿時,將所述共享傳輸通道的日志數(shù)據(jù)存儲至所述存儲盤;

上述存儲盤150可以為磁盤、硬盤等等。在采集器110將采集的日志數(shù)據(jù)寫入共享傳輸通道140時,若共享傳輸通道140已寫滿,則將該寫滿的共享傳輸通道140的日志數(shù)據(jù)寫入磁盤中,并將共享傳輸通道140的日志數(shù)據(jù)清空,以存儲采集器110寫入的日志數(shù)據(jù)。

上述步驟S120還包括:從所述共享傳輸通道和所述存儲盤中讀取日志數(shù)據(jù),并將所讀取的日志數(shù)據(jù)發(fā)送至所述分布式消息隊列系統(tǒng)。

具體地,通過數(shù)據(jù)發(fā)送器將共享傳輸通道40和存儲盤150中的日志數(shù)據(jù)發(fā)送至所述分布式消息隊列系統(tǒng)120。所述分布式消息隊列系統(tǒng)120將讀取的日志數(shù)據(jù)進行壓縮處理,形成壓縮包。而且,該數(shù)據(jù)發(fā)送發(fā)送器160采用TCP、多線程的方式發(fā)送到分布式消息隊列系統(tǒng)120。

進一步地,上述步驟S130包括:按照配置中心的分揀規(guī)則,對從所述分布式消息隊列系統(tǒng)中讀取的所述日志數(shù)據(jù)進行分揀處理,獲得分揀數(shù)據(jù)。

數(shù)據(jù)采集系統(tǒng)的配置中心170用于可視化配置數(shù)據(jù)分揀的規(guī)則、數(shù)據(jù)選擇的字段、分配數(shù)據(jù)分拆后在分布式消息隊列系統(tǒng)120的存儲隊列等。具體可采用gojs實現(xiàn)可視化操作,并生成json格式的規(guī)則數(shù)據(jù)。

上述步驟S130對日志數(shù)據(jù)的分揀過程可包括:先按照分揀規(guī)則,對所述日志數(shù)據(jù)進行業(yè)務(wù)分類,然后按照所選擇的字段,將日志數(shù)據(jù)中相應(yīng)字段值提取出來,并進行拼接后,供下游使用。具體為:

首先,分揀引擎將分揀規(guī)則解析為“多分決策樹”。一條數(shù)據(jù)被分揀時,采用決策樹進行決策,確定該數(shù)據(jù)應(yīng)該屬于哪個業(yè)務(wù)。

上述多分決策樹的模型如下:

存儲格式:json

如:{

"nodeDataArray":[

{"key":1,"name":"Init","title":"ad_dtype","condition":"1==1"},

{"key":2,"name":"視頻和IM流量","title":"ad_clienttype","condition":"ad_dtype==2"},

{"key":3,"name":"IM","title":"bglct_id","condition":"ad_clienttype==1"}],

"linkDataArray":[

{"from":1,"to":2},

{"from":2,"to":3}]

}

其中,nodeDataArray表示決策樹的各個節(jié)點,condition表示到達該節(jié)點的條件,title表示從該節(jié)點出發(fā),下一步的拆分鍵。linkDataArray表示各條可能的通路。

一條數(shù)據(jù)通過多分決策樹的過程可以描述如下:

i.將數(shù)據(jù)拆分為<k,v>結(jié)構(gòu),放入map;

ii.從決策樹的根節(jié)點出發(fā),廣度遍歷(遍歷的過程中綜合節(jié)點的condition,condition不滿足時,該子路返回),得到所有可能的葉子節(jié)點;

iii.按葉子節(jié)點的名稱,分別輸出每條數(shù)據(jù)相應(yīng)的業(yè)務(wù)類型。

其次,根據(jù)配置中心170配置的對不同業(yè)務(wù)類型需要提取的字段的配置,將確定業(yè)務(wù)類型的日志數(shù)據(jù),提取與該業(yè)務(wù)類型相應(yīng)的字段的值,并對其進行拼接,供下游使用。

進一步地,如圖6所示,上述步驟S140之后還包括以下步驟:

步驟S160、從所述文件存儲系統(tǒng)中讀取日志數(shù)據(jù),并按照預(yù)設(shè)的分揀規(guī)則對所述日志數(shù)據(jù)進行分揀處理,獲得分揀數(shù)據(jù),再將該分揀數(shù)據(jù)存儲至所述文件存儲系統(tǒng);所述備用分揀引擎的分揀規(guī)則與實時分揀引擎的分揀規(guī)則相同。

為了保證離線狀態(tài)下日志數(shù)據(jù)的正常處理,還可利用云分揀器130中的備用分揀引擎132,所述備用分揀引擎132用于在實時分揀引擎131無法進行分揀時(例如,實時分揀引擎131出現(xiàn)故障時,或者分布式消息隊列系統(tǒng)120處于離線狀態(tài)時),從所述文件存儲系統(tǒng)200中讀取日志數(shù)據(jù),并按照預(yù)設(shè)的分揀規(guī)則對所述日志數(shù)據(jù)進行分揀處理,獲得分揀數(shù)據(jù),再存儲至所 述文件存儲系統(tǒng)200;所述備用分揀引擎132的分揀規(guī)則與實時分揀引擎131的分揀規(guī)則相同。配置中心170在更新或新增分揀規(guī)則后,還將該更新后的分揀規(guī)則同步至云分揀器130中的備用分揀引擎132。

上述實時分揀引擎131和備用分揀引擎132運行的分揀規(guī)則一致,且分揀過程也一致。因此具體的分揀過程可參照上述實時分揀引擎的分揀過程實施。即備用分揀引擎132從文件存儲系統(tǒng)200中讀取日志數(shù)據(jù),并按照備用分揀引擎132中預(yù)存的分揀規(guī)則對該日志數(shù)據(jù)進行業(yè)務(wù)分類,再提取該分類后的日志數(shù)據(jù)中與該業(yè)務(wù)類型對應(yīng)配置的字段的字段數(shù)據(jù),并將該提取的字段數(shù)據(jù)進行拼接,形成分揀數(shù)據(jù)。該分揀數(shù)據(jù)再存儲至文件存儲系統(tǒng)200中。

以上所述僅為本發(fā)明的優(yōu)選實施例,并非因此限制其專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1