HeatWave是一个分布式、可扩展、无共享、内存中、混合柱状的查询处理引擎,专为获得极致性能而设计。可以通过向MySQL数据库系统添加一个HeatWave集群来启用它。
HeatWave 是一种大规模并行、高性能内存查询加速器,可将分析工作负载、混合工作负载和机器学习的 MySQL 性能提高几个数量级。可以通过 Oracle 云基础设施 (OCI)、Amazon Web Services (AWS) 和 Oracle Database Service for Azure (ODSA) 访问 HeatWave。
HeatWave 由 MySQL 数据库系统和 HeatWave 节点组成。满足某些先决条件的分析查询会自动从 MySQL 数据库系统卸载到 HeatWave 集群,以加速处理。借助 HeatWave 集群,您可以从同一 MySQL 数据库运行在线事务处理 (OLTP)、在线分析处理 (OLAP) 和混合工作负载,无需提取、传输和加载 (ETL),也无需修改应用程序。
MySQL 数据库系统包含一个 HeatWave 插件,负责集群管理、查询调度以及将查询结果返回到 MySQL 数据库系统。HeatWave 节点将数据存储在内存中并处理分析和机器学习查询。每个 HeatWave 节点都托管一个 HeatWave 查询处理引擎 (RAPID) 的实例。
启用 HeatWave 集群还可以访问 HeatWave AutoML,这是一个完全托管、高度可扩展、经济高效的机器学习解决方案,适用于存储在 MySQL 中的数据。HeatWave AutoML 提供了一个简单的 SQL 接口,用于训练和使用预测机器学习模型,新手和经验丰富的 ML 从业者都可以使用该接口。不需要机器学习专业知识、专门工具和算法。借助 HeatWave AutoML,您只需调用 SQL 例程即可训练模型。同样,您可以使用单个 CALL 或 SELECT 语句生成预测,该语句可以轻松地与您的应用程序集成。
1 HeatWave 架构特点
HeatWave架构支持OLTP、OLAP和机器学习。
内存中混合列格式
HeatWave 以混合列状格式将数据存储在主内存中。HeatWave 混合方法实现了查询处理的列式格式的优势,同时避免了与纯列式格式相关的具体化和更新成本。混合列格式允许使用专为操作固定宽度数据而设计的高效查询处理算法,并允许矢量化查询处理。
大规模并行架构
HeatWave 大规模并行架构使用节点间和节点内数据分区。HeatWave 集群中的每个节点以及节点中的每个 CPU 核心都并行处理分区数据。HeatWave 能够扩展到数千个核心。这种大规模并行架构与高扇出、工作负载感知分区相结合,可加速查询处理。
基于推送的矢量化查询处理
HeatWave通过将矢量块(列式数据的片段)从一个操作器推送到另一个操作器来处理查询。基于推送的执行模型避免了深层调用堆栈,并且与基于元组的处理模型相比,节省了宝贵的资源。
数据规模外扩管理
当分析数据被加载到HeatWave中时,HeatWave存储层会自动将数据持久化,以便在HeatWave集群暂停和恢复以及在HeatWave节点或集群发生故障时快速恢复。在HeatWave集群暂停后或恢复故障节点或集群后,HeatWave存储层会自动恢复数据。这个自动化的、自管理的存储层可以按照HeatWave集群所需的大小进行扩展,并且在后台独立运行。MySQL数据库服务将数据持久化到OCI对象存储。AWS上的MySQL HeatWave将数据持久化到AWS S3。
原生MySQL集成
与MySQL的原生集成为OLTP、OLAP、混合工作负载和机器学习提供了单一的数据管理平台。HeatWave被设计为可插拔的MySQL存储引擎,使得MySQL和HeatWave可以使用相同的接口进行管理。
对MySQL数据库系统中的分析数据的更改会自动实时传播到HeatWave节点,这意味着查询始终可以访问最新的数据。变更传播由轻量级算法自动执行。
用户和应用程序通过MySQL数据库系统使用标准工具和标准的ODBC/JDBC连接器与HeatWave进行交互。HeatWave支持与MySQL相同的ANSI SQL标准和ACID属性以及最常用的数据类型。这种支持使得现有的应用程序可以在不修改的情况下使用HeatWave,实现快速而轻松的集成。
2 HeatWave自动机器学习
借助HeatWave自动机器学习(AutoML),数据和模型永远不会离开MySQL HeatWave,为您节省时间和精力的同时保持数据和模型的安全性。HeatWave AutoML经过优化,适用于HeatWave的架构和扩展,所有HeatWave AutoML处理都在HeatWave集群上完成。HeatWave将机器学习计算分布在HeatWave节点之间,充分利用HeatWave的可扩展性和极大并行处理能力。
3 HeatWave Lakehouse
MySQL HeatWave的 Lakehouse 功能使得可以对存储在对象存储中的数据进行查询处理。源数据从对象存储中读取,转换为HeatWave格式,存储在OCI对象存储中的HeatWave持久性存储层,并加载到HeatWave集群内存中。
提供了对存储在对象存储中的数据的内存中查询处理。
数据不会加载到MySQL InnoDB存储层。
支持CSV和Parquet格式的结构化和关系型数据。
通过这个功能,用户现在可以使用熟悉的SQL语法在同一个查询中分析InnoDB和对象存储中的数据。
4 HeatWave的使用
分析和机器学习查询是从一个MySQL客户端或应用程序发出的,它通过连接到MySQL数据库系统与HeatWave集群进行交互。查询的结果将返回到MySQL数据库系统,并传递给发出查询的MySQL客户端或应用程序。
所需的HeatWave节点数量取决于数据大小以及在加载数据到HeatWave集群时实现的压缩量。在Oracle Cloud Infrastructure(OCI)或Azure的Oracle Database Service(ODSA)中,一个HeatWave集群最多支持64个节点。而在亚马逊云服务(AWS)中,一个HeatWave集群最多支持128个节点。
在Oracle Cloud Infrastructure(OCI)上,加载到HeatWave中的数据会自动持久化到OCI对象存储中,这样在HeatWave集群暂停后或从集群或节点故障中恢复时,数据可以快速重新加载。
HeatWave的网络流量是完全加密的。
5 MySQL Autopilot
MySQL Autopilot 可自动执行大规模实现卓越查询性能的许多最重要且通常具有挑战性的方面,包括集群配置、加载数据、查询处理和故障处理。它使用先进的技术来采样数据、收集数据和查询的统计信息,并构建机器学习模型来对内存使用情况、网络负载和执行时间进行建模。MySQL Autopilot 使用机器学习模型来执行其核心功能。随着执行更多查询,MySQL Autopilot 使 HeatWave 查询优化器变得越来越智能,从而不断提高系统性能。
系统设置
自动配置
通过对数据进行采样来估计所需的 HeatWave 节点数量,这意味着无需手动估计集群大小。对于 OCI 上的 HeatWave,请参阅 HeatWave 集群大小估计。对于 AWS 上的 MySQL HeatWave,请参阅使用 MySQL Autopilot 估算集群大小。对于 Oracle Database Service for Azure (ODSA) 中的 HeatWave,请参阅配置 HeatWave 节点。
自动形状预测
对于 AWS 上的 MySQL HeatWave,MySQL Autopilot 中的自动形状预测功能使用 MySQL 工作负载统计数据来评估当前形状的适用性。自动形状预测提供了放大形状并提高系统性能的提示,或者在系统利用率不足时缩小形状的提示。请参阅自动驾驶仪形状顾问。
数据加载
自动并行加载
通过预测加载到 HeatWave 中的每个表的最佳并行度来优化加载时间和内存使用。
自动编码
确定字符串列数据的最佳编码,从而最大限度地减少所需的簇大小并提高查询性能。请参见第 2.8.2 节“自动编码”。
自动数据放置
建议如何在内存中对表进行分区以实现最佳查询性能,并估计预期的性能改进。
查询执行
自动查询计划改进
使用先前执行的查询的统计信息来改进未来的查询执行计划。
自动查询时间估计
估计查询执行时间,使您无需运行查询即可确定查询的执行方式。运行时估计由 Advisor Query Insights 功能提供。
自动更改传播
对于 OCI 上的 HeatWave,自动更改传播会智能地确定将 MySQL 数据库系统上的数据更改传播到 HeatWave 存储层的最佳时间。
自动排程
以智能方式对查询进行优先级排序,以减少总体查询执行等待时间。
自动线程池
对传入事务进行排队,以在高事务并发期间提供持续的吞吐量。当多个客户端同时运行查询时,自动线程池会应用工作负载感知准入控制,以消除因等待事务过多而导致的资源争用。自动线程池自动管理线程池控制变量 thread_pool_size、thread_pool_max_transactions_limit 和 thread_pool_query_threads_per_group 的设置。线程池的详细工作原理请参见线程池操作。
故障处理
自动错误恢复
在 Oracle 云基础设施 (OCI) 上,当 HeatWave 节点由于软件或硬件故障而变得无响应时,自动错误恢复功能会恢复故障节点或配置一个新节点,并从 HeatWave 存储层重新加载数据。
对于 AWS 上的 MySQL HeatWave,当 HeatWave 节点由于软件故障而变得无响应时,自动错误恢复会恢复故障节点并从 MySQL 数据库系统重新加载数据。