本發(fā)明涉及報(bào)表血緣領(lǐng)域,更具體地說(shuō),它涉及一種數(shù)據(jù)全鏈路端到端的報(bào)表血緣構(gòu)建展示方法和系統(tǒng)。
背景技術(shù):
1、報(bào)表是一種對(duì)當(dāng)前數(shù)據(jù)源下存儲(chǔ)的數(shù)據(jù)進(jìn)行采集和處理并按照用戶想要的數(shù)據(jù)格式動(dòng)態(tài)呈現(xiàn)數(shù)據(jù)的工具。通過(guò)生成數(shù)據(jù)報(bào)表,可以將繁瑣復(fù)雜的數(shù)據(jù)按照統(tǒng)一規(guī)則進(jìn)行采集和處理,以提供有規(guī)律可讀的數(shù)據(jù)。
2、當(dāng)前報(bào)表血緣系統(tǒng)僅能展示數(shù)據(jù)之間的靜態(tài)依賴(lài)關(guān)系,無(wú)法深入溯源數(shù)據(jù)流。當(dāng)報(bào)表的血緣出現(xiàn)錯(cuò)誤時(shí),難以動(dòng)態(tài)的審核與修復(fù)報(bào)表的血緣關(guān)系。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供一種數(shù)據(jù)全鏈路端到端的報(bào)表血緣構(gòu)建展示方法和系統(tǒng),解決背景技術(shù)中提出的技術(shù)問(wèn)題。
2、第一方面,一種數(shù)據(jù)全鏈路端到端的報(bào)表血緣構(gòu)建展示方法,包括:
3、步驟1,采集多類(lèi)型的數(shù)據(jù)表,數(shù)據(jù)表類(lèi)型包括源表、中間表和報(bào)表;
4、步驟2,對(duì)數(shù)據(jù)表的單元格進(jìn)行分割,得到若干單元格;根據(jù)單元格的所屬數(shù)據(jù)表類(lèi)型、單元格所屬數(shù)據(jù)表表名和單元格所屬父格將單元格劃分為若干類(lèi);
5、步驟3,采集數(shù)據(jù)表提取、轉(zhuǎn)換和加載流程中的sql語(yǔ)句,并對(duì)sql語(yǔ)句進(jìn)行解析,得到單元格之間的依賴(lài)關(guān)系以及構(gòu)建有依賴(lài)關(guān)系的單元格之間的映射函數(shù);
6、步驟4,構(gòu)建血緣圖,將每個(gè)單元格映射為血緣圖的節(jié)點(diǎn),將單元格的依賴(lài)關(guān)系映射為血緣圖的有向邊,將構(gòu)建有依賴(lài)關(guān)系的單元格之間的映射函數(shù)作為有向邊的權(quán)重;
7、單元格的特征向量通過(guò)該單元格內(nèi)字段、所屬父格、所屬數(shù)據(jù)表類(lèi)型、所屬數(shù)據(jù)表表名和所屬數(shù)據(jù)表的行列數(shù)構(gòu)建;
8、步驟5,識(shí)別每個(gè)報(bào)表單元格到源表單元格在血緣圖中的血緣路徑,并將血緣路徑根據(jù)報(bào)表單元格的類(lèi)型分類(lèi);
9、步驟6,識(shí)別每類(lèi)血緣路徑的特征血緣路徑和非特征血緣路徑,并根據(jù)同類(lèi)型血緣路徑的特征血緣路徑審核同類(lèi)型非特征血緣路徑,得到非特征血緣路徑的偏差區(qū)域;
10、步驟7,將偏差區(qū)域反饋到人工,得到校正血緣圖;根據(jù)校正血緣圖構(gòu)建特征血緣展示平臺(tái)。
11、進(jìn)一步的,對(duì)數(shù)據(jù)表的單元格進(jìn)行分割,包括:
12、對(duì)數(shù)據(jù)表的表名進(jìn)行轉(zhuǎn)譯,統(tǒng)一語(yǔ)言,得到同文數(shù)據(jù)表;
13、對(duì)同文數(shù)據(jù)表的表名進(jìn)行語(yǔ)義匹配,確定同語(yǔ)義的數(shù)據(jù)表;
14、根據(jù)數(shù)據(jù)表的類(lèi)型對(duì)同語(yǔ)義的數(shù)據(jù)表進(jìn)行分類(lèi),得到若干同源數(shù)據(jù)表;
15、識(shí)別同源數(shù)據(jù)表中每個(gè)單元格內(nèi)的字段信息,通過(guò)預(yù)設(shè)的篩選條件篩選字段信息,確定同源數(shù)據(jù)表中的父格;
16、根據(jù)同源數(shù)據(jù)表中的父格對(duì)同源數(shù)據(jù)表中剩余的單元格進(jìn)行分類(lèi)。
17、進(jìn)一步的,對(duì)sql語(yǔ)句進(jìn)行解析,包括:
18、對(duì)sql語(yǔ)句中的文本逐一讀取,并識(shí)別sql語(yǔ)句中的關(guān)鍵詞;
19、將數(shù)據(jù)表類(lèi)型、數(shù)據(jù)表表名、數(shù)據(jù)表中父格、數(shù)據(jù)表的行列數(shù)和數(shù)據(jù)表的單元格內(nèi)的字段提取作為特征詞;
20、將sql語(yǔ)句中的文本分解得到的關(guān)鍵詞和特征詞按照標(biāo)準(zhǔn)語(yǔ)法樹(shù)的規(guī)則對(duì)sql語(yǔ)句進(jìn)行分解,并生成對(duì)應(yīng)的抽象語(yǔ)法樹(shù);
21、基于抽象語(yǔ)法樹(shù)得到單元格之間的依賴(lài)關(guān)系和映射函數(shù)。
22、進(jìn)一步的,有向邊和邊的權(quán)重,包括:
23、有向邊包括一個(gè)或多個(gè)起點(diǎn)以及一個(gè)終點(diǎn);
24、有向邊的每個(gè)起點(diǎn)均連接有被依賴(lài)單元格節(jié)點(diǎn),有向邊的終點(diǎn)連接有依賴(lài)單元格節(jié)點(diǎn);
25、邊的權(quán)重表示將被依賴(lài)單元格內(nèi)的字段作為輸入,通過(guò)有向邊的權(quán)重對(duì)應(yīng)的映射函數(shù),將輸入的字段基于映射函數(shù)計(jì)算得到依賴(lài)單元格內(nèi)的字段。
26、進(jìn)一步的,識(shí)別每類(lèi)血緣路徑的特征血緣路徑和非特征血緣路徑,包括:
27、對(duì)每個(gè)報(bào)表單元格通過(guò)有向邊反向識(shí)別得到每個(gè)報(bào)表單元格的血緣路徑;
28、將每個(gè)血緣路徑中的報(bào)表單元格節(jié)點(diǎn)作為根節(jié)點(diǎn),得到剩余非報(bào)表單元格節(jié)點(diǎn)的度數(shù);
29、判斷報(bào)表單元格的血緣路徑為特征血緣路徑或者非特征血緣路徑;
30、若同類(lèi)型報(bào)表單元格超過(guò)預(yù)設(shè)閾值比例的血緣路徑的每個(gè)層級(jí)的節(jié)點(diǎn)映射的單元格所屬父格、所屬數(shù)據(jù)表類(lèi)型和所屬數(shù)據(jù)表表名相同,且相鄰層級(jí)之間的有向邊和邊的權(quán)重相同,則判斷該血緣路徑為特征血緣路徑,否則判斷該血緣路徑為非特征血緣路徑。
31、進(jìn)一步的,根據(jù)同類(lèi)型血緣路徑的特征血緣路徑審核同類(lèi)型非特征血緣路徑,包括:
32、對(duì)報(bào)表單元格內(nèi)字段通過(guò)同類(lèi)型報(bào)表單元格的特征血緣路徑的有向邊和邊的權(quán)重反向按層級(jí)逐級(jí)得到擬合血緣路徑;
33、將擬合血緣路徑和報(bào)表單元格的血緣路徑比較,確定報(bào)表單元格的血緣路徑中的節(jié)點(diǎn)映射的單元格內(nèi)字段異?;蛘邌卧袢笔?。
34、進(jìn)一步的,將偏差區(qū)域反饋到人工,得到校正血緣圖,包括:
35、將報(bào)表單元格的血緣路徑中的節(jié)點(diǎn)映射的單元格內(nèi)字段異?;蛘邌卧袢笔Х答伒饺斯ぃㄟ^(guò)人工修改非特征血緣路徑,得到校正血緣路徑;
36、將校正血緣路徑替換血緣圖中相應(yīng)的非特征血緣路徑,得到校正血緣圖。
37、進(jìn)一步的,構(gòu)建特征血緣展示平臺(tái),包括:
38、可視化展示平臺(tái),包括前端界面和后端服務(wù);
39、在前端界面中,加載報(bào)表,展示報(bào)表內(nèi)容;
40、在后端服務(wù)中,基于校正血緣圖,提供血緣關(guān)系查詢和數(shù)據(jù)交互接口;
41、在前端界面中,為每個(gè)報(bào)表非父格單元格綁定點(diǎn)擊事件監(jiān)聽(tīng)器。當(dāng)用戶點(diǎn)擊報(bào)表非父格單元格時(shí),觸發(fā)事件處理函數(shù):
42、獲取被點(diǎn)擊單元格內(nèi)字段、所屬父格、所屬數(shù)據(jù)表類(lèi)型、所屬數(shù)據(jù)表表名和所屬數(shù)據(jù)表的行列數(shù);
43、前端發(fā)送請(qǐng)求到后端服務(wù),攜帶被點(diǎn)擊單元格內(nèi)字段、所屬父格、所屬數(shù)據(jù)表類(lèi)型、所屬數(shù)據(jù)表表名和所屬數(shù)據(jù)表的行列數(shù);
44、后端服務(wù)在校正血緣圖中,基于被點(diǎn)擊單元格進(jìn)行血緣鏈路的查詢,找到從該單元格到源表單元格的血緣路徑;
45、對(duì)于每條血緣路徑,提取其中的節(jié)點(diǎn)、有向邊、節(jié)點(diǎn)特征向量和邊的權(quán)重;
46、將查詢得到的血緣路徑數(shù)據(jù)序列化為json格式的數(shù)據(jù)結(jié)構(gòu);
47、后端服務(wù)將json格式的數(shù)據(jù)結(jié)構(gòu)發(fā)送回前端界面;
48、前端界面接收血緣路徑,解析并構(gòu)建可視化圖形;
49、使用可視化庫(kù)繪制血緣關(guān)系圖,得到該報(bào)表單元格的報(bào)表血緣樹(shù)。
50、第二方面,一種數(shù)據(jù)全鏈路端到端的報(bào)表血緣構(gòu)建展示系統(tǒng),應(yīng)用于所述的一種數(shù)據(jù)全鏈路端到端的報(bào)表血緣構(gòu)建展示方法,包括:
51、數(shù)據(jù)采集模塊,采集多類(lèi)型的數(shù)據(jù)表,數(shù)據(jù)表類(lèi)型包括源表、中間表和報(bào)表;
52、數(shù)據(jù)處理模塊,對(duì)數(shù)據(jù)表的單元格進(jìn)行分割,得到若干單元格;根據(jù)單元格的所屬數(shù)據(jù)表類(lèi)型、單元格所屬數(shù)據(jù)表表名和單元格所屬父格將單元格劃分為若干類(lèi);
53、數(shù)據(jù)分析模塊,采集數(shù)據(jù)表提取、轉(zhuǎn)換和加載流程中的sql語(yǔ)句,并對(duì)sql語(yǔ)句進(jìn)行解析,得到單元格之間的依賴(lài)關(guān)系以及構(gòu)建有依賴(lài)關(guān)系的單元格之間的映射函數(shù);
54、血緣圖模塊,構(gòu)建血緣圖,將每個(gè)單元格映射為血緣圖的節(jié)點(diǎn),將單元格的依賴(lài)關(guān)系映射為血緣圖的有向邊,將構(gòu)建有依賴(lài)關(guān)系的單元格之間的映射函數(shù)作為有向邊的權(quán)重;
55、單元格的特征向量通過(guò)該單元格內(nèi)字段、所屬父格、所屬數(shù)據(jù)表類(lèi)型、所屬數(shù)據(jù)表表名和所屬數(shù)據(jù)表的行列數(shù)構(gòu)建;
56、血緣路徑識(shí)別模塊,識(shí)別每個(gè)報(bào)表單元格到源表單元格在血緣圖中的血緣路徑,并將血緣路徑根據(jù)報(bào)表單元格的類(lèi)型分類(lèi);
57、血緣路徑分析模塊,識(shí)別每類(lèi)血緣路徑的特征血緣路徑和非特征血緣路徑,并根據(jù)同類(lèi)型血緣路徑的特征血緣路徑審核同類(lèi)型非特征血緣路徑,得到非特征血緣路徑的偏差區(qū)域;
58、展示平臺(tái)構(gòu)建模塊,將偏差區(qū)域反饋到人工,得到校正血緣圖;根據(jù)校正血緣圖構(gòu)建特征血緣展示平臺(tái)。
59、第三方面,一種計(jì)算機(jī)設(shè)備,包括:
60、一個(gè)或多個(gè)處理器;
61、存儲(chǔ)裝置,用于存儲(chǔ)一個(gè)或多個(gè)程序,當(dāng)所述一個(gè)或多個(gè)程序被所述一個(gè)或多個(gè)處理器執(zhí)行,使得所述一個(gè)或多個(gè)處理器實(shí)現(xiàn)所述的一種數(shù)據(jù)全鏈路端到端的報(bào)表血緣構(gòu)建展示方法。
62、本發(fā)明的有益效果在于:通過(guò)將報(bào)表單元格到源表的血緣路徑分為特征路徑和非特征路徑,自動(dòng)檢測(cè)并識(shí)別數(shù)據(jù)中的偏差或異常,幫助用戶快速定位問(wèn)題路徑。同時(shí),系統(tǒng)提供動(dòng)態(tài)校正機(jī)制,用戶可以通過(guò)人工反饋修正非特征路徑,生成校正后的血緣圖,并在特征血緣展示平臺(tái)上直觀查看數(shù)據(jù)的依賴(lài)關(guān)系,確保數(shù)據(jù)的準(zhǔn)確性和透明度。