本文介绍不同查询场景的测试方法与结果。
场景:在线报表查询
本测试并未完全依照TPC-H基准测试规范,而是基于该测试规范进行了修改。本测试结果不能等同于完全遵守TPC-H测试规范所获得的测试结果,因此不能与完全遵守该测试规范获得的测试结果进行对比。
业务背景
在线报表场景中,面向单表或者多表关联后的TopN,谓词过滤以及聚合计算是典型的分析计算需求。本示例通过一个面向零售行业的决策分析系统来展示AnalyticDB for MySQL的性能。数据模型是基于TPC-H实现的,更多信息可参见TPC-H测试集。
测试环境
AnalyticDB for MySQL弹性模式集群版,版本 3.1.3.4。
本次测试数据量为1TB。
测试结果
1、统计指定时间内,有成交记录的活跃用户数。
select count(*) -- 聚合:统计 from ( select c_name, c_phone, o_totalprice from customer, orders where c_custkey = o_custkey -- 谓词过滤:指定时间 and o_orderdate < date '1993-09-23' and o_orderdate > date '1993-03-23' ) a;
测试结果如下:
产品
查询耗时
AnalyticDB for MySQL
0.7s
2、统计未派送订单明细,按照优先级(比如,订单客单价)排序。该报表数据可以用来跟踪订单派送的服务状态。
select l_orderkey, sum(l_extendedprice*(1-l_discount)) as revenue, -- 聚合:潜在的收入 o_orderdate, o_shippriority from customer, orders, lineitem where c_mktsegment = 'MACHINERY' -- 谓词过滤 and c_custkey = o_custkey and l_orderkey = o_orderkey and o_orderdate < date '1995-03-23' and o_orderdate > date '1995-02-23' -- 谓词过滤,指定时间 and l_shipdate > date '1995-03-23' and l_shipdate < date '1996-03-23' group by --分组操作 l_orderkey, --订单标识 o_orderdate, --订单日期 o_shippriority --运输优先级 order by revenue desc, --TopN:降序排序,把潜在最大收入列在前面 o_orderdate; limit 100;
测试结果如下:
产品
查询耗时
AnalyticDB for MySQL
1.2s
3、统计某个地区零件供货商收入。该报表数据可以用于决策在给定的区域是否需要建立一个当地分配中心。
select n_name, sum(l_extendedprice * (1 - l_discount)) as revenue -- 聚合:潜在的收入 from customer, orders, lineitem, supplier, nation, region -- 六表连接 where c_custkey = o_custkey and l_orderkey = o_orderkey and l_suppkey = s_suppkey and c_nationkey = s_nationkey and s_nationkey = n_nationkey and n_regionkey = r_regionkey and r_name = 'EUROPE' -- 谓词过滤:指定地区 and o_orderdate >= date '1996-01-01' -- 谓词过滤:指定时间 and o_orderdate < date '1996-01-01' + interval '1' year and l_shipdate > date '1996-02-23' and l_shipdate < date '1996-03-23' group by n_name order by -- TopN:按收入降序排序,注意分组和排序子句不同 revenue desc limit 10
测试结果如下:
产品
查询耗时
AnalyticDB for MySQL
1.3s
场景:交互式分析
本测试并未完全依照TPC-H基准测试规范,而是基于该测试规范进行了修改。本测试结果不能等同于完全遵守TPC-H测试规范所获得的测试结果,因此不能与完全遵守该测试规范获得的测试结果进行对比。
业务背景
交互式分析指的是业务人员通过BI工具或自助式查询平台进行自由的数据探索性查询场景,查询语句的主要特点是支持多维度组合、支持多表Join、包含聚合查询、包含子查询、包含过滤条件。交互式分析性能测试标准为TPC-H测试集,更多信息可参见TPC-H测试集。
测试环境
AnalyticDB for MySQL弹性模式集群版
高性能集群,C8 x 4(96核, 768G)
弹性(96Core)集群,6节点 (96核,384G)
弹性(8Core)集群,1节点 (8核,32G)
测试结果(单位:秒,测试数据量为:1TB)
TPC-H查询
高性能查询耗时
弹性(96Core)查询耗时
Q1
81.59
106.43
Q2
6.57
12.83
Q3
47.87
44.1
Q4
60.13
63
Q5
45.48
59.23
Q6
11.33
2.05
Q7
55.98
38.65
Q8
56.4
77.29
Q9
147.62
132.96
Q10
48.06
41.99
Q11
11.19
15
Q12
40.53
20.71
Q13
59.79
62.93
Q14
37.67
5.33
Q15
28.53
12.68
Q16
10.18
9.89
Q17
48.63
73.22
Q18
54.88
82.86
Q19
32.07
60.67
Q20
29.53
39.87
Q21
123.89
143.43
Q22
17.41
21.96
总计
1055.33
1127.07
测试结果(单位:秒,测试数据量为:10GB)
TPC-H查询
弹性(8core)查询耗时
Q1
12.916
Q2
0.905
Q3
3.693
Q4
5.589
Q5
5.156
Q6
0.169
Q7
2.910
Q8
4.815
Q9
14.284
Q10
3.747
Q11
0.892
Q12
1.347
Q13
3.613
Q14
0.404
Q15
0.967
Q16
0.927
Q17
9.932
Q18
9.215
Q19
1.428
Q20
1.798
Q21
11.708
Q22
1.147
总计
97.562
场景:数据仓库ETL
本测试并未完全依照TPC-DS基准测试规范,而是基于该测试规范进行了修改。本测试结果不能等同于完全遵守TPC-DS测试规范所获得的测试结果,因此不能与完全遵守该测试规范获得的测试结果进行对比。
业务背景
ETL场景指的是数据仓库中进行批量的数据清洗、转换和加工计算,通常扫描数据量比较大、计算逻辑复杂、关联表数量较多,计算时间比较长。ETL场景性能测试标准为TPC-DS测试集,更多信息可参见TPC-DS测试集。
测试环境
AnalyticDB for MySQL,弹性模式集群版
弹性(192Core)集群,12节点(192核,768G)
测试结果(单位:毫秒)
TPC-DS查询
弹性(192Core)查询耗时
1
3,389
2
23,697
3
9,162
4
137,346
5
27,759
6
8,957
7
17,755
8
9,952
9
12,759
10
16,026
11
87,537
12
2,036
13
28,970
14
145,158
15
6,865
16
15,636
17
21,550
18
12,039
19
13,438
20
4,007
21
2,513
22
5,733
23
418,050
24
28,407
25
20,617
26
8,835
27
17,002
28
18,918
29
19,380
30
2,016
31
26,526
32
4,541
33
14,992
34
11,627
35
15,882
36
11,007
37
4,589
38
29,910
39
7,924
40
14,371
41
367
42
6,814
43
9,072
44
5,766
45
2,691
46
18,635
47
46,180
48
19,307
49
54,883
50
13,762
51
26,672
52
6,768
53
8,524
54
12,323
55
6,680
56
15,015
57
22,917
58
11,187
59
35,661
60
14,910
61
24,657
62
4,923
63
9,444
64
144,757
65
22,203
66
15,136
67
138,622
68
23,379
69
15,156
70
18,614
71
17,067
72
18,801
73
11,977
74
54,000
75
37,597
76
31,804
77
17,376
78
78,188
79
18,075
80
55,100
81
2,958
82
4,531
83
2,000
84
1,554
85
11,139
86
3,221
87
29,937
88
52,394
89
8,704
90
2,971
91
1,800
92
1,969
93
29,375
94
7,822
95
11,929
96
7,935
97
17,152
98
7,351
99
9,159
总计
2595.79(秒)