本發(fā)明涉及數(shù)據(jù)分析領(lǐng)域,尤其涉及一種流數(shù)據(jù)的實(shí)時(shí)分析處理方法及系統(tǒng)。
背景技術(shù):
隨著移動(dòng)互聯(lián)網(wǎng)的迅猛發(fā)展,大數(shù)據(jù)時(shí)代的到來(lái),需要實(shí)時(shí)分析處理的數(shù)據(jù)也越來(lái)越多,現(xiàn)有的處理數(shù)據(jù)的方法包括以下幾個(gè)步驟:數(shù)據(jù)接入、數(shù)據(jù)匯聚、數(shù)據(jù)沉淀和數(shù)據(jù)可視化展現(xiàn),現(xiàn)有的數(shù)據(jù)處理平臺(tái)通常是根據(jù)業(yè)務(wù)需求將流數(shù)據(jù)處理方法結(jié)合實(shí)時(shí)分析腳本搭建的數(shù)據(jù)處理平臺(tái),這種數(shù)據(jù)處理平臺(tái)需要大量的人力成本去解讀業(yè)務(wù)需求、開(kāi)發(fā)分析腳本,具有開(kāi)發(fā)成本高、開(kāi)發(fā)難度大的缺點(diǎn)?,F(xiàn)有的數(shù)據(jù)處理平臺(tái)在面臨大規(guī)模的數(shù)據(jù)處理和復(fù)雜多樣的業(yè)務(wù)場(chǎng)景時(shí),具有以下的問(wèn)題:
1、流數(shù)據(jù)實(shí)時(shí)分析處理平臺(tái)開(kāi)發(fā)難度大,需要熟悉各種技術(shù)組件的接口及編程規(guī)范,每個(gè)業(yè)務(wù)腳本都需要進(jìn)行大量的編碼和測(cè)試。
2、通過(guò)提交業(yè)務(wù)規(guī)則文檔給技術(shù)人員進(jìn)行業(yè)務(wù)配置的流程長(zhǎng),比較繁瑣,需要技術(shù)人員再進(jìn)行業(yè)務(wù)規(guī)則的二次解讀,無(wú)法高效的進(jìn)行業(yè)務(wù)的配置。
3、無(wú)法對(duì)數(shù)據(jù)進(jìn)行及時(shí)地?cái)?shù)據(jù)可視化展現(xiàn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是針對(duì)數(shù)據(jù)處理系統(tǒng)開(kāi)發(fā)成本高、開(kāi)發(fā)難度大、業(yè)務(wù)配置效率低且無(wú)法對(duì)數(shù)據(jù)進(jìn)行及時(shí)地?cái)?shù)據(jù)可視化展現(xiàn)的問(wèn)題,提供一種流數(shù)據(jù)的實(shí)時(shí)分析處理方法及系統(tǒng)。
本發(fā)明解決上述技術(shù)問(wèn)題的技術(shù)方案如下:
一種流數(shù)據(jù)的實(shí)時(shí)分析處理方法,包括以下步驟:
步驟1,獲取通過(guò)圖形化配置工具配置的圖形化處理規(guī)則,將所述處理規(guī)則轉(zhuǎn)換成sql語(yǔ)句;
步驟2,獲取需要進(jìn)行實(shí)時(shí)分析處理的流數(shù)據(jù);
步驟3,從所述流數(shù)據(jù)中提取關(guān)鍵字段;
步驟4,根據(jù)所述關(guān)鍵字段繪制寬表;
步驟5,根據(jù)所述sql語(yǔ)句和所述寬表對(duì)所述流數(shù)據(jù)進(jìn)行實(shí)時(shí)分析處理。
本發(fā)明的有益效果是:本發(fā)明提供的一種流數(shù)據(jù)的實(shí)時(shí)分析處理方法,通過(guò)獲取通過(guò)圖形化配置工具配置的處理規(guī)則,將處理規(guī)則轉(zhuǎn)換為sql語(yǔ)言,再獲取流數(shù)據(jù),根據(jù)流數(shù)據(jù)繪制寬表,結(jié)合sql化的規(guī)則和寬表對(duì)流數(shù)據(jù)進(jìn)行處理,解決了當(dāng)前數(shù)據(jù)實(shí)時(shí)分析處理系統(tǒng)腳本編程復(fù)雜、資源無(wú)法高效使用、業(yè)務(wù)配置繁瑣的問(wèn)題,可以有效地提高開(kāi)發(fā)效率,通過(guò)圖形化配置工具配置處理規(guī)則,無(wú)需通過(guò)技術(shù)人員確認(rèn)口徑是否準(zhǔn)確、如何轉(zhuǎn)化成專(zhuān)業(yè)的技術(shù)語(yǔ)言,提高了業(yè)務(wù)配置的效率,解決了業(yè)務(wù)人員一直存在的不能夠自主配置業(yè)務(wù)口徑的問(wèn)題。
在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
進(jìn)一步地,所述處理規(guī)則由預(yù)先設(shè)置好的運(yùn)算符號(hào)、邏輯符號(hào)和業(yè)務(wù)原子指標(biāo)根據(jù)實(shí)際業(yè)務(wù)需求組合而成,其中,所述運(yùn)算符號(hào)為用于進(jìn)行數(shù)學(xué)運(yùn)算的符號(hào),所述邏輯符號(hào)為用于進(jìn)行邏輯運(yùn)算的符號(hào),所述業(yè)務(wù)原子指標(biāo)為通過(guò)對(duì)流數(shù)據(jù)中的與業(yè)務(wù)相關(guān)的業(yè)務(wù)指標(biāo)進(jìn)行分解得到的底層元數(shù)據(jù)。
進(jìn)一步地,步驟2還包括:
步驟21,從所述流數(shù)據(jù)中提取多個(gè)業(yè)務(wù)指標(biāo)的單表增量數(shù)據(jù);
步驟22,將多個(gè)所述業(yè)務(wù)指標(biāo)的單表增量數(shù)據(jù)與對(duì)應(yīng)的存量數(shù)據(jù)存放在相同的位置中,得到多個(gè)所述業(yè)務(wù)指標(biāo)的單表增存數(shù)據(jù);
步驟23,將多個(gè)所述業(yè)務(wù)指標(biāo)的單表增存數(shù)據(jù)進(jìn)行整合,使整合后的所有業(yè)務(wù)指標(biāo)的單表增存數(shù)據(jù)有共同的唯一主鍵。
采用上述進(jìn)一步方案的有益效果是:通過(guò)對(duì)原始的流數(shù)據(jù)進(jìn)行數(shù)據(jù)匯聚和數(shù)據(jù)整合,再對(duì)處理過(guò)的數(shù)據(jù)進(jìn)行實(shí)時(shí)分析,能夠提高實(shí)時(shí)分析處理的效率,同時(shí)便于處理過(guò)程中數(shù)據(jù)的可視化顯示。
進(jìn)一步地,步驟5中,通過(guò)hive平臺(tái)對(duì)所述流數(shù)據(jù)進(jìn)行實(shí)時(shí)分析處理。
進(jìn)一步地,步驟5具體包括:
步驟5.1,獲取hive源表;
步驟5.2,根據(jù)業(yè)務(wù)需求對(duì)所述hive源表進(jìn)行整合;
步驟5.3,將所述寬表加載到所述hive源表中;
步驟5.4,通過(guò)python腳本加載所述sql語(yǔ)句;
步驟5.5,根據(jù)所述hive源表加載所述流數(shù)據(jù);
步驟5.6,根據(jù)所述sql語(yǔ)句對(duì)所述流數(shù)據(jù)進(jìn)行處理。
進(jìn)一步地,還包括:
步驟6,對(duì)進(jìn)行實(shí)時(shí)分析處理的所述流數(shù)據(jù)進(jìn)行實(shí)時(shí)的可視化顯示。
本發(fā)明解決上述技術(shù)問(wèn)題的另一種技術(shù)方案如下:
一種流數(shù)據(jù)的實(shí)時(shí)分析處理系統(tǒng),包括:
規(guī)則配置模塊,用于獲取通過(guò)圖形化配置工具配置的圖形化處理規(guī)則;
規(guī)則轉(zhuǎn)換模塊,用于將所述處理規(guī)則轉(zhuǎn)換成sql語(yǔ)句;
數(shù)據(jù)處理模塊,用于獲取需要進(jìn)行實(shí)時(shí)分析處理的流數(shù)據(jù);
寬表生成模塊,用于從所述流數(shù)據(jù)中提取關(guān)鍵字段,并根據(jù)所述關(guān)鍵字段繪制寬表;
實(shí)時(shí)分析處理模塊,用于根據(jù)所述sql語(yǔ)句和所述寬表對(duì)所述流數(shù)據(jù)進(jìn)行實(shí)時(shí)分析處理。
進(jìn)一步地,所述處理規(guī)則由預(yù)先設(shè)置好的運(yùn)算符號(hào)、邏輯符號(hào)和業(yè)務(wù)原子指標(biāo)根據(jù)實(shí)際業(yè)務(wù)需求組合而成,其中,所述運(yùn)算符號(hào)為用于進(jìn)行數(shù)學(xué)運(yùn)算的符號(hào),所述邏輯符號(hào)為用于進(jìn)行邏輯運(yùn)算的符號(hào),所述業(yè)務(wù)原子指標(biāo)為通過(guò)對(duì)流數(shù)據(jù)中的與業(yè)務(wù)相關(guān)的業(yè)務(wù)指標(biāo)進(jìn)行分解得到的底層元數(shù)據(jù)。
進(jìn)一步地,所述數(shù)據(jù)處理模塊還用于從所述流數(shù)據(jù)中提取多個(gè)業(yè)務(wù)指標(biāo)的單表增量數(shù)據(jù),將多個(gè)所述業(yè)務(wù)指標(biāo)的單表增量數(shù)據(jù)與對(duì)應(yīng)的存量數(shù)據(jù)存放在相同的位置中,得到多個(gè)所述業(yè)務(wù)指標(biāo)的單表增存數(shù)據(jù),并將多個(gè)所述業(yè)務(wù)指標(biāo)的單表增存數(shù)據(jù)進(jìn)行整合,使整合后的所有業(yè)務(wù)指標(biāo)的單表增存數(shù)據(jù)有共同的唯一主鍵。
進(jìn)一步地,實(shí)時(shí)分析處理模塊具體用于通過(guò)hive平臺(tái)對(duì)所述流數(shù)據(jù)進(jìn)行實(shí)時(shí)分析處理。
進(jìn)一步地,實(shí)時(shí)分析處理模塊包括:
源表獲取單元,用于獲取hive源表;
源表整合單元,用于根據(jù)業(yè)務(wù)需求對(duì)所述hive源表進(jìn)行整合;
源表加載單元,用于將所述寬表加載到所述hive源表中,并通過(guò)python腳本加載所述sql語(yǔ)句;
數(shù)據(jù)處理單元,用于根據(jù)所述sql語(yǔ)句對(duì)所述流數(shù)據(jù)進(jìn)行處理。
進(jìn)一步地,所述規(guī)則配置模塊還用于對(duì)進(jìn)行實(shí)時(shí)分析處理的所述流數(shù)據(jù)進(jìn)行實(shí)時(shí)的可視化顯示。
本發(fā)明附加的方面的優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本發(fā)明實(shí)踐了解到。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例提供的一種流數(shù)據(jù)的實(shí)時(shí)分析處理方法的流程示意圖;
圖2為本發(fā)明另一實(shí)施例提供的一種流數(shù)據(jù)的實(shí)時(shí)分析處理系統(tǒng)的結(jié)構(gòu)框架圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
如圖1所示,為本發(fā)明實(shí)施例提供的一種流數(shù)據(jù)的實(shí)時(shí)分析處理方法的流程示意圖,該方法包括:
s101,獲取通過(guò)圖形化配置工具配置的圖形化處理規(guī)則,將處理規(guī)則轉(zhuǎn)換成sql語(yǔ)句;
s102,獲取需要進(jìn)行實(shí)時(shí)分析處理的流數(shù)據(jù);
s103,從流數(shù)據(jù)中提取關(guān)鍵字段;
s104,根據(jù)關(guān)鍵字段繪制寬表;
s105,根據(jù)sql語(yǔ)句和寬表對(duì)流數(shù)據(jù)進(jìn)行實(shí)時(shí)分析處理。
上述實(shí)施例中提供的一種流數(shù)據(jù)的實(shí)時(shí)分析處理方法,通過(guò)獲取通過(guò)圖形化配置工具配置的處理規(guī)則,將處理規(guī)則轉(zhuǎn)換為sql語(yǔ)言,再獲取流數(shù)據(jù),根據(jù)流數(shù)據(jù)繪制寬表,結(jié)合sql化的規(guī)則和寬表對(duì)流數(shù)據(jù)進(jìn)行處理,解決了當(dāng)前數(shù)據(jù)實(shí)時(shí)分析處理系統(tǒng)腳本編程復(fù)雜、資源無(wú)法高效使用、業(yè)務(wù)配置繁瑣的問(wèn)題,可以有效地提高開(kāi)發(fā)效率,通過(guò)圖形化配置工具配置處理規(guī)則,無(wú)需通過(guò)技術(shù)人員確認(rèn)口徑是否準(zhǔn)確、如何轉(zhuǎn)化成專(zhuān)業(yè)的技術(shù)語(yǔ)言,提高了業(yè)務(wù)配置的效率,解決了業(yè)務(wù)人員一直存在的不能夠自主配置業(yè)務(wù)口徑的問(wèn)題。
在另一實(shí)施例中,以移動(dòng)業(yè)務(wù)為例,提供的一種流數(shù)據(jù)的實(shí)時(shí)分析處理方法的流程,該方法包括以下步驟:
獲取通過(guò)圖形化配置工具配置的圖形化處理規(guī)則,其中,圖形化處理規(guī)則指的是由圖形化配置工具配置的,進(jìn)行圖形化、可視化、可解讀展示的業(yè)務(wù)規(guī)則,可以將業(yè)務(wù)規(guī)則中的各元素通過(guò)圖形的形式展示出來(lái),由預(yù)先設(shè)置好的運(yùn)算符號(hào)、邏輯符號(hào)和業(yè)務(wù)原子指標(biāo)根據(jù)實(shí)際業(yè)務(wù)需求組合而成,運(yùn)算符號(hào)為用于進(jìn)行數(shù)學(xué)運(yùn)算的符號(hào),包含加、減、乘、除、括號(hào)等運(yùn)算符號(hào),邏輯符號(hào)為用于進(jìn)行邏輯運(yùn)算的符號(hào),包含和、或等邏輯比較符號(hào),業(yè)務(wù)原子指標(biāo)為通過(guò)對(duì)流數(shù)據(jù)中的與業(yè)務(wù)相關(guān)的業(yè)務(wù)指標(biāo)進(jìn)行分解得到的底層元數(shù)據(jù),包含銷(xiāo)售品原子指標(biāo)、產(chǎn)品原子指標(biāo)、訂單屬性原子指標(biāo)等,例如,銷(xiāo)售品原子指標(biāo)就是一個(gè)單獨(dú)的元素,使用者通過(guò)拖拽等操作,與運(yùn)算符號(hào)、邏輯符號(hào)等進(jìn)行排列和組合,形成一條完整的業(yè)務(wù)規(guī)則;
將處理規(guī)則轉(zhuǎn)換成sql語(yǔ)句,例如,通過(guò)圖形化配置工具配置了以下業(yè)務(wù)規(guī)則:“銷(xiāo)售品=飛young19套餐(集團(tuán)網(wǎng)廳專(zhuān)用)(僅遷移)_zj和產(chǎn)品=移動(dòng)電話(huà)和(訂單屬性=訂單狀態(tài)(新建)或訂單屬性=訂單子行為(新增))”,其中,“銷(xiāo)售品、產(chǎn)品、訂單屬性”都是業(yè)務(wù)原子指標(biāo),“括號(hào)”為運(yùn)算符號(hào),“等號(hào)、或、和”為邏輯符號(hào),轉(zhuǎn)化為sql語(yǔ)句:“(prom_row_id='zl2012061980686'andprod_id='1-8gf4jtw'and(status_cd='新建'orx_action_type='新增'))andprod_name='產(chǎn)品新增'”;
獲取需要進(jìn)行實(shí)時(shí)分析處理的流數(shù)據(jù),由于流數(shù)據(jù)是不斷增加的,因此,以當(dāng)前的存量數(shù)據(jù)為基礎(chǔ),獲取需要處理的業(yè)務(wù)原子指標(biāo)的單表增量數(shù)據(jù),將多個(gè)業(yè)務(wù)指標(biāo)的單表增量數(shù)據(jù)與對(duì)應(yīng)的存量數(shù)據(jù)存放在相同的位置中,例如,以訂單子行為(新增)為例,對(duì)應(yīng)的存量數(shù)據(jù)存放在a表中,在獲得新的訂單子行為(新增)數(shù)據(jù)后,存放在a表的相應(yīng)位置中,得到多個(gè)業(yè)務(wù)指標(biāo)的單表增存數(shù)據(jù),將多個(gè)業(yè)務(wù)指標(biāo)的單表增存數(shù)據(jù)進(jìn)行整合,使整合后的所有業(yè)務(wù)指標(biāo)的單表增存數(shù)據(jù)有共同的唯一主鍵,例如,a表和b表有唯一的主鍵,b表為銷(xiāo)售品的數(shù)據(jù),則將a表與b表整合成為一張表;
從流數(shù)據(jù)中提取關(guān)鍵字段,例如,當(dāng)處理產(chǎn)品新增訂單的數(shù)據(jù)時(shí),關(guān)鍵字段可以為產(chǎn)品、訂單子行為(新增)等;
根據(jù)關(guān)鍵字段繪制寬表,寬表是流數(shù)據(jù)處理的基礎(chǔ),數(shù)據(jù)源;
根據(jù)sql語(yǔ)句和寬表,通過(guò)hive平臺(tái)對(duì)流數(shù)據(jù)進(jìn)行實(shí)時(shí)分析處理,具體包括:獲取hive源表,根據(jù)業(yè)務(wù)需求對(duì)hive源表進(jìn)行整合,將寬表加載到hive源表中,通過(guò)python腳本加載sql語(yǔ)句,根據(jù)hive源表加載流數(shù)據(jù),根據(jù)sql語(yǔ)句對(duì)流數(shù)據(jù)進(jìn)行處理;
對(duì)進(jìn)行實(shí)時(shí)分析處理的流數(shù)據(jù)進(jìn)行實(shí)時(shí)的可視化顯示,獲取進(jìn)行實(shí)時(shí)分析處理的流數(shù)據(jù),實(shí)時(shí)地將分析結(jié)果和數(shù)據(jù)通過(guò)可視化配置工具進(jìn)行顯示。
進(jìn)一步,業(yè)務(wù)指標(biāo)通過(guò)以下兩種方式分解為業(yè)務(wù)原子指標(biāo):
通過(guò)維表提取相同類(lèi)的業(yè)務(wù)指標(biāo);
或,通過(guò)原子指標(biāo)分析模塊對(duì)業(yè)務(wù)指標(biāo)進(jìn)行分析得到業(yè)務(wù)原子指標(biāo)。
在另一實(shí)施例中,如圖2所示,為本發(fā)明另一實(shí)施例提供的一種流數(shù)據(jù)的實(shí)時(shí)分析處理系統(tǒng)的結(jié)構(gòu)框架圖,該系統(tǒng)包括:
規(guī)則配置模塊210,用于獲取通過(guò)圖形化配置工具配置的圖形化處理規(guī)則;
規(guī)則轉(zhuǎn)換模塊220,用于將處理規(guī)則轉(zhuǎn)換成sql語(yǔ)句;
數(shù)據(jù)處理模塊230,用于獲取需要進(jìn)行實(shí)時(shí)分析處理的流數(shù)據(jù);
寬表生成模塊240,用于從流數(shù)據(jù)中提取關(guān)鍵字段,并根據(jù)關(guān)鍵字段繪制寬表;
實(shí)時(shí)分析處理模塊250,用于根據(jù)sql語(yǔ)句和寬表對(duì)流數(shù)據(jù)進(jìn)行實(shí)時(shí)分析處理。
進(jìn)一步,處理規(guī)則由預(yù)先設(shè)置好的運(yùn)算符號(hào)、邏輯符號(hào)和業(yè)務(wù)原子指標(biāo)根據(jù)實(shí)際業(yè)務(wù)需求組合而成,其中,運(yùn)算符號(hào)為用于進(jìn)行數(shù)學(xué)運(yùn)算的符號(hào),邏輯符號(hào)為用于進(jìn)行邏輯運(yùn)算的符號(hào),業(yè)務(wù)原子指標(biāo)為通過(guò)對(duì)流數(shù)據(jù)中的與業(yè)務(wù)相關(guān)的業(yè)務(wù)指標(biāo)進(jìn)行分解得到的底層元數(shù)據(jù)。
進(jìn)一步,數(shù)據(jù)處理模塊230還用于從流數(shù)據(jù)中提取多個(gè)業(yè)務(wù)指標(biāo)的單表增量數(shù)據(jù),將多個(gè)業(yè)務(wù)指標(biāo)的單表增量數(shù)據(jù)與對(duì)應(yīng)的存量數(shù)據(jù)存放在相同的位置中,得到多個(gè)業(yè)務(wù)指標(biāo)的單表增存數(shù)據(jù),并將多個(gè)業(yè)務(wù)指標(biāo)的單表增存數(shù)據(jù)進(jìn)行整合,使整合后的所有業(yè)務(wù)指標(biāo)的單表增存數(shù)據(jù)有共同的唯一主鍵。
進(jìn)一步,實(shí)時(shí)分析處理模塊250具體用于通過(guò)hive平臺(tái)對(duì)流數(shù)據(jù)進(jìn)行實(shí)時(shí)分析處理。
進(jìn)一步,實(shí)時(shí)分析處理模塊250包括:
源表獲取單元251,用于獲取hive源表;
源表整合單元252,用于根據(jù)業(yè)務(wù)需求對(duì)hive源表進(jìn)行整合;
源表加載單元253,用于將寬表加載到hive源表中,并通過(guò)python腳本加載sql語(yǔ)句;
數(shù)據(jù)處理單元254,用于根據(jù)sql語(yǔ)句對(duì)流數(shù)據(jù)進(jìn)行處理。
進(jìn)一步,規(guī)則配置模塊210還用于對(duì)進(jìn)行實(shí)時(shí)分析處理的流數(shù)據(jù)進(jìn)行實(shí)時(shí)的可視化顯示。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為了描述的方便和簡(jiǎn)潔,上述描述的裝置和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的系統(tǒng)實(shí)施例僅僅是示意性的,例如,模塊的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)模塊或單元可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口、裝置或單元的間接耦合或通信連接,也可以是電的,機(jī)械的或其它的形式連接。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。