本發(fā)明涉及大數(shù)據(jù),特別是指面向水利異構(gòu)大數(shù)據(jù)組件的數(shù)據(jù)處理系統(tǒng)及方法。
背景技術(shù):
1、隨著水利領(lǐng)域信息化建設(shè)的逐步推進(jìn),面臨著越來越多的多源異構(gòu)大數(shù)據(jù)處理需求。這些數(shù)據(jù)從不同的渠道和平臺匯集而來,其結(jié)構(gòu)各異、規(guī)模龐大,處理起來頗具挑戰(zhàn)性。在傳統(tǒng)的數(shù)據(jù)處理流程中,面對不同的大數(shù)據(jù)組件,通常需要采用不同的處理策略和方法。這種做法無形中增加了數(shù)據(jù)處理的復(fù)雜性,并在一定程度上影響了處理的效率和準(zhǔn)確性。同時,由于缺少統(tǒng)一的數(shù)據(jù)血緣管理手段,有時難以清晰地追蹤數(shù)據(jù)的來源與流向,也無法全面了解數(shù)據(jù)在處理過程中的各種變化,這無疑影響了數(shù)據(jù)的可信度及其潛在價值。再者,數(shù)據(jù)處理過程中偶爾會遇到任務(wù)失敗的情況。遺憾的是,由于缺乏有效的失敗應(yīng)對策略和數(shù)據(jù)恢復(fù)機制,任務(wù)失敗往往意味著數(shù)據(jù)的丟失或損壞,這無疑給水利工作帶來了一定的困擾,目前不同數(shù)據(jù)源之間的數(shù)據(jù)集成與共享還存在一些障礙,這限制了水利領(lǐng)域數(shù)據(jù)資源的最大化利用。
技術(shù)實現(xiàn)思路
1、本發(fā)明要解決的技術(shù)問題是提供面向水利異構(gòu)大數(shù)據(jù)組件的數(shù)據(jù)處理系統(tǒng)及方法,采用通用的數(shù)據(jù)血緣處理方法,實現(xiàn)了對多種大數(shù)據(jù)組件以相同流程進(jìn)行數(shù)據(jù)血緣的處理。
2、為解決上述技術(shù)問題,本發(fā)明的技術(shù)方案如下:
3、第一方面,面向水利異構(gòu)大數(shù)據(jù)組件的數(shù)據(jù)處理系統(tǒng),所述系統(tǒng)包括:
4、處理模塊,用于對多種大數(shù)據(jù)組件以相同流程進(jìn)行數(shù)據(jù)血緣的處理,以得到數(shù)據(jù)處理任務(wù);
5、結(jié)構(gòu)獲取模塊,用于將數(shù)據(jù)處理任務(wù)轉(zhuǎn)換為sql格式的數(shù)據(jù),并對sql格式的數(shù)據(jù)進(jìn)行預(yù)處理,以得到預(yù)處理后的數(shù)據(jù);
6、結(jié)構(gòu)轉(zhuǎn)換模塊,用于將預(yù)處理后的數(shù)據(jù)生成抽象語法樹,并將抽象語法樹轉(zhuǎn)換為解析樹,以生成查詢方案;
7、過濾模塊,用于過濾查詢方案,以得到過濾的查詢方案,對過濾的查詢方案進(jìn)行評估,以得到評估結(jié)果;
8、血緣構(gòu)建模塊,用于根據(jù)評估結(jié)果,獲取查詢方案的數(shù)據(jù)項依賴和表達(dá)式,提取血緣信息的子模塊,以構(gòu)建數(shù)據(jù)血緣信息。
9、進(jìn)一步的,對多種大數(shù)據(jù)組件以相同流程進(jìn)行數(shù)據(jù)血緣的處理,以得到數(shù)據(jù)處理任務(wù),包括:
10、獲取大數(shù)據(jù)組件的環(huán)境狀態(tài)數(shù)據(jù);
11、根據(jù)大數(shù)據(jù)組件的環(huán)境狀態(tài)數(shù)據(jù),通過計算的環(huán)境狀態(tài)評估指數(shù),其中,表示經(jīng)過驗證的有效數(shù)據(jù)條目數(shù)量;表示數(shù)據(jù)集中的總數(shù)據(jù)條目數(shù)量;表示權(quán)重系數(shù);表示第個關(guān)鍵指標(biāo)的值;表示指標(biāo)數(shù)量;表示符合標(biāo)準(zhǔn)的數(shù)據(jù)條目數(shù)量;、和表示權(quán)重系數(shù);表示索引,用于遍歷所有的關(guān)鍵指標(biāo);
12、根據(jù)歷史數(shù)據(jù),通過計算大數(shù)據(jù)組件在正常運行時環(huán)境狀態(tài)評估指數(shù)的閾值,根據(jù)環(huán)境狀態(tài)評估指數(shù)和閾值,確定大數(shù)據(jù)組件的正常環(huán)境狀態(tài),其中,表示歷史數(shù)據(jù)中環(huán)境狀態(tài)評估指數(shù)的均值;表示環(huán)境狀態(tài)評估指數(shù)的標(biāo)準(zhǔn)差;表示歷史數(shù)據(jù)集中環(huán)境狀態(tài)評估指數(shù)的總數(shù)量;表示索引,用于遍歷歷史數(shù)據(jù)集中的每一個數(shù)據(jù)點;表示第個歷史環(huán)境狀態(tài)評估指數(shù)的值;、和表示權(quán)重;
13、根據(jù)大數(shù)據(jù)組件的正常環(huán)境狀態(tài),以相同流程進(jìn)行數(shù)據(jù)血緣的處理,以得到數(shù)據(jù)處理任務(wù)。
14、進(jìn)一步的,將數(shù)據(jù)處理任務(wù)轉(zhuǎn)換為sql格式,并對sql格式的數(shù)據(jù)進(jìn)行預(yù)處理,以得到預(yù)處理后的數(shù)據(jù),包括:
15、對數(shù)據(jù)處理任務(wù)進(jìn)行解析,獲取大數(shù)據(jù)組件的指令集;
16、根據(jù)大數(shù)據(jù)組件的指令集,讀取數(shù)據(jù)并將數(shù)據(jù)處理任務(wù)轉(zhuǎn)換為sql格式的數(shù)據(jù);
17、對sql格式的數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗,以得到清洗的數(shù)據(jù);
18、將清洗的數(shù)據(jù)通過進(jìn)行濾波處理,以得到濾波處理的數(shù)據(jù),其中,是在時間點的濾波處理的數(shù)據(jù),是清洗的數(shù)據(jù)序列中,在時間點的數(shù)據(jù)值,是在每個時間點;是索引;
19、將濾波處理的數(shù)據(jù)進(jìn)行數(shù)據(jù)歸一化,以得到預(yù)處理后的數(shù)據(jù)。
20、進(jìn)一步的,將預(yù)處理后的數(shù)據(jù)生成抽象語法樹,并將抽象語法樹轉(zhuǎn)換為解析樹,以生成查詢方案,包括:
21、使用掃描器掃描預(yù)處理后的數(shù)據(jù),將預(yù)處理后的數(shù)據(jù)分解為令牌序列,每個令牌是預(yù)處理后的數(shù)據(jù)中的一個原子元素,包括關(guān)鍵字、標(biāo)識符、操作符或數(shù)值;
22、通過遞歸下降解析器將令牌序列轉(zhuǎn)換為抽象語法樹,在抽象語法樹中,每個節(jié)點代表語法結(jié)構(gòu)的一個實例,節(jié)點類型反映了語法結(jié)構(gòu)的種類;
23、將抽象語法樹作為初始種群中的一個個體,定義用于評估每個抽象語法樹個體對應(yīng)查詢方案優(yōu)劣的適應(yīng)度函數(shù);
24、根據(jù)適應(yīng)度函數(shù)選擇對應(yīng)的抽象語法樹個體作為父代,隨機選擇兩個父代抽象語法樹個體,通過交換子樹或節(jié)點來生成新的抽象語法樹個體;對選定的抽象語法樹個體進(jìn)行隨機修改,將遺傳操作生成的子代抽象語法樹個體轉(zhuǎn)換為查詢方案,通過多輪遺傳迭代來不斷優(yōu)化查詢方案,直到達(dá)到預(yù)設(shè)的迭代次數(shù),以得到最終的抽象語法樹個體;
25、將最終的抽象語法樹個體轉(zhuǎn)換為具體的查詢方案。
26、進(jìn)一步的,適應(yīng)度函數(shù)的計算公式為:
27、;
28、其中,表示執(zhí)行效率的權(quán)重;表示錯誤返回的記錄數(shù);表示準(zhǔn)確性的權(quán)重;、和表示權(quán)重;、、、、、、和分別代表查詢執(zhí)行的最大時間、實際執(zhí)行時間、正確記錄數(shù)、總記錄數(shù)、錯誤記錄數(shù)、連接操作數(shù)、子查詢數(shù)和嵌套層數(shù)。
29、進(jìn)一步的,通過遞歸下降解析器將令牌序列轉(zhuǎn)換為抽象語法樹,包括:
30、從令牌序列的起始位置開始,使用遞歸下降解析器進(jìn)行解析;解析器根據(jù)語法規(guī)則,逐個讀取并匹配令牌,逐步構(gòu)建抽象語法樹的各個節(jié)點;
31、當(dāng)匹配到一個完整的語法結(jié)構(gòu)時,創(chuàng)建一個新的抽象語法樹節(jié)點,并設(shè)置其類型;
32、對于每個新創(chuàng)建的節(jié)點,如果包含子結(jié)構(gòu),則遞歸地調(diào)用解析器處理子結(jié)構(gòu),并將子結(jié)構(gòu)作為子節(jié)點添加到當(dāng)前節(jié)點中,持續(xù)這個過程,直到令牌序列被完全消耗或遇到無法匹配的令牌;
33、在抽象語法樹構(gòu)建完成后,啟動一個后處理階段,從抽象語法樹的根節(jié)點開始,進(jìn)行深度優(yōu)先遍歷,在遍歷過程中,對于每個訪問到的節(jié)點,根據(jù)其類型和內(nèi)容,執(zhí)行元數(shù)據(jù)查詢操作,查詢操作涉及查找符號表、訪問數(shù)據(jù)庫;
34、若查詢到有效的元數(shù)據(jù),將其賦值給當(dāng)前抽象語法樹節(jié)點的元數(shù)據(jù)字段,如果抽象語法樹節(jié)點不需要元數(shù)據(jù)或元數(shù)據(jù)查詢失敗,則保留空值或設(shè)置默認(rèn)值;
35、當(dāng)整個抽象語法樹被遍歷完成,并且所有需要的元數(shù)據(jù)都被查詢并賦值后,輸出一個包含完整結(jié)構(gòu)和元數(shù)據(jù)信息的抽象語法樹。
36、進(jìn)一步的,過濾查詢方案,以得到過濾的查詢方案,對過濾的查詢方案進(jìn)行評估,以得到評估結(jié)果,包括:
37、讀取所有待處理的查詢方案,并將其存儲在一個處理隊列中;
38、調(diào)用語法解析器,逐個對處理隊列中的查詢方案進(jìn)行語法檢查,標(biāo)記并移除那些不符合語法規(guī)范的查詢方案,以使剩余的查詢方案在語法上是正確的;
39、對通過語法檢查的查詢方案進(jìn)行邏輯驗證,識別出邏輯上不合理或存在潛在錯誤的查詢方案,將邏輯上有問題的查詢方案從處理隊列中移除;
40、對剩余的查詢方案進(jìn)行哈希處理,為每個查詢方案生成一個唯一的哈希值;
41、比較哈希值,找出并移除重復(fù)的查詢方案,以使每個查詢方案在處理隊列中是唯一的;
42、自動化地解析剩余查詢方案中的表名、字段名及關(guān)聯(lián)關(guān)系;根據(jù)剩余查詢方案中的表名、字段名及關(guān)聯(lián)關(guān)系,構(gòu)建一個內(nèi)部數(shù)據(jù)模型;
43、分析內(nèi)部數(shù)據(jù)模型,以得到數(shù)據(jù)之間的依賴關(guān)系和流轉(zhuǎn)路徑;
44、根據(jù)數(shù)據(jù)之間的依賴關(guān)系和流轉(zhuǎn)路徑,構(gòu)建一個數(shù)據(jù)血緣圖,以展示數(shù)據(jù)之間的關(guān)聯(lián)和流動;
45、基于數(shù)據(jù)血緣圖和數(shù)據(jù)量,對每個查詢方案進(jìn)行性能評估,以得到評估結(jié)果。
46、進(jìn)一步的,基于數(shù)據(jù)血緣圖和數(shù)據(jù)量,對每個查詢方案進(jìn)行性能評估,以得到評估結(jié)果,包括:
47、基于數(shù)據(jù)血緣圖和數(shù)據(jù)量,對每個查詢方案通過進(jìn)行性能評估,以得到評估結(jié)果;
48、其中,表示性能評估值;、、和表示權(quán)重系數(shù);表示數(shù)據(jù)條目數(shù)量;表示每條記錄的平均大小;表示依賴項數(shù)量;表示第個依賴項的數(shù)據(jù)量權(quán)重;表示與第個依賴項相關(guān)的數(shù)據(jù)量;表示依賴項總數(shù);表示第個依賴項的耦合程度權(quán)重;表示與第個依賴項相關(guān)的第個依賴項的連接強度;表示第個依賴項的處理時間權(quán)重;表示處理第個依賴項所需的時間;,其中,是直接連接數(shù),表示依賴項和依賴項之間的直接關(guān)系數(shù)量;是數(shù)據(jù)交互頻率,表示依賴項和依賴項之間進(jìn)行數(shù)據(jù)交換的頻率;表示依賴項的權(quán)重;表示索引。
49、進(jìn)一步的,根據(jù)評估結(jié)果,獲取查詢方案的數(shù)據(jù)項依賴和表達(dá)式,提取血緣信息的子模塊,以構(gòu)建數(shù)據(jù)血緣信息,包括:
50、根據(jù)評估結(jié)果,確定初始輸入數(shù)據(jù)項集合和輸出的數(shù)據(jù)項集合;
51、分析評估結(jié)果中提供的數(shù)據(jù)流轉(zhuǎn)信息,確立數(shù)據(jù)項之間的直接映射關(guān)系;
52、利用直接映射關(guān)系,從輸出數(shù)據(jù)項出發(fā),逆向查找所有影響其生成的輸入數(shù)據(jù)項,以及從輸入數(shù)據(jù)項開始,正向查找所有由其衍生出的輸出數(shù)據(jù)項;
53、對于搜索到的每個相關(guān)數(shù)據(jù)項,進(jìn)行笛卡爾積運算,以得到笛卡爾積運算結(jié)果;
54、根據(jù)笛卡爾積運算結(jié)果,生成完整的數(shù)據(jù)血緣信息,數(shù)據(jù)血緣信息描繪出從原始輸入到最終輸出之間所有數(shù)據(jù)項的依賴關(guān)系和轉(zhuǎn)換路徑。
55、第二方面,一種面向水利異構(gòu)大數(shù)據(jù)組件的數(shù)據(jù)處理方法,所述方法包括:
56、對多種大數(shù)據(jù)組件以相同流程進(jìn)行數(shù)據(jù)血緣的處理,以得到數(shù)據(jù)處理任務(wù);
57、將數(shù)據(jù)處理任務(wù)轉(zhuǎn)換為sql格式的數(shù)據(jù),并對sql格式的數(shù)據(jù)進(jìn)行預(yù)處理,以得到預(yù)處理后的數(shù)據(jù);
58、將預(yù)處理后的數(shù)據(jù)生成抽象語法樹,并將抽象語法樹轉(zhuǎn)換為解析樹,以生成查詢方案;
59、過濾查詢方案,以得到過濾的查詢方案,對過濾的查詢方案進(jìn)行評估,以得到評估結(jié)果;
60、根據(jù)評估結(jié)果,獲取查詢方案的數(shù)據(jù)項依賴和表達(dá)式,提取血緣信息的子模塊,以構(gòu)建數(shù)據(jù)血緣信息。
61、本發(fā)明的上述方案至少包括以下有益效果:
62、通過設(shè)計一個通用的數(shù)據(jù)血緣處理方法,能夠?qū)崿F(xiàn)對多種大數(shù)據(jù)組件以相同流程進(jìn)行數(shù)據(jù)血緣的處理,簡化了數(shù)據(jù)處理流程,提高了數(shù)據(jù)處理的效率和準(zhǔn)確性;數(shù)據(jù)血緣記錄了數(shù)據(jù)從產(chǎn)生到消亡的全生命周期中的鏈路關(guān)系,通過該系統(tǒng),輕松地追蹤數(shù)據(jù)的來源和去向,了解數(shù)據(jù)在處理過程中的變化情況,從而增強數(shù)據(jù)的可追溯性。通過解析數(shù)據(jù)處理任務(wù)的查詢方案并構(gòu)建數(shù)據(jù)血緣信息,能夠幫助用戶更好地理解數(shù)據(jù)處理過程中的數(shù)據(jù)依賴關(guān)系。在數(shù)據(jù)處理過程中,由于各種原因可能導(dǎo)致任務(wù)失敗,通過該系統(tǒng),用戶可以及時發(fā)現(xiàn)并處理這些失敗任務(wù),避免數(shù)據(jù)丟失或損壞,同時,由于數(shù)據(jù)血緣信息的存在,用戶可以輕松地恢復(fù)失敗任務(wù)并繼續(xù)數(shù)據(jù)處理流程,提高了系統(tǒng)的容錯性。系統(tǒng)通過關(guān)聯(lián)數(shù)據(jù)血緣信息與多源數(shù)據(jù)集成應(yīng)用中的數(shù)據(jù)項,實現(xiàn)了不同數(shù)據(jù)源之間的數(shù)據(jù)集成與共享,使得水利領(lǐng)域能夠更方便地獲取和利用來自不同渠道的數(shù)據(jù)資源。