原文: https://mp.weixin.qq.com/s/uCjkZTlBG647xHHOPfFddQ
HeatWave云服务是Oracle新推出的与MySQL集成的、高性能的基于内存的查询加速器,普通用户可将分析和统计查询的性能提高几个数量级。HeatWave集群支持扩展到数千个内核,比Amazon Aurora快1100倍,比Amazon Redshift快2.7倍,而成本仅为其三分之一。带有HeatWave的MySQL数据库即转变为现在流行的HTAP(Hybrid Transactional/Analytical Processing)数据库架构,支持分析人员和应用程序开发人员在MySQL数据库上直接运行OLTP和OLAP两项工作负载。这大大消除了复杂、耗时且昂贵的数据移动以及与单独分析型数据库集成的需求。该服务针对Oracle云基础设施 (OCI) 进行了优化,当前仅在OCI上提供。
基于HeatWave的MySQL架构如下:
可以看到,HeatWave是基于Plugin的形式添加到MySQL,HeatWave集群可以理解为单独的计算引擎。在OCI上支持2 - 64个节点的部署,每节点包括16个OCPU,512G内存,最小配置(2个节点:32C,1TB内存)即可让普通企业实现秒级数据查询。
本文就MySQL Database Service(简称MDS)与HeatWave的集成使用做一简单对比,以便大家对HeatWave的性能有一定了解。
主要测试步骤如下:
- 测试表及数据准备
- 准备MDS VM
- 在普通MDS中查询测试
- HeatWave创建
- 将数据加载到HeatWave
- 基于HeatWave的查询测试
数据及表准备
本测试中使用公开的cell_powers数据集,原始数据约4.7千万条,约1.6G大小。可从此网站下载:
https://www.opencellid.org/
或
https://datasets.clickhouse.tech/cell_towers.csv.xz
直接下载。
测试表结构定义如下:
针对原始测试集,做了两处变更,一是为了方便HeatWave对数据自动分区,创建了一个新的自增长字段用于主键;二是为了提升测试效果,将原始数据集增加了10倍(根据created字段,在原始数据集上,每增加1小时即复制1份数据),即最终测试4.7亿条记录。
本测试只是简单对比一下查询性能,执行SQL如下:
MDS 查询测试
1. MDS VM创建
要使用HeatWave,先要创建一个支持HeatWave的MDS VM(注意:如果不是支持HeatWave的VM,则后续无法添加HeatWave支持),如下:
查看配置,选择第一档
选择需要的存储空间,以及是否需要自动备份等。
创建完成。
可以看到,HeatWave还未启用。
另外,为了保证数据安全,创建的MDS无法通过公网直接访问,该服务实例有内网IP,需要在此内网中建立一个其它的计算节点VM,通过此VM访问MDS。如下图所示:
2. MDS测试
查询1
查询2
查询3
查询4
HeatWave查询测试
接下来我们基于HeatWave执行上述SQL,首先在现有MDS上添加HeatWave支持。
1. Heatwave准备
由于数据量不大,添加最小2个节点的HeatWave即可。
选择配置
创建中
创建成功
加载数据到HeatWave
针对cell_towers表,添加新的分析引擎。
MySQL>ALTER TABLE cell_towers SECONDARY_ENGINE = RAPID;
查看表定义
MySQL>show create table cell_towers;
可以看到表已经支持RAPID引擎。
手工将数据加载到HeatWave。
MySQL> ALTER TABLE cell_towers SECONDARY_LOAD;
由于加载时间很短,如果要查询加载进度,需要及时操作。查看加载完成情况:
加载完成。
由于我们的测试表字段数不多,所以4.7亿条记录耗时不到1分钟即加载完成。
在系统表中查看HeatWave引擎已经支持的表。
mysql>use performance_schema;
Heatwave测试
接下来我们重新执行上面的4个SQL。
查询1
查询2
查询3
查询4
以上是未经优化下的查询结果,针对HeatWave的一些优化选项,查询性能还可以进一步提升。
执行计划对比
使用HeatWave引擎时的查询计划,可以看到有使用Rapid引擎。
未使用HeatWave引擎时的查询计划,可以看到,只能使用Index进行查询。
小结
本次测试情况:
可以看到,基于HeatWave集群,可将查询性能提升数十倍甚至上百倍,要获得这些优势,不需要修改当前应用和查询语句;另外,为了在生产环境中更易用和提高操作效率,HeatWave也支持数据表的自动加载。更多资讯可参考MDS HeatWave官网。