本申請(qǐng)涉及數(shù)據(jù)庫(kù),具體地涉及一種數(shù)據(jù)處理方法、裝置及設(shè)備。
背景技術(shù):
1、數(shù)據(jù)倉(cāng)庫(kù)通過(guò)sql查詢語(yǔ)句實(shí)現(xiàn)對(duì)表格中數(shù)據(jù)的查詢計(jì)算等操作。但是對(duì)于某些較為復(fù)雜的業(yè)務(wù)邏輯,通過(guò)單一的查詢語(yǔ)句無(wú)法按成操作。工作流就是為了解決這一問(wèn)題,將較為復(fù)雜的業(yè)務(wù)拆分為多個(gè)子部分,按照某種預(yù)定規(guī)則通過(guò)多條查詢語(yǔ)句自動(dòng)執(zhí)行每一個(gè)子部分以實(shí)現(xiàn)對(duì)業(yè)務(wù)邏輯的處理。
2、在相關(guān)技術(shù)中,業(yè)務(wù)流中的查詢語(yǔ)句可能會(huì)出現(xiàn)重復(fù)的問(wèn)題,導(dǎo)致服務(wù)器資源的浪費(fèi)。同時(shí)業(yè)務(wù)流的設(shè)計(jì)也不能在數(shù)倉(cāng)層面知道數(shù)據(jù)治理,進(jìn)一步導(dǎo)致數(shù)倉(cāng)在開發(fā)過(guò)程中存在工程師未遵循規(guī)范、臨時(shí)緊急需求處理、血緣關(guān)系復(fù)雜等情況導(dǎo)致數(shù)倉(cāng)逐漸偏離了規(guī)范的問(wèn)題,隨著數(shù)倉(cāng)的建設(shè),工作流數(shù)量的增加,人工檢查也會(huì)變得很復(fù)雜、難維護(hù)、操作性很差。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明實(shí)施例提供了一種數(shù)據(jù)處理方法、裝置及設(shè)備,用以解決現(xiàn)有技術(shù)中查詢語(yǔ)句可能會(huì)出現(xiàn)重復(fù),導(dǎo)致服務(wù)器資源浪費(fèi)的問(wèn)題。
2、第一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)處理方法,所述方法包括:
3、對(duì)待處理的工作流中的查詢語(yǔ)句進(jìn)行解析,得到各所述工作流的關(guān)鍵字信息,所述關(guān)鍵字信息包括所述工作流的目標(biāo)表字段、查詢結(jié)果字段、源表字段、查詢條件字段、分組字段和排序字段;
4、根據(jù)各所述工作流的關(guān)鍵字信息對(duì)各所述工作流進(jìn)行優(yōu)化處理;
5、根據(jù)所述工作流的優(yōu)化處理結(jié)果更新數(shù)據(jù)倉(cāng)庫(kù)。
6、可選的,所述根據(jù)各所述工作流的關(guān)鍵字信息對(duì)各所述工作流進(jìn)行優(yōu)化處理,包括:
7、當(dāng)至少兩個(gè)工作流為同源相同計(jì)算工作流時(shí),對(duì)所述至少兩個(gè)工作流進(jìn)行合并;
8、當(dāng)至少兩個(gè)工作流為同源遞進(jìn)計(jì)算工作流時(shí),對(duì)所述至少兩個(gè)工作流進(jìn)行合并;
9、當(dāng)至少兩個(gè)工作流為同源相似計(jì)算工作流時(shí),對(duì)所述至少兩個(gè)工作流進(jìn)行合并;
10、當(dāng)至少兩個(gè)工作流為同源異維關(guān)聯(lián)計(jì)算工作流時(shí),對(duì)所述至少兩個(gè)工作流進(jìn)行拆分,通過(guò)拆分對(duì)維度表進(jìn)行降維。
11、可選的,所述當(dāng)至少兩個(gè)工作流為同源相同計(jì)算工作流時(shí),對(duì)所述至少兩個(gè)工作流進(jìn)行合并,包括:
12、當(dāng)至少兩個(gè)工作流的源表字段、查詢條件字段、分組字段和排序字段均相同時(shí),確定所述至少兩個(gè)工作流為同源相同計(jì)算工作流,基于所述至少兩個(gè)工作流的目標(biāo)表字段將所述至少兩個(gè)工作流合并為目標(biāo)工作流;
13、其中,合并后的目標(biāo)工作流用于并列執(zhí)行所述至少兩個(gè)工作流的查詢計(jì)算。
14、可選的,所述當(dāng)至少兩個(gè)工作流為同源遞進(jìn)計(jì)算工作流時(shí),對(duì)所述至少兩個(gè)工作流進(jìn)行合并,包括:
15、當(dāng)至少兩個(gè)工作流的源表字段、查詢條件字段和排序字段均相同,且至少兩個(gè)工作流的分組字段存在遞進(jìn)關(guān)系時(shí),確定所述至少兩個(gè)工作流為同源遞進(jìn)計(jì)算工作流,基于所述至少兩個(gè)工作流的目標(biāo)表字段和分組字段將所述至少兩個(gè)工作流合并為目標(biāo)工作流;
16、其中,合并后的目標(biāo)工作流用于根據(jù)遞進(jìn)關(guān)系依次執(zhí)行所述至少兩個(gè)工作流的查詢計(jì)算。
17、可選的,當(dāng)至少兩個(gè)工作流為同源相似計(jì)算工作流時(shí),對(duì)所述至少兩個(gè)工作流進(jìn)行合并,包括:
18、當(dāng)至少兩個(gè)工作流的源表字段、查詢條件字段和排序字段均相同,但分組字段不同且不存在遞進(jìn)關(guān)系時(shí),確定所述至少兩個(gè)工作流為同源相似計(jì)算工作流,根據(jù)所述至少兩個(gè)工作流的分組字段增加第一中間表;
19、根據(jù)所述第一中間表,以及所述至少兩個(gè)工作流的目標(biāo)表字段將所述至少兩個(gè)工作流合并為目標(biāo)工作流;
20、其中,合并后的目標(biāo)工作流用于根據(jù)所述第一中間表,以及所述至少兩個(gè)工作流的遞進(jìn)關(guān)系,依次執(zhí)行所述第一中間表與所述至少兩個(gè)工作流的查詢計(jì)算。
21、可選的,所述當(dāng)至少兩個(gè)工作流為同源異維關(guān)聯(lián)計(jì)算工作流時(shí),對(duì)所述至少兩個(gè)工作流進(jìn)行拆分,包括:
22、當(dāng)至少兩個(gè)工作流的源表字段相同,且關(guān)聯(lián)的維度表中的分組字段不同時(shí),確定所述至少兩個(gè)工作流為同源異維關(guān)聯(lián)計(jì)算工作流,通過(guò)所關(guān)聯(lián)維護(hù)表的分組字段確定出第二中間表;
23、根據(jù)所述第二中間表,以及所述至少兩個(gè)工作流的目標(biāo)表字段將所述至少兩個(gè)工作流拆分為至少三個(gè)目標(biāo)工作流;
24、其中,拆分后的多個(gè)目標(biāo)工作流用于根據(jù)所述第二中間表執(zhí)行所述至少兩個(gè)工作流的查詢計(jì)算。
25、可選的,確定關(guān)鍵字信息是否相同,包括:
26、將多個(gè)待確定字段中的字符串內(nèi)容拆分為多個(gè)數(shù)組;
27、將拆分后的多個(gè)數(shù)組根據(jù)預(yù)設(shè)的字符串內(nèi)容順序進(jìn)行重新排序;
28、通過(guò)比較重新排序后的字符串內(nèi)容是否相同,以確定多個(gè)待確定字段是否相同。
29、可選的,所述對(duì)待處理的工作流進(jìn)行解析,得到各所述工作流的關(guān)鍵字信息之后,所述方法還包括:
30、當(dāng)一個(gè)所述工作流中包含多個(gè)查詢語(yǔ)句時(shí),根據(jù)所述多個(gè)查詢語(yǔ)句解析得到與各所述查詢語(yǔ)句所對(duì)應(yīng)的多個(gè)關(guān)鍵字信息;
31、根據(jù)所述多個(gè)關(guān)鍵字確定各所述查詢語(yǔ)句的血緣關(guān)系;
32、將其中血緣關(guān)系相同的各個(gè)查詢語(yǔ)句進(jìn)行去重處理。
33、第二方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)處理裝置,所述裝置包括:
34、解析模塊,對(duì)待處理的工作流中的查詢語(yǔ)句進(jìn)行解析,得到各所述工作流的關(guān)鍵字信息,所述關(guān)鍵字信息包括所述工作流的目標(biāo)表字段、查詢結(jié)果字段、源表字段、查詢條件字段、分組字段和排序字段;
35、優(yōu)化模塊,根據(jù)各所述工作流的關(guān)鍵字信息對(duì)各所述工作流進(jìn)行優(yōu)化處理;
36、更新模塊,根據(jù)所述工作流的優(yōu)化處理結(jié)果更新數(shù)據(jù)倉(cāng)庫(kù)。
37、第三方面,本發(fā)明實(shí)施例提供了一種電子設(shè)備,包括:
38、至少一個(gè)處理器;以及
39、與所述處理器通信連接的至少一個(gè)存儲(chǔ)器,其中:
40、所述存儲(chǔ)器存儲(chǔ)有可被所述處理器執(zhí)行的程序指令,所述處理器調(diào)用所述程序指令能夠執(zhí)行如第一方面任一項(xiàng)所述的方法。
41、在本發(fā)明實(shí)施例中,通過(guò)對(duì)工作流進(jìn)行解析得到關(guān)鍵字信息,對(duì)關(guān)鍵字信息滿足預(yù)設(shè)條件的多個(gè)工作流進(jìn)行優(yōu)化,減少了工作流的重復(fù)計(jì)算,節(jié)省計(jì)算資源和計(jì)算成本,提高數(shù)據(jù)加工任務(wù)合理性,提高可維護(hù)性,提高任務(wù)健壯性,節(jié)約運(yùn)維成本。還可以針對(duì)增量的工作流和修改的工作流,可以及時(shí)進(jìn)行工作流檢查,及時(shí)發(fā)現(xiàn)問(wèn)題、解決問(wèn)題,實(shí)時(shí)保證數(shù)據(jù)質(zhì)量。
42、同時(shí)優(yōu)化后的工作流還可以明確數(shù)倉(cāng)建設(shè),提高數(shù)倉(cāng)的規(guī)范性,提高元數(shù)據(jù)、血緣關(guān)系的合理性,提高數(shù)據(jù)治理能力和企業(yè)數(shù)據(jù)管理能力成熟度。
1.一種數(shù)據(jù)處理方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)各所述工作流的關(guān)鍵字信息對(duì)各所述工作流進(jìn)行優(yōu)化處理,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述當(dāng)至少兩個(gè)工作流為同源相同計(jì)算工作流時(shí),對(duì)所述至少兩個(gè)工作流進(jìn)行合并,包括:
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述當(dāng)至少兩個(gè)工作流為同源遞進(jìn)計(jì)算工作流時(shí),對(duì)所述至少兩個(gè)工作流進(jìn)行合并,包括:
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,當(dāng)至少兩個(gè)工作流為同源相似計(jì)算工作流時(shí),對(duì)所述至少兩個(gè)工作流進(jìn)行合并,包括:
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述當(dāng)至少兩個(gè)工作流為同源異維關(guān)聯(lián)計(jì)算工作流時(shí),對(duì)所述至少兩個(gè)工作流進(jìn)行拆分,包括:
7.根據(jù)權(quán)利要求3-6任一項(xiàng)所述的方法,確定關(guān)鍵字信息是否相同,包括:
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對(duì)待處理的工作流進(jìn)行解析,得到各所述工作流的關(guān)鍵字信息之后,所述方法還包括:
9.一種數(shù)據(jù)處理裝置,其特征在于,所述裝置包括:
10.一種電子設(shè)備,其特征在于,包括: