bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

輕量級高性能多維分析套件

什么是輕量級?拋開技術術語,從效果上看就是為了實現操作目的,使用更輕便、更省時的方法;那么什么是高性能呢?最直接的說法就是比常用方法更加高效、更快。

創新互聯公司憑借專業的設計團隊扎實的技術支持、優質高效的服務意識和豐厚的資源優勢,提供專業的網站策劃、網站制作、網站設計、網站優化、軟件開發、網站改版等服務,在成都十多年的網站建設設計經驗,為成都上千家中小型企業策劃設計了網站。

下面就來介紹潤乾提供的這一套輕量級、高性能的多維分析套件。

?

輕量級的準確含義,是相對于重量級框架而言的一種程序設計模式。輕量級的優點在于對容器沒有依賴性,易于配置,更加通用,啟動時間較短,并能充分減少開發復雜度;而高性能,則是指相比于常用方法而言,獲取期望結果更加快速、準確的實現方法。具體到潤乾報表,這里將給大家介紹通過多維分析頁面對簡單SQL進行查詢。

這個過程其實很簡單:我們在多維分析頁面輸入簡單 SQL語句,通過集算器 JDBC 提交,然后對組表執行 SQL 查詢,將結果返回給多維分析前端。結構圖如下:

輕量級高性能多維分析套件?

其中,組表文件由集算器從各種異構數據源采集數據并計算而來,具體做法可以參考《集算器教程 - 組表》。

?

由于組表文件具備獨立計算的能力,可以脫離數據庫為前端提供數據源服務,因此非常適合作為中間件,并以此為基礎實現這套olap套件。下面我們就使用集算器做一個測試,進一步了解和使用組表文件,并與oracle做對比,更加直觀的了解這個套件的輕量級、高性能特點。

測試環境

處理器Inter(R) Core(TM) i5-6200U CPU @ 2.30GHz 2.40GHz
內存8G
硬盤1TB
操作系統Windows10 家庭中文版(64 位)

測試使用的設備不算高端,但因為測試的目的是對組表以及oracle進行對比,因此在相同環境下的數據之間作對比,設備影響因素不大,性能對比仍然是有效的參考。

設置授權

我們使用集算器對數據進行查詢比對,為此我們需要在官網或乾學院中下載含高性能存儲的集算器試用授權到本地,然后在【工具-選項-環境】中選擇授權文件,設置后的結果如下:

輕量級高性能多維分析套件?

?

生成測試數據

為了充分體現測試效果,測試用例的數據必須足夠大。我們將創建一個5000萬條數據、至少十個字段的數據表。

首先,在集算器中生成測試數據的txt格式文件:


AB
1=create(ID,產品編號,顏色,內存,擴展容量,核心數,主屏尺寸,電池容量,后置攝像頭,前置攝像頭,機身重量,質保時間,雙卡雙待,上市時間,單價,庫存量)
2[黑,白,銀,玫瑰金,土豪金][0,0.5,0.75,0.9,0.95,1]
3[32,128,64,16,8]
4[64,16,8,128,32]
5[2,8,4][0,0.5,0.9,1]
62018-01-01=workdays(A6,A6+364)
7for 500=100000.new((A7-1)*100000+#:ID,rands("abcdefghijklmnopqrstuvwxyz0123456789",36): 產品編號,A2(B2.pseg(rand())): 顏色,A3(B2.pseg(rand())): 內存,A4(B2.pseg(rand())): 擴展容量,A5(B5.pseg(rand())): 核心數,(string(round((rand()*(6-5)+5),1))+"寸"): 主屏尺寸,(string(int(round((rand()*(4-3)+3),1)*1000))+"mAh"): 電池容量,(string(int(round((rand()*(3-2)+2),1)*1000))+"萬 / 像素"): 后置攝像頭,(string(int(round((rand()*(2-1)+1),1)*1000))+"萬 / 像素"): 前置攝像頭,(string(int(round((rand()*(2-1)+1),2)*100))+"克"): 機身重量,(string(int(rand()*3+1))+"年"): 質保時間,if(rand()<0.5,"支持","不支持"): 雙卡雙待,string(elapse(A6,-rand(100))): 上市時間,int(rand()*(4999-1999)): 單價,int(rand()*(999-9)): 庫存量 )
8
>file("D:\\test.txt").export@ta(B7)

生成的txt文件大小為6284M。

輕量級高性能多維分析套件?

然后我們要將這個txt中的手機產品表數據,用 SPL 語言腳本轉儲到集算器組表文件 test.ctx 中。SPL 腳本如下:


A
1=file("D:\\test.ctx")
2=A1.create(ID,產品編號,顏色,內存,擴展容量,核心數,主屏尺寸,電池容量,后置攝像頭,前置攝像頭,機身重量,質保時間,雙卡雙待,上市時間,單價,庫存量)
3=file("D:\\test.txt").cursor@t()
4=A2.append(A3)

test.ctx 是組表文件,默認采用列式存儲的,支持任意分段的并行計算,從而可以有效提升查詢速度。要注意在生成組表時,數據需要預先排序并合理定義維字段。

組表文件的大小大約為3312M,而將txt中的數據轉儲到組表中所需的時間為968s。

輕量級高性能多維分析套件?

與之對應,我們使用sqlloader將txt中的數據導入到oracle中,所需時間為18小時左右,并且相同字段及數據量的oracle表所占空間為6683M。

輕量級高性能多維分析套件?

可以看出,將txt數據分別導入組表文件和oracle表中的時間真的是相差很大,而且,將數據導入oracle后所占空間的大小與txt文件的大小所差無幾,相比之下,組表文件所占空間只有一半,這得益于組表文件的壓縮效果。后面我們還會進一步討論分析與高性能相關的特性。

查詢數據

下面我們來對比一下用SQL查詢oracle表以及組表文件所需的時間,直接用效果說話:

查詢指定字段:

查詢組表:select ID,產品編號,庫存量 from test.ctx limit 5000

查詢oracle:select ID,產品編號,庫存量 from myTestTable where rownum <= 5000

查詢ID、產品編號以及庫存量:查詢組表用時1s;查詢oracle表用時33s;

添加where查詢條件:

查詢組表:select ID,產品編號,庫存量 from test.ctx where 顏色=’土豪金’?limit 5000

查詢oracle:select ID,產品編號,庫存量 from myTestTable where 顏色=’土豪金’?and rownum <= 5000

查詢表中產品顏色為土豪金的數據:查詢組表用時1s;查詢oracle表用時58s;

select ID,產品編號,單價,庫存量 from myTestTable/test.ctx where 顏色=’黑’?and 庫存量 > 500 and 單價 > 2000

查詢顏色為黑且庫存量大于500、單價大于2000的數據:查詢組表用時92s;查詢oracle表用時2353s;

此時我們還可以嘗試并行查詢:

select /*+ parallel(4) */ID,產品編號,單價,庫存量 from myTestTable/test.ctx where 顏色=’黑’?and 庫存量 > 500 and 單價 > 2000

查詢組表用時84s;查詢oracle表用時2105s;

?

執行以上查詢語句后我們可以發現,查詢組表的速度要比直接查詢oracle表快很多。當然,多維分析中很少用到明細查詢,對明細查詢的性能要求也不高,我們更關注匯總統計的性能,也就是有GROUP BY的情況,下面來試一下。:

查詢組表/oracle:select 顏色,max(庫存量) from test.ctx/myTestTable group by 顏色

查詢產品每個顏色的最大庫存量:查詢組表用時12s;查詢oracle表用時297s;

查詢組表/oracle:select 顏色,內存,max(庫存量) from test.ctx/myTestTable group by 顏色,內存

查詢產品每個顏色中,各內存的最大庫存量:查詢組表用時17s;查詢oracle表用時334s;

查詢組表/oracle:select /*+ parallel(4) */顏色,內存,max(庫存量) from test.ctx/myTestTable group by 顏色,內存

嘗試并行查詢產品每個顏色中,各內存的最大庫存量:查詢組表用時13s;查詢oracle表用時308s;

查詢組表:select 內存,sum(庫存量) from test.ctx where 上市時間 between date('2018-01-01') and date('2018-12-31') ?group by 內存

查詢oracle:select 內存,sum(庫存量) from myTestTable where 上市時間 between to_date('2018-01-01',’yyyy-mm-dd’) and to_date('2018-12-31',’yyyy-mm-dd’) ?group by 內存

查詢2018年上市的產品中各種內存的總庫存量:查詢組表用時5s;查詢oracle表用時10s;

查詢組表:select 內存,min(機身重量),avg(單價) from test.ctx where 上市時間 between date('2018-01-01') and date('2018-12-31') ?group by 內存

查詢oracle:select 內存,min(機身重量),avg(單價) from myTestTable where 上市時間 between to_date('2018-01-01',’yyyy-mm-dd’) and to_date('2018-12-31',’yyyy-mm-dd’) ?group by 內存

查詢2018年上市產品的最小機身重量和平均單價:查詢組表用時6s;查詢oracle表用時11s;

查詢組表:select 內存,min(機身重量),avg(單價) from test.ctx where 上市時間 between date('2018-01-01') and date('2018-12-31') group by 內存 having avg(單價)>=1500

查詢oracle:select 內存,min(機身重量),avg(單價) from myTestTable where 上市時間 between to_date('2018-01-01',’yyyy-mm-dd’) and to_date('2018-12-31',’yyyy-mm-dd’) ?group by 內存 having avg(單價)>=1500

查詢2018年上市產品中,單價不小于1500的最小機身重量和平均單價:查詢組表用時14s;查詢oracle表用時38s;

毫無懸念,對于匯總統計,查詢組表的速度也要顯著快于查詢oracle。

?

根據上面對大數據量的組表以及數據庫的查詢速度比較,可以發現查詢條件越少,兩者之間的效率對比也就越明顯,查詢組表數據始終快于查詢數據庫,這就清晰地體現除了組表高性能的特點。由此我們推斷,在多維分析頁面下,對組表進行查詢要比對數據庫進行查詢更加高效。

下面我們就將組表與分析界面結合起來進行查詢。

與分析界面結合

(1)在報表中添加集算器JDBC并連接數據源:

輕量級高性能多維分析套件?

?

(2)集算器raqsoftConfig.xml復制到報表WEB-INF的類路徑下:

將[集算器目錄]\esProc\config下的raqsoftConfig.xml復制到[報表目錄]\report\web\webapps\demo\WEB-INF\classes中;

?

(3)將組表文件放到集算器尋址路徑路徑下:

本例中,我們將使用組表文件test.ctx。

輕量級高性能多維分析套件?

輕量級高性能多維分析套件?

?

(4)修改多維分析頁面

打開[報表目錄]\report\web\webapps\demo\raqsoft\guide\jsp\olap.jsp,將jsp中的DataSource修改為(1)中設置的數據源名稱“esproc”;依舊使用上述的示例,sql語句這里我們用“select 內存,avg(單價) as 單價平均值 from test.ctx where 上市時間 between date('2018-01-01') and date('2018-12-31') ?group by 內存”;

輕量級高性能多維分析套件?

輕量級高性能多維分析套件?

?

(5)訪問頁面

我們通過雙擊[報表目錄]\report\bin下的startdemo.bat啟動服務器,或者在報表IDE中點擊輕量級高性能多維分析套件啟動Tomcat服務器。

在瀏覽器地址欄輸入“http://localhost:6868/demo/raqsoft/guide/jsp/olap.jsp?sqlId=sqlId1”對頁面進行訪問,這時頁面中就可以展現從集算器JDBC中所返回的數據,并且可以在頁面中進行拖拽等操作。

輕量級高性能多維分析套件?

當然,這里還是要對比一下查詢組表文件與查詢oracle的時間:查詢組表文件用時7s,查詢oracle用時22s,組表明顯更勝一籌。

?

?

將組表與多維分析界面進行結合,從組表而不是從數據庫中取數,用戶可以更方便的制作數據量大的報表,大大縮短了等待數據顯示的時間;對比昂貴的專業數據庫和相對封閉的 BI 自帶數據源,集算器可以提供更加經濟、簡便的解決方案,并能夠從各種異構數據源采集數據生成組表文件以供使用。同時整個配置過程非常簡單,這些都體現了這個套件的輕量級、高性能的特點。

和普通數據庫方案相比,集算器列存的二進制文件,也就是組表文件,能夠直接提升性能。在生成組表時,指定了維字段,數據本身將按照維字段有序存放,這樣,常用的條件過濾計算不依賴索引也能保證高性能。另外,更加輕量的一點是,組表文件采用壓縮存儲,顯著減少了所占用的硬盤空間,讀取也就更快了。

標題名稱:輕量級高性能多維分析套件
轉載源于:http://vcdvsql.cn/article12/peghgc.html

成都網站建設公司_創新互聯,為您提供關鍵詞優化網站維護外貿網站建設網站導航搜索引擎優化建站公司

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都定制網站建設