MySQL HeatWave 用户指南  /  第一章概述

第一章概述

HeatWave 是一种大规模并行、高性能、内存中查询加速器,可将分析工作负载、混合工作负载和机器学习的 MySQL 性能提高几个数量级。可以通过 Oracle Cloud Infrastructure (OCI)、Amazon Web Services (AWS) 和 Oracle Database Service for Azure (ODSA) 访问 HeatWave。

HeatWave 集群由 MySQL 数据库系统和 HeatWave 节点组成。满足特定先决条件的分析查询会自动从 MySQL 数据库系统卸载到 HeatWave 集群以加速处理。借助 HeatWave Cluster,您可以从同一个 MySQL 数据库运行联机事务处理 (OLTP)、联机分析处理 (OLAP) 和混合工作负载,而无需提取、传输和加载 (ETL),也无需修改您的应用程序。有关 HeatWave 分析功能的更多信息,请参阅 第 2 章,HeatWave

MySQL 数据库系统包含一个 HeatWave 插件,负责集群管理、查询调度以及将查询结果返回给 MySQL 数据库系统。HeatWave 节点将数据存储在内存中,并处理分析和机器学习查询。每个 HeatWave 节点都托管一个 HeatWave 查询处理引擎实例 ( RAPID)。

启用 HeatWave 集群还提供对 HeatWave 机器学习 (ML) 的访问,这是一种完全托管、高度可扩展、经济高效的机器学习解决方案,适用于存储在 MySQL 中的数据。HeatWave ML 提供了一个简单的 SQL 接口,用于训练和使用预测机器学习模型,新手和经验丰富的 ML 从业者都可以使用。不需要机器学习专业知识、专用工具和算法。借助 HeatWave ML,您可以通过一次 SQL 例程调用来训练模型。同样,您可以使用单个CALLor SELECT语句生成预测,该语句可以轻松地与您的应用程序集成。

使用 HeatWave ML,数据和模型永远不会离开 MySQL 数据库服务,从而节省您的时间和精力,同时确保您的数据和模型安全。HeatWave ML 针对 HeatWave 形状和缩放进行了优化,并且所有 HeatWave ML 处理都在 HeatWave Cluster 上执行。ML 计算分布在 HeatWave 节点之间,利用 HeatWave 的可扩展性和大规模并行处理能力。有关 HeatWave 机器学习功能的更多信息,请参阅 第 3 章,HeatWave ML

分析和机器学习查询是从 MySQL 客户端或应用程序发出的,该客户端或应用程序通过连接到 MySQL 数据库系统与 HeatWave 集群交互。结果返回到 MySQL 数据库系统和发出查询的 MySQL 客户端或应用程序。

所需的 HeatWave 节点数取决于数据大小和将数据加载到 HeatWave 集群时实现的压缩量。Oracle Cloud Infrastructure (OCI) 或 Oracle Database Service for Azure (ODSA) 中的 HeatWave 集群最多支持 64 个节点。在 Amazon Web Services (AWS) 上,一个 HeatWave 集群最多支持 128 个节点。

在 Oracle Cloud Infrastructure (OCI) 上,加载到 HeatWave 中的数据会自动持久保存到 OCI 对象存储中,这允许在 HeatWave 集群暂停后恢复时或 HeatWave 集群从集群或节点故障中恢复时快速重新加载数据。

HeatWave 网络流量已完全加密。

图 1.1 HeatWave 架构

内容在周围的文字中描述。

HeatWave 建筑特色

内存中混合列格式

HeatWave 以混合列格式将数据存储在主内存中。HeatWave 的混合方法实现了查询处理的柱状格式的优势,同时避免了与纯柱状格式相关的物化和更新成本。混合列式格式支持使用旨在对固定宽度数据进行操作的高效查询处理算法,并允许矢量化查询处理。

大规模并行架构

HeatWave 的大规模并行架构是通过节点间和节点内数据分区实现的。HeatWave 集群中的每个节点以及节点中的每个 CPU 内核并行处理分区数据。HeatWave 能够扩展到数千个内核。这种大规模并行架构与高扇出、工作负载感知分区相结合,加速了查询处理。

图 1.2 HeatWave 大规模并行架构

内容在周围的文字中描述。

基于推送的向量化查询处理

HeatWave 通过将查询执行计划从一个运算符推送到另一个运算符来处理查询。与基于元组的处理模型相比,基于推送的执行模型避免了深度调用堆栈并节省了宝贵的资源。

横向扩展数据管理

