近期有客戶需要皕杰報表與阿里ads分析型數據兼容情況的測試,為此,我方專門租用了阿里ADS分析數據庫,做了皕杰報表與阿里ADS分析數據庫的兼容性測試:
(1)、皕杰報表版本:皕杰報表V5.0-final-r3
(2)、ADS數據庫:
????地址:jdbc:mysql://bijetdb-c1ce16fe.cn-beijing-1.ads.aliyuncs.com:10239/bijetdb
用戶名:LTAIzHhtm9jSTDS8?
密碼:FviPE07B6A2BSGRWZKhQzA6gp3sPQe
選用JDBC驅動包:mysql-connector-java-5.1.44-bin.jar
阿里ADS數據庫的情況簡介
(1)、阿里ADS數據庫是基于mysql修改的,與普通的DBMS相比多出了一個“表組”的概念。阿里沒有針對ADS提供單獨的jdbc驅動,還是使用mysql的jdbc驅動。由于阿里修改了mysql數據庫的內核部分,在我方使用mysql的jdbc驅動測試時,發現mysql的jdbc驅動與ADS兼容有些小問題。
(2)、阿里ADS數據庫的表分成事實表和維表,其中,事實表分為批量表和實時表。維度表可以和任意表組的任意表進行關聯。
(3)、實時表創建時必須有主鍵,至少要指定一級分區列和相關分區信息,且指定存放在一個表組中。
(4)、批量表,只能從阿里的其它系統如MaxCompute(原ODPS)產出的數據結果離線導入到數據庫中,不能用insert等方式插入數據。
(5)、實時更新的表,可以直接insert/delete單條數據(也不支持批量insert),適合業務系統直接寫入數據,不支持odps批量load。
(6)、阿里ADS數據庫不支持讀寫事務,并且數據實時更新時一分鐘左右才可查詢。
(7)、另外,ADS好像有查詢數據條數的限制(這個沒有深入的了解)。
功能兼容測試用例情況
由于阿里ADS的批量表只能從阿里的其它系統(如MaxCompute)導入數據,所以沒法測試“批量表與皕杰報表的兼容情況”。如下的測試用例全是采用的“實時表”:
?編號測試用例測試狀況
性能測試
影響報表服務器的性能的因素有數據庫的sql處理速度、數據的網絡傳輸快慢和報表本身的計算速度這三方面。
皕杰報表經過10多年的不斷雕琢和兩千多個項目的驗證,其性能是不存在任何問題的,影響報表服務器性能的主要還是數據庫的sql處理速度和數據的網絡傳輸。
另外,要獲得準確的性能,需在一個接近業務場景的環境下進行測試。
但鑒于以下原因:
(1)、ADS是阿里的云端數據庫,且不提供免費的測試版本,我方臨時租用的ADS數據庫版本配置較低,其性能也相對較差,很難真實反映數據庫的真實性能。
(2)、我公司內部局域網帶寬有限,數據傳輸受寬帶帶寬限制,很難測到真實的速度。
(3)、我公司內部辦公網絡傳輸不穩定性,影響報表與ADS數據庫之間的傳輸。
因而,性能及壓力測試的數據不能真實的表達阿里ADS的性能,建議貴方搭建一個接近業務真實的環境,來測試。
結論
皕杰報表在功能上完全兼容ADS的實時表,其它如批量表由于受到ADS的各種限制無法進行測試。如確實要用阿里ADS分析數據庫,建議此部分由客戶在建立接近業務條件的環境下進行測試。