本發(fā)明涉及計(jì)算機(jī),特別涉及一種nifi的數(shù)據(jù)源信息變更方法以及裝置。
背景技術(shù):
1、在當(dāng)今數(shù)據(jù)賦能各行各業(yè)的時(shí)代,數(shù)據(jù)開放和數(shù)據(jù)共享已成為時(shí)代發(fā)展的必然趨勢(shì)。在確保數(shù)據(jù)流轉(zhuǎn)安全性的同時(shí),數(shù)據(jù)的安全性尤為重要。數(shù)據(jù)作為基礎(chǔ),安全則是保障,只有確保安全防護(hù),才能充分體現(xiàn)數(shù)據(jù)的真正價(jià)值。
2、在利用nifi作為cdc數(shù)據(jù)交換工具時(shí),面對(duì)大量數(shù)據(jù)源連接信息的變更或定期密碼重置的情況,常常需要暫停引用數(shù)據(jù)源的任務(wù)、修改連接信息,然后再重新啟動(dòng)任務(wù)。每次數(shù)據(jù)源變更都需要多次啟停操作,當(dāng)遇到大量數(shù)據(jù)源信息變更時(shí),手動(dòng)進(jìn)行繁瑣復(fù)雜的啟停操作容易導(dǎo)致遺漏。在啟停過程中,處理正在運(yùn)行的任務(wù)往往會(huì)導(dǎo)致長(zhǎng)時(shí)間的停止,執(zhí)行終止操作可能觸發(fā)數(shù)據(jù)回滾,導(dǎo)致目標(biāo)庫(kù)數(shù)據(jù)異常,難以完全確保所有變更的準(zhǔn)確性。其中,cdc(change?data?capture)數(shù)據(jù)是一種特殊類型的數(shù)據(jù),用于跟蹤數(shù)據(jù)庫(kù)中的變化(包括增加、修改、刪除等操作)并捕獲這些變化。nifi(apache?nifi)是一個(gè)開源的數(shù)據(jù)流處理和自動(dòng)化系統(tǒng),旨在簡(jiǎn)化數(shù)據(jù)流的收集、聚合、轉(zhuǎn)換和傳輸。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供一種nifi的數(shù)據(jù)源信息變更方法以及裝置,解決了現(xiàn)有技術(shù)中遇到大量數(shù)據(jù)源信息變更時(shí),手動(dòng)進(jìn)行繁瑣復(fù)雜的啟停操作容易導(dǎo)致遺漏且啟停過程中導(dǎo)致目標(biāo)庫(kù)數(shù)據(jù)異常,難以完全確保所有變更的準(zhǔn)確性的問題。
2、根據(jù)本技術(shù)的一個(gè)方面,提供了一種nifi的數(shù)據(jù)源信息變更方法,包括:
3、獲取nifi的待變更文件的備份文件;
4、對(duì)所述備份文件進(jìn)行解壓處理,以得到解壓文件;
5、通過sax解析器對(duì)所述解壓文件進(jìn)行解析,以得到預(yù)設(shè)格式的文件流;
6、確定所述預(yù)設(shè)格式的文件流對(duì)應(yīng)的數(shù)據(jù)源的父節(jié)點(diǎn);
7、根據(jù)所述預(yù)設(shè)格式的文件流對(duì)應(yīng)的數(shù)據(jù)源的父節(jié)點(diǎn),確定所述預(yù)設(shè)格式的文件流對(duì)應(yīng)的數(shù)據(jù)源的信息主鍵;
8、獲取所述待變更文件對(duì)應(yīng)的待變更數(shù)據(jù)源并確定所述待變更數(shù)據(jù)源的信息主鍵;
9、確定所述數(shù)據(jù)源的信息主鍵與所述待變更數(shù)據(jù)源的信息主鍵相匹配的目標(biāo)數(shù)據(jù)源信息;
10、將所述待變更數(shù)據(jù)源的數(shù)據(jù)源信息更換為所述目標(biāo)數(shù)據(jù)源信息。
11、在一實(shí)施例中,所述獲取nifi的待變更文件的備份文件包括:
12、通過輸入文件流讀取nifi的待變更文件的原始文件;
13、通過輸出文件流寫出所述原始文件并進(jìn)行備份處理,以得到待變更文件的備份文件。
14、在一實(shí)施例中,所述確定所述預(yù)設(shè)格式的文件流對(duì)應(yīng)的數(shù)據(jù)源的父節(jié)點(diǎn)包括:
15、獲取所述預(yù)設(shè)格式的文件流對(duì)應(yīng)的數(shù)據(jù)源的目標(biāo)元素;
16、從節(jié)點(diǎn)樹中查找與所述目標(biāo)元素匹配的元素;
17、確定所述元素對(duì)應(yīng)的組節(jié)點(diǎn)為所述預(yù)設(shè)格式的文件流對(duì)應(yīng)的數(shù)據(jù)源的父節(jié)點(diǎn)。
18、在一實(shí)施例中,所述節(jié)點(diǎn)樹的構(gòu)建方法包括:
19、創(chuàng)建根節(jié)點(diǎn);其中,所述根節(jié)點(diǎn)對(duì)應(yīng)有根名稱;
20、創(chuàng)建多個(gè)組節(jié)點(diǎn);其中,每個(gè)組節(jié)點(diǎn)均與所述根節(jié)點(diǎn)連接且所述根節(jié)點(diǎn)的方向指向每個(gè)組節(jié)點(diǎn);
21、在每個(gè)組節(jié)點(diǎn)中添加數(shù)據(jù)源的連接器、數(shù)據(jù)處理器以及數(shù)據(jù)轉(zhuǎn)發(fā)連接器作為所述數(shù)據(jù)源的元素;其中,所述連接器用于接收或者發(fā)送數(shù)據(jù),所述數(shù)據(jù)處理器用于對(duì)所述數(shù)據(jù)源接收到的數(shù)據(jù)進(jìn)行處理、轉(zhuǎn)換,所述數(shù)據(jù)轉(zhuǎn)發(fā)連接器用于將處理后的數(shù)據(jù)轉(zhuǎn)發(fā)到與其他組節(jié)點(diǎn)中的處理器;
22、將含有相同元素的組節(jié)點(diǎn)放置在同一個(gè)父節(jié)點(diǎn)中,以得到放置后的父節(jié)點(diǎn);
23、根據(jù)所述放置后的父節(jié)點(diǎn)、其他父節(jié)點(diǎn)以及所述根節(jié)點(diǎn),構(gòu)建所述節(jié)點(diǎn)樹。
24、在一實(shí)施例中,所述獲取所述待變更文件對(duì)應(yīng)的待變更數(shù)據(jù)源包括:
25、獲取數(shù)據(jù)源信息表;
26、從所述數(shù)據(jù)源信息表中查找滿足預(yù)設(shè)條件的數(shù)據(jù)源作為所述待變更文件對(duì)應(yīng)的待變更數(shù)據(jù)源。
27、在一實(shí)施例中,所述從所述數(shù)據(jù)源信息表中查找滿足預(yù)設(shè)條件的數(shù)據(jù)源作為所述待變更文件對(duì)應(yīng)的待變更數(shù)據(jù)源包括:
28、確定變更關(guān)鍵詞;其中,所述變更關(guān)鍵詞包括數(shù)據(jù)源的名稱或者數(shù)據(jù)源的類型;
29、從所述數(shù)據(jù)源信息表中查找與所述變更關(guān)鍵詞匹配的數(shù)據(jù)源作為所述待變更文件對(duì)應(yīng)的待變更數(shù)據(jù)源。
30、在一實(shí)施例中,所述從所述數(shù)據(jù)源信息表中查找滿足預(yù)設(shè)條件的數(shù)據(jù)源作為所述待變更文件對(duì)應(yīng)的待變更數(shù)據(jù)源包括:
31、從所述數(shù)據(jù)源信息表中查找連接失敗的數(shù)據(jù)源作為所述待變更文件對(duì)應(yīng)的待變更數(shù)據(jù)源。
32、在一實(shí)施例中,所述獲取數(shù)據(jù)源信息表包括:
33、獲取多個(gè)配置文件對(duì)應(yīng)的數(shù)據(jù)源的數(shù)據(jù)源信息;其中,所述數(shù)據(jù)源信息包括名稱、類型、用戶名、密碼、創(chuàng)建日期以及修改日期;
34、設(shè)定每個(gè)數(shù)據(jù)源對(duì)應(yīng)有一個(gè)主鍵;
35、根據(jù)每個(gè)數(shù)據(jù)源的數(shù)據(jù)源信息以及每個(gè)數(shù)據(jù)源的主鍵,構(gòu)建所述數(shù)據(jù)源信息表。
36、在一實(shí)施例中,在所述將所述待變更數(shù)據(jù)源的數(shù)據(jù)源信息更換為所述目標(biāo)數(shù)據(jù)源信息之后,nifi的數(shù)據(jù)源信息變更方法還包括:
37、通過預(yù)設(shè)寫出流獲取變更后的文件;
38、將所述變更后的文件進(jìn)行壓縮,以得到壓縮后的文件;
39、將所述壓縮后的文件配置在nifi的配置文件路徑中。
40、根據(jù)本技術(shù)的另一個(gè)方面,提供了一種nifi的數(shù)據(jù)源信息變更裝置,包括:文件獲取模塊,用于獲取nifi的待變更文件的備份文件;
41、解壓模塊,用于對(duì)所述備份文件進(jìn)行解壓處理,以得到解壓文件;
42、解析模塊,用于通過sax解析器對(duì)所述解壓文件進(jìn)行解析,以得到預(yù)設(shè)格式的文件流;
43、第一確定模塊,用于確定所述預(yù)設(shè)格式的文件流對(duì)應(yīng)的數(shù)據(jù)源的父節(jié)點(diǎn);
44、第二確定模塊,用于根據(jù)所述預(yù)設(shè)格式的文件流對(duì)應(yīng)的數(shù)據(jù)源的父節(jié)點(diǎn),確定所述預(yù)設(shè)格式的文件流對(duì)應(yīng)的數(shù)據(jù)源的信息主鍵;
45、主鍵獲取模塊,用于獲取所述待變更文件對(duì)應(yīng)的待變更數(shù)據(jù)源并確定所述待變更數(shù)據(jù)源的信息主鍵;
46、第三確定模塊,用于確定所述數(shù)據(jù)源的信息主鍵與所述待變更數(shù)據(jù)源的信息主鍵相匹配的目標(biāo)數(shù)據(jù)源信息;
47、更換模塊,用于將所述待變更數(shù)據(jù)源的數(shù)據(jù)源信息更換為所述目標(biāo)數(shù)據(jù)源信息。
48、本發(fā)明實(shí)施例提供了一種nifi的數(shù)據(jù)源信息變更方法以及裝置,包括:獲取nifi的待變更文件的備份文件,對(duì)備份文件進(jìn)行解壓處理,以得到解壓文件,通過sax解析器對(duì)解壓文件進(jìn)行解析,以得到預(yù)設(shè)格式的文件流,確定預(yù)設(shè)格式的文件流對(duì)應(yīng)的數(shù)據(jù)源的父節(jié)點(diǎn),根據(jù)預(yù)設(shè)格式的文件流對(duì)應(yīng)的數(shù)據(jù)源的父節(jié)點(diǎn),確定預(yù)設(shè)格式的文件流對(duì)應(yīng)的數(shù)據(jù)源的信息主鍵,獲取待變更文件對(duì)應(yīng)的待變更數(shù)據(jù)源并確定待變更數(shù)據(jù)源的信息主鍵,確定數(shù)據(jù)源的信息主鍵與待變更數(shù)據(jù)源的信息主鍵相匹配的目標(biāo)數(shù)據(jù)源信息,將待變更數(shù)據(jù)源的數(shù)據(jù)源信息更換為目標(biāo)數(shù)據(jù)源信息。利用nifi工具在cdc數(shù)據(jù)同步過程中,要修改大量數(shù)據(jù)源連接信息,面對(duì)引用nifi節(jié)點(diǎn)多,業(yè)務(wù)不可長(zhǎng)時(shí)間停止,且不想人工一個(gè)一個(gè)數(shù)據(jù)源進(jìn)行修改的情況下,提出利用編寫腳本快速變更nifi中大批量的數(shù)據(jù)源連接信息方案。通過對(duì)備份文件進(jìn)行解壓,獲取更新后的連接信息,通過主鍵匹配對(duì)待變更文件的待變更數(shù)據(jù)源進(jìn)行更改,對(duì)變更后的文件進(jìn)行回壓,該方案能夠保證一次性處理大量變更,高效快捷。降低人工操作的復(fù)雜性,降低變更帶來的窗口期,保證業(yè)務(wù)的正常運(yùn)行,提高平臺(tái)的穩(wěn)定性,確保數(shù)據(jù)高效準(zhǔn)確的同步。并快速高效的解決了生產(chǎn)環(huán)境上提出的要求,保證業(yè)務(wù)不受影響,且快速改正數(shù)據(jù)源的連接信息,將變更窗口期時(shí)間降至最低。通過腳本處理,實(shí)現(xiàn)了多個(gè)節(jié)點(diǎn)可同時(shí)變更,大大提高了工作效率,降低人工操作的復(fù)雜度和錯(cuò)誤率,保證了數(shù)據(jù)同步過程的高效性、準(zhǔn)確性,保障業(yè)務(wù)的正常運(yùn)轉(zhuǎn)。