本技術(shù)涉及數(shù)據(jù)管理,具體涉及一種作業(yè)依賴關(guān)系查詢方法、裝置、設(shè)備及介質(zhì)。
背景技術(shù):
1、隨著大數(shù)據(jù)平臺的快速發(fā)展,不斷有功能更加完善的調(diào)度平臺投產(chǎn)上線。例如,魯班調(diào)度平臺,是一種企業(yè)級的作業(yè)管控與調(diào)度平臺,可以根據(jù)應(yīng)用項目配置實現(xiàn)批量作業(yè)的觸發(fā)、調(diào)起、狀態(tài)同步等功能。因此,魯班調(diào)度平臺中包括大量作業(yè)、作業(yè)流和作業(yè)依賴關(guān)系。
2、當(dāng)魯班調(diào)度平臺中的某個作業(yè)發(fā)生更改,需要從魯班調(diào)度平臺的數(shù)據(jù)庫中查詢出與某個作業(yè)存在依賴關(guān)系的所有作業(yè)時,首先在數(shù)據(jù)庫中查詢出與某個作業(yè)對應(yīng)的第一直接依賴作業(yè),然后在數(shù)據(jù)庫中查詢出第一直接依賴作業(yè)對應(yīng)的第二直接依賴作業(yè),如此往復(fù),直至從數(shù)據(jù)庫中查詢不出當(dāng)前直接依賴作業(yè)對應(yīng)的直接依賴作業(yè)。但這種作業(yè)依賴關(guān)系查詢方法會無條件多次串行訪問數(shù)據(jù)庫,當(dāng)有多個作業(yè)都發(fā)生更改時,會帶來很大的時延,導(dǎo)致查詢效率低。
技術(shù)實現(xiàn)思路
1、本技術(shù)實施例提供一種作業(yè)依賴關(guān)系查詢方法、裝置、設(shè)備及介質(zhì),用于解決當(dāng)前作業(yè)依賴關(guān)系查詢效率低的問題。
2、第一方面,本技術(shù)提供一種作業(yè)依賴關(guān)系查詢方法,所述方法包括:
3、響應(yīng)于接收到查詢請求,從所述查詢請求中解析出作業(yè)標(biāo)識以及循環(huán)次數(shù);
4、在所述循環(huán)次數(shù)等于預(yù)設(shè)值時,基于所述作業(yè)標(biāo)識對基礎(chǔ)依賴信息表進行查詢,得到目標(biāo)查詢結(jié)果;其中,所述基礎(chǔ)依賴信息表中至少包括作業(yè)標(biāo)識、目標(biāo)作業(yè)標(biāo)識、所述作業(yè)標(biāo)識和所述目標(biāo)作業(yè)標(biāo)識之間的依賴關(guān)系;
5、在所述循環(huán)次數(shù)大于預(yù)設(shè)值時,基于所述作業(yè)標(biāo)識對所述基礎(chǔ)依賴信息表進行循環(huán)查詢,得到目標(biāo)循環(huán)查詢結(jié)果。
6、通過上述方法,將作業(yè)標(biāo)識、目標(biāo)作業(yè)標(biāo)識、作業(yè)標(biāo)識和目標(biāo)作業(yè)標(biāo)識之間的依賴關(guān)系導(dǎo)入基礎(chǔ)依賴信息表,從而在接收到查詢請求時,根據(jù)查詢請求中的作業(yè)標(biāo)識對基礎(chǔ)依賴信息表進行查詢,無需去數(shù)據(jù)庫中一一比對,提高查詢效率。同時,基于查詢請求中的循環(huán)次數(shù),判斷是否需要基于作業(yè)標(biāo)識對基礎(chǔ)依賴信息表進行循環(huán)查詢,從而可以避免無條件多次訪問基礎(chǔ)依賴信息表,進一步提高查詢效率。
7、在一種可能的實施例中,所述作業(yè)標(biāo)識至少包括作業(yè)名稱和作業(yè)流名稱,所述目標(biāo)作業(yè)標(biāo)識至少包括目標(biāo)作業(yè)名稱和目標(biāo)作業(yè)流名稱,所述作業(yè)標(biāo)識和所述目標(biāo)作業(yè)標(biāo)識為統(tǒng)一格式數(shù)據(jù)。
8、通過上述方法,可以在基礎(chǔ)依賴信息表中準(zhǔn)確查詢出作業(yè)標(biāo)識對應(yīng)的目標(biāo)作業(yè)標(biāo)識,進而提高作業(yè)依賴關(guān)系查詢的準(zhǔn)確性。
9、在一種可能的實施例中,所述基于所述作業(yè)標(biāo)識對基礎(chǔ)依賴信息表進行查詢,得到目標(biāo)查詢結(jié)果,包括:
10、基于所述作業(yè)標(biāo)識在所述基礎(chǔ)依賴信息表中查詢出與所述作業(yè)標(biāo)識直接依賴的目標(biāo)作業(yè)標(biāo)識;
11、將所述作業(yè)標(biāo)識與所述目標(biāo)作業(yè)標(biāo)識關(guān)聯(lián),得到所述目標(biāo)查詢結(jié)果。
12、通過上述方法,基于作業(yè)標(biāo)識,可以從基礎(chǔ)依賴信息表中查詢出對應(yīng)的作業(yè),進而查詢出與作業(yè)直接依賴的目標(biāo)作業(yè)。
13、在一種可能的實施例中,所述基于所述作業(yè)標(biāo)識對所述基礎(chǔ)依賴信息表進行循環(huán)查詢,得到目標(biāo)循環(huán)查詢結(jié)果,包括:
14、基于所述作業(yè)標(biāo)識對所述基礎(chǔ)依賴信息表進行循環(huán)查詢,得到循環(huán)查詢結(jié)果,并更新所述循環(huán)次數(shù),得到更新后的循環(huán)次數(shù);
15、判斷更新后的循環(huán)次數(shù)是否等于所述預(yù)設(shè)值;
16、若是,則基于上一次循環(huán)查詢結(jié)果對所述基礎(chǔ)依賴信息表進行循環(huán)查詢,得到當(dāng)前循環(huán)查詢結(jié)果,并將所述當(dāng)前循環(huán)查詢結(jié)果以及所述當(dāng)前循環(huán)查詢結(jié)果之前的循環(huán)查詢結(jié)果作為所述目標(biāo)循環(huán)查詢結(jié)果;
17、若否,則基于上一次循環(huán)查詢結(jié)果對所述基礎(chǔ)依賴信息表進行循環(huán)查詢,直至更新后的循環(huán)次數(shù)小于所述預(yù)設(shè)值,將所有循環(huán)查詢結(jié)果作為所述目標(biāo)循環(huán)查詢結(jié)果。
18、通過上述方法,在進行每一次循環(huán)查詢時,都先基于更新后的循環(huán)次數(shù),判斷是否需要進行循環(huán)查詢,從而可以避免多次重復(fù)訪問基礎(chǔ)依賴信息表,進一步提高查詢效率。
19、在一種可能的實施例中,所述基于上一次循環(huán)查詢結(jié)果對所述基礎(chǔ)依賴信息表進行循環(huán)查詢,直至更新后的循環(huán)次數(shù)小于所述預(yù)設(shè)值,將所有循環(huán)查詢結(jié)果作為所述目標(biāo)循環(huán)查詢結(jié)果,包括:
20、將上一次循環(huán)查詢結(jié)果存儲至臨時表;
21、基于所述臨時表中第m次循環(huán)查詢結(jié)果對所述基礎(chǔ)依賴信息表進行循環(huán)查詢,得到第m+1次循環(huán)查詢結(jié)果;其中,m為大于0的整數(shù);
22、基于所述第m+1次循環(huán)查詢結(jié)果更新所述臨時表,直至更新后的循環(huán)次數(shù)小于所述預(yù)設(shè)值,將所有循環(huán)查詢結(jié)果作為所述目標(biāo)循環(huán)查詢結(jié)果。
23、通過上述方法,在循環(huán)查詢過程中,將上一次循環(huán)查詢結(jié)果存儲至臨時表,且臨時表中只存儲上一次循環(huán)查詢結(jié)果,從而在基于上一次查詢結(jié)果進行循環(huán)查詢時,可以避免出現(xiàn)將上一次循環(huán)查詢結(jié)果之前的循環(huán)查詢結(jié)果作為查詢條件進行查詢的情況,保證查詢的精準(zhǔn)性,同時,在上一次循環(huán)查詢結(jié)果中有多個目標(biāo)作業(yè)時,可以防止數(shù)據(jù)遺漏。
24、在一種可能的實施例中,所述基于所述第m+1次循環(huán)查詢結(jié)果更新所述臨時表,還包括:
25、在所述第m+1次循環(huán)查詢結(jié)果為空值時,不更新所述臨時表。
26、通過上述方法,在第m+1次循環(huán)查詢結(jié)果為空值,不更新臨時表,仍然基于第m次循環(huán)查詢結(jié)果對基礎(chǔ)依賴信息表進行循環(huán)查詢,可以防止出現(xiàn)漏查的情況。
27、在一種可能的實施例中,所述方法還包括:
28、將所述目標(biāo)查詢結(jié)果或所述目標(biāo)循環(huán)查詢結(jié)果按照預(yù)設(shè)規(guī)則存儲至結(jié)果表,其中,所述結(jié)果表的字段信息至少包括作業(yè)標(biāo)識、目標(biāo)作業(yè)標(biāo)識和層級,所述目標(biāo)查詢結(jié)果屬于第一層級,所述目標(biāo)循環(huán)查詢結(jié)果中第m次循環(huán)查詢的結(jié)果屬于第m層級。
29、通過上述方法,將目標(biāo)查詢結(jié)果或循環(huán)查詢結(jié)果按照預(yù)設(shè)規(guī)則存儲至結(jié)果表,以便用戶查看。
30、第二方面,本技術(shù)提供一種作業(yè)依賴關(guān)系查詢裝置,所述裝置包括:
31、解析模塊,用于響應(yīng)于接收到查詢請求,從所述查詢請求中解析出作業(yè)標(biāo)識以及循環(huán)次數(shù);
32、查詢模塊,用于在所述循環(huán)次數(shù)等于預(yù)設(shè)值時,基于所述作業(yè)標(biāo)識對基礎(chǔ)依賴信息表進行查詢,得到目標(biāo)查詢結(jié)果;其中,所述基礎(chǔ)依賴信息表中至少包括作業(yè)標(biāo)識、目標(biāo)作業(yè)標(biāo)識、所述作業(yè)標(biāo)識和所述目標(biāo)作業(yè)標(biāo)識之間的依賴關(guān)系;
33、循環(huán)查詢模塊,用于在所述循環(huán)次數(shù)大于預(yù)設(shè)值時,基于所述作業(yè)標(biāo)識對所述基礎(chǔ)依賴信息表進行循環(huán)查詢,得到目標(biāo)循環(huán)查詢結(jié)果。
34、在一種可能的實施例中,所述作業(yè)標(biāo)識至少包括作業(yè)名稱和作業(yè)流名稱,所述目標(biāo)作業(yè)標(biāo)識至少包括目標(biāo)作業(yè)名稱和目標(biāo)作業(yè)流名稱,所述作業(yè)標(biāo)識和所述目標(biāo)作業(yè)標(biāo)識為統(tǒng)一格式數(shù)據(jù)。
35、在一種可能的實施例中,所述查詢模塊具體用于:
36、基于所述作業(yè)標(biāo)識在所述基礎(chǔ)依賴信息表中查詢出與所述作業(yè)標(biāo)識直接依賴的目標(biāo)作業(yè)標(biāo)識;
37、將所述作業(yè)標(biāo)識與所述目標(biāo)作業(yè)標(biāo)識關(guān)聯(lián),得到所述目標(biāo)查詢結(jié)果。
38、在一種可能的實施例中,所述循環(huán)查詢模塊具體用于:
39、基于所述作業(yè)標(biāo)識對所述基礎(chǔ)依賴信息表進行循環(huán)查詢,得到循環(huán)查詢結(jié)果,并更新所述循環(huán)次數(shù),得到更新后的循環(huán)次數(shù);
40、判斷更新后的循環(huán)次數(shù)是否等于所述預(yù)設(shè)值;
41、若是,則基于上一次循環(huán)查詢結(jié)果對所述基礎(chǔ)依賴信息表進行循環(huán)查詢,得到當(dāng)前循環(huán)查詢結(jié)果,并將所述當(dāng)前循環(huán)查詢結(jié)果以及所述當(dāng)前循環(huán)查詢結(jié)果之前的循環(huán)查詢結(jié)果作為所述目標(biāo)循環(huán)查詢結(jié)果;
42、若否,則基于上一次循環(huán)查詢結(jié)果對所述基礎(chǔ)依賴信息表進行循環(huán)查詢,直至更新后的循環(huán)次數(shù)小于所述預(yù)設(shè)值,將所有循環(huán)查詢結(jié)果作為所述目標(biāo)循環(huán)查詢結(jié)果。
43、在一種可能的實施例中,所述循環(huán)查詢模塊還用于:
44、將上一次循環(huán)查詢結(jié)果存儲至臨時表;
45、基于所述臨時表中第m次循環(huán)查詢結(jié)果對所述基礎(chǔ)依賴信息表進行循環(huán)查詢,得到第m+1次循環(huán)查詢結(jié)果;其中,m為大于0的整數(shù);
46、基于所述第m+1次循環(huán)查詢結(jié)果更新所述臨時表,直至更新后的循環(huán)次數(shù)小于所述預(yù)設(shè)值,將所有循環(huán)查詢結(jié)果作為所述目標(biāo)循環(huán)查詢結(jié)果。
47、在一種可能的實施例中,所述循環(huán)查詢模塊還用于:
48、在所述第m+1次循環(huán)查詢結(jié)果為空值時,不更新所述臨時表。
49、在一種可能的實施例中,所述裝置還包括:
50、存儲模塊,用于將所述目標(biāo)查詢結(jié)果或所述目標(biāo)循環(huán)查詢結(jié)果按照預(yù)設(shè)規(guī)則存儲至結(jié)果表,其中,所述結(jié)果表的字段信息至少包括作業(yè)標(biāo)識、目標(biāo)作業(yè)標(biāo)識和層級,所述目標(biāo)查詢結(jié)果屬于第一層級,所述目標(biāo)循環(huán)查詢結(jié)果中第m次循環(huán)查詢的結(jié)果屬于第m層級。
51、第三方面,本技術(shù)提供一種電子設(shè)備,包括:
52、存儲器,用于存儲程序指令;
53、處理器,用于調(diào)用所述存儲器中存儲的程序指令,按照獲得的程序指令執(zhí)行第一方面中任一項所述的方法。
54、第四方面,本技術(shù)提供一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)存儲有計算機程序,所述計算機程序包括程序指令,所述程序指令當(dāng)被計算機執(zhí)行時,使所述計算機執(zhí)行第一方面中任一項所述的方法。
55、第五方面,本技術(shù)提供了一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括:計算機程序代碼,當(dāng)所述計算機程序代碼在計算機上運行時,使得計算機執(zhí)行第一方面中任一項所述的方法。