暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

利用HeatWave + MySQL实现高性能海量数据分析

2331

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的性能有一定了解。

主要测试步骤如下:

  1.  测试表及数据准备

  2.  准备MDS VM

  3.  在普通MDS中查询测试

  4.  HeatWave创建

  5.  将数据加载到HeatWave

  6.  基于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官网。



作者简介

蔡东林,甲骨文云平台数据集成资深咨询顾问,专注于甲骨文数据集成相关产品及解决方案。具有15+年的数据仓库、数据处理经验,熟悉甲骨文相关集成产品,方案和项目实施经验。熟悉电信,银行行业。您可以通过donglin.cai@oracle.com与他联系。




文章转载自甲骨文开发者社区,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论