IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL 分析HeatWave引擎 -> 正文阅读

[大数据]MySQL 分析HeatWave引擎

在关系型轻量级关系型数据库领域中MySQL一直占据着主导之位,但随着数据量增加,业务多态化下, OLAP结合的场景越来越多,MySQL的短板问题越来越凸出。为了解决类似问题,通常会采用MySQL的binlog同步机制 或 ETL方式抽取到对应的分析平台,再使用Spark,Impala等计算引擎做计算,提供AP的业务支持。MySQL为了在大数据时代继续延伸,为此提供高性能实时分析计算架构HeatWave分析引擎并且已集群模式提供分析服务。

1.HeatWave引擎

HeatWave是一个分布式的、可扩展、无共享、内存话、列式存储的查询处理引擎,其设计目的是为了实现极高的分析性能。

HeatWave集群包括一个MySQL数据库系统节点和两个或更多的HeatWave节点。MySQL数据库系统节点中,通过HeatWave插件负责集群管理,将数据加载到HeatWave集群,查询调度,并将查询结果返回到MySQL数据库系统。其中HeatWave节点将数据存储在内存中,并处理分析查询。每个HeatWave节点都包含一个HeatWave查询处理引擎(RAPID)的实例。并且HeatWave集群最多支持64个节点。

2.整体架构和实现:

image.png


可以理解在原生的MySQL基础上额外装载,插件式的HeatWave引擎。

查询

是从连接到MySQL数据库系统节点的MySQL客户端或应用程序发出的。客户端和应用程序不直接连接到HeatWave。支持的查询自动从MySQL数据库系统卸载到HeatWave,以加速处理。结果返回到MySQL DB System节点和发出查询的MySQL客户端或应用程序.

image.png

数据加载

将数据加载到HeatWave中需要在MySQL数据库系统上准备表并执行加载命令。准备表包括排除列、定义字符串列编码、添加数据放置键以及将表标记为辅助引擎候选表等任务。

Auto Parallel Load实用程序通过自动化所需的步骤和优化并行加载线程的数量,促进了准备和加载表的过程。

同步

当HeatWave加载一个表时,数据被共享并分布在HeatWave节点之间。加载表后,表上的DML操作将自动传播到HeatWave节点。同步数据不需要用户操作

持久化

加载到HeatWave中的数据(包括传播的更改)由HeatWave存储层自动持久化到OCI对象存储,以便在HeatWave节点或集群故障的情况下快速恢复。

优化

其中在对数据运行查询之后,可以使用HeatWave Advisor来优化工作负载。Advisor分析数据和查询历史,以提供字符串列编码和数据放置建议.

image.png

特点

  • 内存Hybrid-Columnar格式
    数据加载内存和固定宽度的列式数据方式。

  • 基于推送的Vectorized 查询处理
    vector blocks:块级别的计算方式

    image.png

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

    image.png

  • 扩展数据管理
    存储层自动将数据保存到OCI对象存储中,当恢复故障节点或集群时,数据存储层自动恢复。这个自动的、自我管理的存储层可以伸缩到集群所需的大小,并在后台独立运行。重新加载数据所需的时间与数据大小或HeatWave集群大小无关。

  • 插件式MySQL集成
    HeatWave被设计为一个可插拔的MySQL存储引擎。MySQL数据库系统上的数据更改会自动实时传播到HeatWave节点,这意味着查询总是能够访问最新的数据。更改传播由轻量级算法自动执行。
    MySQL查询优化器就会根据查询卸载的先决条件是否满足,透明地决定是否将该查询卸载给HeatWave以加速执行

  • 语法

#不支持数据类型的列排除
CREATE TABLE orders (id INT, description BLOB NOT SECONDARY);

#关键字定义
CREATE TABLE orders (date DATE COMMENT 'RAPID_COLUMN=DATA_PLACEMENT_KEY=1');

#HeatWave查询处理引擎(RAPID)定义为辅助引擎
CREATE TABLE orders (id INT) SECONDARY_ENGINE = RAPID;

#其他
- 使用READ COMMITTED隔离级别读取数据。
- 每张表最多支持470列。
- 如果没有主键,则不允许加载表。

3.Benchmarks性能测试

官网提供了Amazon的RDS,Aurora,Redshift,Snowflake对比:千倍,从性能测试上看确实比较牛

image.png


?

image.png

image.png

image.png

4.总结

从设计思路和实现上的如下结论:
1.HeatWave与MySQL结合封装得好
2.无需做数据同步操作,内部自动完成InnoDB到OCI的持久化
3.AI功能:可以智能地自动配置集群大小,而不需要人为配置
4.使用者无感知的,仍然是通过原有的方式(JDBC/ODBC)连接和使用,
5.SQL语法兼容性基本没变。易用性高
6.这里存在MySQL轻量级的本质问题没有解决,就是MySQL Innodb端的数据量问题。还有MySQL Server层的负载问题。

HeatWave也是MySQL Analytic Engine服务中的分析执行引擎,目前遗憾的是这一服务仅限于Orcale Cloud Infratstructure使用。

不管未来MySQL形态是怎样,作为DBA,我们应该学习HeatWave的设计思路,逐步完善自我心中的数据库为目标。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-01-01 13:58:47  更:2022-01-01 13:59:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 14:09:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码