皕杰报表与阿里ADS分析数据库兼容测试

    近期有客户需要皕杰报表与阿里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驱动,还是使用mysqljdbc驱动。由于阿里修改了mysql数据库的内核部分,在我方使用mysqljdbc驱动测试时,发现mysqljdbc驱动与ADS兼容有些小问题。

2)、阿里ADS数据库的表分成事实表和维表,其中,事实表分为批量表和实时表。维度表可以和任意表组的任意表进行关联。

3)、实时表创建时必须有主键,至少要指定一级分区列和相关分区信息,且指定存放在一个表组中。

4)、批量表,只能从阿里的其它系统如MaxCompute(原ODPS)产出的数据结果离线导入到数据库中,不能用insert等方式插入数据。

5)、实时更新的表,可以直接insert/delete单条数据(也不支持批量insert),适合业务系统直接写入数据,不支持odps批量load

6)、阿里ADS数据库不支持读写事务,并且数据实时更新时一分钟左右才可查询。

7)、另外,ADS好像有查询数据条数的限制(这个没有深入的了解)。

 

功能兼容测试用例情况

由于阿里ADS的批量表只能从阿里的其它系统(如MaxCompute)导入数据,所以没法测试“批量表与皕杰报表的兼容情况”。如下的测试用例全是采用的“实时表”:

 

编号

测试用例

测试状况

1

普通报表

通过

2

填报报表

通过

3

柱图

通过

4

饼图

通过

5

线图

通过

6

散点图

通过

7

仪表盘图

通过

8

时序图

通过

9

雷达图

通过

10

简单查询报表

通过

11

查询表单

通过

 

性能测试

影响报表服务器的性能的因素有数据库的sql处理速度、数据的网络传输快慢和报表本身的计算速度这三方面。

皕杰报表经过10多年的不断雕琢和两千多个项目的验证,其性能是不存在任何问题的,影响报表服务器性能的主要还是数据库的sql处理速度和数据的网络传输。

另外,要获得准确的性能,需在一个接近业务场景的环境下进行测试。

但鉴于以下原因:

1)、ADS是阿里的云端数据库,且不提供免费的测试版本,我方临时租用的ADS数据库版本配置较低,其性能也相对较差,很难真实反映数据库的真实性能。

2)、我公司内部局域网带宽有限,数据传输受宽带带宽限制,很难测到真实的速度。

3)、我公司内部办公网落传输不稳定性,影响报表与ADS数据库之间的传输。

因而,性能及压力测试的数据不能真实的表达阿里ADS的性能,建议贵方搭建一个接近业务真实的环境,来测试。

 

结论

皕杰报表在功能上完全兼容ADS的实时表,其它如批量表由于受到ADS的各种限制无法进行测试。如确实要用阿里ADS分析数据库,建议此部分由客户在建立接近业务条件的环境下进行测试。

猜你喜欢

转载自raq.iteye.com/blog/2430369