本發(fā)明涉及報表渲染,具體為一種基于數(shù)據(jù)分析的報表渲染方法及系統(tǒng)。
背景技術(shù):
1、數(shù)據(jù)可視化是將數(shù)據(jù)通過圖表、圖形和其他可視化工具呈現(xiàn)出來的過程。它通過將復(fù)雜的數(shù)據(jù)轉(zhuǎn)化為易于理解和分析的可視化形式,幫助人們更好地理解和利用數(shù)據(jù)。在當(dāng)今數(shù)據(jù)爆炸的時代,數(shù)據(jù)可視化變得越來越重要,它在各個領(lǐng)域都發(fā)揮著重要作用。
2、現(xiàn)實生活中,存在多個客戶端當(dāng)對同一個在線報表進行分析查閱的情況,現(xiàn)有渲染技術(shù)中,采用單個客戶端對應(yīng)單個服務(wù)端,容易造成資源浪費;而采用多個客戶端對應(yīng)單個服務(wù)端,能夠避免資源的浪費,但容易因為報表的數(shù)據(jù)量大或者層級架構(gòu)復(fù)雜,造成渲染效率低,用戶體驗不佳。
3、所以,本發(fā)明公開一種基于數(shù)據(jù)分析的報表渲染方法及系統(tǒng)以解決上述問題。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的在于提供一種基于數(shù)據(jù)分析的報表渲染方法及系統(tǒng),以解決上述背景技術(shù)中提出的問題。
2、為了解決上述技術(shù)問題,本發(fā)明提供如下技術(shù)方案:一種基于數(shù)據(jù)分析的報表渲染方法,該方法包括如下步驟:
3、s1:獲取使用同一個在線目標(biāo)報表的客戶端待渲染的頁面請求,識別每個客戶端待渲染的頁面請求中的目標(biāo)報表元素信息,對目標(biāo)報表元素信息進行特征提取,生成目標(biāo)報表元素信息的目標(biāo)報表元素特征集合,對目標(biāo)報表元素特征集合中的目標(biāo)報表元素特征添加客戶端標(biāo)識;
4、s2;將目標(biāo)報表元素特征劃分為第一渲染特征和第二渲染特征,將第一渲染特征和第二渲染特征進行關(guān)聯(lián);
5、s3:對第二渲染特征進一步分析整合,結(jié)合客戶端標(biāo)識對應(yīng)客戶端信息,對第二渲染特征進行排序,生成第二渲染特征序列;
6、s4:按照第二渲染特征序列和預(yù)置的報表渲染模板,對各個待渲染的頁面請求進行渲染。
7、根據(jù)上述方案,在s1中,識別每個客戶端待渲染的頁面請求中的目標(biāo)報表元素信息包括:
8、對客戶端待渲染的頁面請求進行文本識別,得到客戶端待渲染的頁面請求中每個單元格的文本數(shù)據(jù),所述文本數(shù)據(jù)包括單元格文本內(nèi)容和單元格層級關(guān)系;所述單元格層級關(guān)系為兩個單元格之間的父子級關(guān)系;
9、提取在線目標(biāo)報表的單元格層級關(guān)系,構(gòu)建單元格結(jié)構(gòu)樹,所述單元格結(jié)構(gòu)樹包括若干根節(jié)點、若干枝節(jié)點和若干葉子節(jié)點,所述根節(jié)點、枝節(jié)點和子節(jié)點與在線目標(biāo)報表的單元格一一對應(yīng);
10、在預(yù)置的報表渲染模板中查找單元格的層級關(guān)系,獲取單元格的渲染配置參數(shù);所述單元格渲染配置參數(shù)包括框架渲染數(shù)據(jù)和文本渲染數(shù)據(jù)。
11、根據(jù)上述方案,在s1中,將每個單元格的特征進行提取,目標(biāo)報表元素特征集合中第i個單元格的目標(biāo)報表元素特征,記為chi={fri,tdi,tri};其中fri表示第i個單元格的框架渲染數(shù)據(jù);tdi表示第i個單元格的單元格文本內(nèi)容;tri表示第i個單元格的文本渲染數(shù)據(jù);i∈[1,i],其中i表示目標(biāo)報表元素特征集合中單元格的總數(shù)量;
12、對每個單元格的特征進行提取,為后續(xù)根據(jù)每個單元格的特征對單元格進行分析,提供了數(shù)據(jù)支撐;
13、對所述目標(biāo)報表元素特征集合中的目標(biāo)報表元素特征添加客戶端標(biāo)識;將添加客戶端標(biāo)識后目標(biāo)報表元素特征集合中第i個單元格的目標(biāo)報表元素特征,記為其中表示客戶端clj的目標(biāo)報表元素特征集合中第i個單元格的目標(biāo)報表元素特征;表示客戶端clj的目標(biāo)報表元素特征集合中第i個單元格的框架渲染數(shù)據(jù);表示客戶端clj的目標(biāo)報表元素特征集合中第i個單元格的單元格文本內(nèi)容;表示客戶端clj的目標(biāo)報表元素特征集合中第i個單元格的文本渲染數(shù)據(jù);j∈[1,j],其中j表示客戶端的總數(shù)量。
14、對目標(biāo)報表元素特征添加客戶端標(biāo)識,能夠清晰地知曉單元格對應(yīng)的客戶端,為后續(xù)根據(jù)客戶端的優(yōu)先級對單元格的渲染難度值計算提供了數(shù)據(jù)支撐;
15、根據(jù)上述方案,所述第一渲染特征包括渲染框架數(shù)據(jù);所述第二渲染特征包括單元格文本內(nèi)容和文本渲染數(shù)據(jù);所述第一渲染特征由第一渲染引擎進行渲染;所述第二渲染特征由第二渲染引擎進行渲染。
16、將渲染框架數(shù)據(jù)和單元格文本內(nèi)容與文本渲染數(shù)據(jù)分離,并使用兩個獨立的渲染引擎分別對第一渲染特征和第二渲染特征進行渲染,使用第一渲染引擎以加快框架渲染,防止白屏的出現(xiàn),提高用戶體驗;
17、根據(jù)上述方案,在s3中,生成第二渲染特征序列包括以下步驟:
18、s301:從客戶端集合中查找第一客戶端,所述第一客戶端的優(yōu)先級高于客戶端集合中其他任意一個客戶端的優(yōu)先級;客戶端的優(yōu)先級由系統(tǒng)預(yù)置;
19、通過對客戶端設(shè)置優(yōu)先級,能夠有效的將第二渲染引擎的優(yōu)先用于第一客戶端,提高第一客戶端的用戶體驗;
20、s302:提取第一客戶端的第二渲染特征中與其他客戶端的第二渲染特征相同的第二渲染特征,所述相同的第二渲染特征表示單元格文本內(nèi)容和文本渲染數(shù)據(jù)均相同;將第一客戶端的第二渲染特征按照重復(fù)次數(shù)從高到低順序進行排列,生成第一客戶端的第一渲染序列;
21、在第一客戶端的第二渲染特征中查找與其他客戶端的第二渲染特征相同的第二渲染特征,優(yōu)先對所述第一客戶端的第二渲染特征中與其他客戶端的第二渲染特征相同的第二渲染特征進行渲染,能夠兼顧第一客戶端以外的客戶端,防止對重復(fù)內(nèi)容的多次渲染,提高整體的渲染效率;
22、s303:提取第一客戶端的第二渲染特征中與其他客戶端的第二渲染特征不相同的第二渲染特征,所述不相同的第二渲染特征表示單元格文本內(nèi)容或文本渲染數(shù)據(jù)其中一項不相同或均不相同;對第一客戶端中不相同的第二渲染特征進行渲染難度值計算,對第一客戶端中不相同的第二渲染特征按照渲染難度值從低到高順序進行排列,生成第一客戶端的第二渲染序列;
23、s304:提取其他客戶端的第二渲染特征中與第一客戶端的第二渲染特征不相同的第二渲染特征,對其他客戶端中不相同的第二渲染特征進行渲染難度值計算,對其他客戶端中不相同的第二渲染特征按照渲染難度值從低到高順序進行排列,生成其他客戶端的渲染序列;
24、對不相同的第二渲染特征進行渲染難度值計算,按照渲染難度值從低到高順序?qū)Φ诙秩咎卣鬟M行渲染,能夠更快地顯示較多渲染成果,進一步提高用戶的使用體驗;
25、s305:按照第一客戶端的第一渲染序列、第一客戶端的第二渲染序列和其他客戶端的渲染序列的順序進行序列整合,生成第二渲染特征序列。
26、根據(jù)上述方案,所述渲染難度值計算的具體公式如下所示:
27、
28、其中,表示客戶端clj的目標(biāo)報表元素特征集合中第i個單元格的第二渲染特征的渲染難度值;α1、α2、α3和α4表示渲染難度值的評估系數(shù),βj為表示客戶端clj的優(yōu)先級分值;所述渲染難度值的評估系數(shù)和優(yōu)先級分值均為預(yù)制常數(shù);表示客戶端clj的目標(biāo)報表元素特征集合中第i個單元格的文本內(nèi)容字符長度;表示客戶端clj的目標(biāo)報表元素特征集合中第i個單元格的文本內(nèi)容公式總數(shù)量;表示客戶端clj的目標(biāo)報表元素特征集合中第i個單元格的文本內(nèi)容數(shù)據(jù)源數(shù)量;表示客戶端clj的目標(biāo)報表元素特征集合中第i個單元格的層級數(shù);表示客戶端clj的目標(biāo)報表元素特征集合中第i個單元格的文本渲染樣式對應(yīng)的平均渲染時間;
29、根節(jié)點的層級數(shù)為系統(tǒng)預(yù)置的常數(shù);子節(jié)點的層級數(shù)等于所屬父節(jié)點的層級數(shù)與層數(shù)系數(shù)之和;所述層數(shù)系數(shù)為系統(tǒng)預(yù)置的常數(shù);
30、所述文本渲染樣式包括表格樣式、圖表樣式、文字報告樣式、儀表盤樣式和瀑布流樣式;從歷史數(shù)據(jù)中,獲取p條僅存在一種文本渲染樣式情況時的渲染時間,p為系統(tǒng)預(yù)置的常數(shù),分別計算每種文本渲染樣式的平均渲染時間。
31、利用客戶端優(yōu)先級分值、文本內(nèi)容字符長度、文本內(nèi)容公式計算分值、文本內(nèi)容數(shù)據(jù)源數(shù)量、層級數(shù)和文本渲染樣式分值,對客戶端的第二渲染特征的渲染難度值進行計算,能夠準(zhǔn)確地計算渲染難度系數(shù),提高準(zhǔn)確率;對渲染難度系數(shù)有準(zhǔn)確判斷后,能夠減少用戶等待時間,進一步提高用戶的使用體驗;
32、根據(jù)上述方案,在s303和s304中,進行渲染難度值計算之前;在同一個客戶端的第二渲染特征中,若存在相鄰的上下兩級關(guān)系的父節(jié)點和子節(jié)點,將所述存在相鄰的上下兩級關(guān)系的父節(jié)點和子節(jié)點進行綁定;
33、在s303和s304中,進行渲染難度值計算之后;將相鄰的上下兩級關(guān)系的父節(jié)點和子節(jié)點之中最小的渲染難度值作為綁定后的渲染難度值。
34、將所述存在相鄰的上下兩級關(guān)系的父節(jié)點和子節(jié)點進行綁定,能夠?qū)⒉樵兟窂较嗨频墓?jié)點進行分區(qū)處理,對同一個分區(qū)的數(shù)據(jù)進行同時渲染,避免多次相似路徑的查找以及渲染,減少用戶等待時間,進一步提高用戶的使用體驗。
35、本技術(shù)的另一個方面,提供了一種基于數(shù)據(jù)分析的報表渲染系統(tǒng),所述系統(tǒng)應(yīng)用于上述的一種基于數(shù)據(jù)分析的報表渲染方法實現(xiàn),該系統(tǒng)包括報表數(shù)據(jù)采集標(biāo)記模塊、報表數(shù)據(jù)劃分關(guān)聯(lián)模塊、報表數(shù)據(jù)分析排序模塊和報表渲染模塊;
36、所述報表數(shù)據(jù)采集標(biāo)記模塊用于獲取使用同一個在線目標(biāo)報表的客戶端待渲染的頁面請求,識別每個客戶端待渲染的頁面請求中的目標(biāo)報表元素信息,對目標(biāo)報表元素信息進行特征提取,生成目標(biāo)報表元素信息的目標(biāo)報表元素特征集合,對目標(biāo)報表元素特征集合中的目標(biāo)報表元素特征添加客戶端標(biāo)識;
37、所述報表數(shù)據(jù)劃分關(guān)聯(lián)模塊用于將目標(biāo)報表元素特征劃分為第一渲染特征和第二渲染特征,將第一渲染特征和第二渲染特征進行關(guān)聯(lián);
38、所述報表數(shù)據(jù)分析排序模塊對第二渲染特征進一步分析整合,結(jié)合客戶端標(biāo)識對應(yīng)客戶端信息,對第二渲染特征進行排序,生成第二渲染特征序列;
39、所述報表渲染模塊包括按照第二渲染特征序列和預(yù)置的報表渲染模板,對各個待渲染的頁面請求進行渲染。
40、根據(jù)上述方案,所述報表數(shù)據(jù)采集標(biāo)記模塊包括報表數(shù)據(jù)采集單元和報表數(shù)據(jù)標(biāo)記單元;
41、所述報表數(shù)據(jù)采集單元用于獲取使用同一個在線目標(biāo)報表的客戶端待渲染的頁面請求;對客戶端待渲染的頁面請求進行文本識別,得到客戶端待渲染的頁面請求中每個單元格的文本數(shù)據(jù),所述文本數(shù)據(jù)包括單元格文本內(nèi)容和單元格層級關(guān)系;在預(yù)置的報表渲染模板中查找單元格的層級關(guān)系,獲取單元格的渲染配置參數(shù);所述單元格渲染配置參數(shù)包括框架渲染數(shù)據(jù)和文本渲染數(shù)據(jù);
42、報表數(shù)據(jù)標(biāo)記單元用于將每個單元格的特征進行提取,對所述目標(biāo)報表元素特征集合中的目標(biāo)報表元素特征添加客戶端標(biāo)識。
43、根據(jù)上述方案,所述報表數(shù)據(jù)分析排序模塊包括特征查找對比單元、渲染難度計算單元、渲染特征排序單元;
44、所述查找對比單元從客戶端集合中查找第一客戶端,提取第一客戶端的第二渲染特征中與其他客戶端的第二渲染特征相同的第二渲染特征,所述相同的第二渲染特征表示單元格文本內(nèi)容和文本渲染數(shù)據(jù)均相同;
45、所述渲染難度計算單元用于對在同一個客戶端的第二渲染特征中,若存在相鄰的上下兩級關(guān)系的父節(jié)點和子節(jié)點,將所述存在相鄰的上下兩級關(guān)系的父節(jié)點和子節(jié)點進行綁定;對各不相同的第二渲染特征進行渲染難度值計算;將相鄰的上下兩級關(guān)系的父節(jié)點和子節(jié)點之中最小的渲染難度值作為綁定后的渲染難度值;
46、渲染特征排序單元用于將第一客戶端的第二渲染特征按照重復(fù)次數(shù)從高到低順序進行排列,生成第一客戶端的第一渲染序列;對第一客戶端中不相同的第二渲染特征按照渲染難度值從低到高順序進行排列,生成第一客戶端的第二渲染序列;對其他客戶端中不相同的第二渲染特征按照渲染難度值從低到高順序進行排列,生成其他客戶端的渲染序列;按照第一客戶端的第一渲染序列、第一客戶端的第二渲染序列和其他客戶端的渲染序列的順序進行序列整合,生成第二渲染特征序列。
47、與現(xiàn)有技術(shù)相比,本發(fā)明所達到的有益效果是:本發(fā)明對于采用多個客戶端對應(yīng)單個服務(wù)端的情況;對目標(biāo)報表元素特征添加客戶端標(biāo)識,能夠清晰地知曉單元格對應(yīng)的客戶端,為后續(xù)根據(jù)客戶端的優(yōu)先級對單元格的渲染難度值計算提供了數(shù)據(jù)支撐;通過對客戶端設(shè)置優(yōu)先級,能夠有效的將第二渲染引擎的優(yōu)先用于第一客戶端,提高第一客戶端的用戶體驗;在第一客戶端的第二渲染特征中查找與其他客戶端的第二渲染特征相同的第二渲染特征,優(yōu)先對所述第一客戶端的第二渲染特征中與其他客戶端的第二渲染特征相同的第二渲染特征進行渲染,能夠兼顧第一客戶端以外的客戶端,防止對重復(fù)內(nèi)容的多次渲染,提高整體的渲染效率;利用多種評估項對客戶端的第二渲染特征的渲染難度值進行計算,能夠準(zhǔn)確地計算渲染難度系數(shù),提高準(zhǔn)確率;對渲染難度系數(shù)有準(zhǔn)確判斷后,能夠減少用戶等待時間,進一步提高用戶的使用體驗;將所述存在相鄰的上下兩級關(guān)系的父節(jié)點和子節(jié)點進行綁定,能夠?qū)⒉樵兟窂较嗨频墓?jié)點進行分區(qū)處理,對同一個分區(qū)的數(shù)據(jù)進行同時渲染,避免多次相似路徑的查找以及渲染,減少用戶等待時間,進一步提高用戶的使用體驗。