在 Oracle Cloud Infrastructure (OCI) 上,当分析数据加载到 HeatWave 中时,HeatWave 存储层会自动将数据保存到 OCI 对象存储,以便暂停和恢复 HeatWave 集群,并在 HeatWave 节点或集群出现故障时快速恢复。当 HeatWave 集群在暂停或恢复故障节点或集群后恢复时,HeatWave 存储层会自动恢复数据。这种自动化、自我管理的存储层可扩展到 HeatWave 集群所需的大小,并在后台独立运行。

在 Amazon Web Services (AWS) 上,当恢复 HeatWave 集群或因软件故障而失败的 HeatWave 节点时,加载到 HeatWave 中的数据会自动从 MySQL 数据库系统中恢复。如果 HeatWave Cluster 停止,则必须使用受支持的数据加载方法之一重新加载数据。请参阅 第 2.2 节,“加载数据”

本机 MySQL 集成

与 MySQL 的本地集成为 OLTP、OLAP、混合工作负载和机器学习提供了一个单一的数据管理平台。HeatWave 被设计为可插入的 MySQL 存储引擎,它可以使用相同的界面管理 MySQL 和 HeatWave。

MySQL 数据库系统上分析数据的更改会实时自动传播到 HeatWave 节点,这意味着查询始终可以访问最新数据。更改传播由轻量级算法自动执行。

用户和应用程序使用标准工具和基于标准的 ODBC/JDBC 连接器通过 MySQL 数据库系统与 HeatWave 交互。HeatWave 支持与 MySQL 相同的 ANSI SQL 标准和 ACID 属性以及最常用的数据类型。这种支持使现有应用程序无需修改即可使用 HeatWave,从而实现快速轻松的集成。

MySQL自动驾驶仪

MySQL Autopilot 自动执行许多最重要且通常具有挑战性的方面,以实现大规模的卓越查询性能,包括集群配置、加载数据、查询处理和故障处理。它使用先进的技术对数据进行采样,收集数据和查询的统计信息,并构建机器学习模型来对内存使用、网络负载和执行时间进行建模。MySQL Autopilot 使用机器学习模型来执行其核心功能。随着更多查询的执行,MySQL Autopilot 使 HeatWave 查询优化器变得越来越智能,从而不断提高系统性能。

Autopilot 专注于 HeatWave 服务生命周期的四个方面:

系统设置

  • 自动配置

    估计数据采样所需的 HeatWave 节点数,这意味着无需手动估计集群大小。对于 OCI 上的 HeatWave,请参阅 HeatWave Cluster Size Estimates。对于 AWS 上的 MySQL HeatWave,请参阅 使用 MySQL Autopilot 估算集群大小。对于 Oracle Database Service for Azure (ODSA) 中的 HeatWave,请参阅 供应 HeatWave 节点

  • 自动形状预测

    对于 AWS 上的 MySQL HeatWave,自动形状预测使用您的工作负载的 MySQL 统计数据来评估您当前形状的适用性。自动形状预测会告诉您是否可以有用地增大形状以提高系统性能,或者您当前的形状是否未被充分利用并且可以缩小尺寸。请参阅第 5.1 节,“自动形状预测”

数据加载

查询执行

  • 自动查询计划改进

    使用以前执行的查询的统计信息来改进未来的查询执行计划。请参阅 自动查询计划改进

  • 自动查询时间估计

    估计查询执行时间,使您无需运行查询即可确定查询的执行方式。运行时估计由 Advisor Query Insights功能提供。请参阅 第 2.7.3.3 节,“查询见解”

  • 自动更改传播

    对于 OCI 上的 HeatWave,自动更改传播可以智能地确定将 MySQL 数据库系统上的数据更改传播到 HeatWave 存储层的最佳时间。

  • 自动排程

    以智能方式确定查询的优先级,以减少总体查询执行等待时间。请参阅 自动计划

  • 自动线程池

    对传入事务进行排队以在高事务并发期间提供持续的吞吐量。在多个客户端同时运行查询的情况下,自动线程池应用工作负载感知准入控制来消除由太多等待事务引起的资源争用。Auto Thread Pooling 自动管理线程池控制变量 thread_pool_sizethread_pool_max_transactions_limit和 的设置thread_pool_query_threads_per_group。线程池的工作原理详见 线程池操作

故障处理

  • 自动错误恢复

    在 Oracle Cloud Infrastructure (OCI) 上,当 HeatWave 节点因软件或硬件故障而变得无响应时,自动错误恢复可恢复故障节点或配置新节点并从 HeatWave 存储层重新加载数据。请参阅 HeatWave 集群故障和恢复

    对于 AWS 上的 MySQL HeatWave,当 HeatWave 节点因软件故障而变得无响应时,自动错误恢复会恢复故障节点并从 MySQL 数据库系统重新加载数据。