分布式HTAP数据库PetaData(HybridDB for MySQL) —— OLTP与OLAP一站式解决方案

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介:

一、前言

      在大数据推动行业发展的年代,大型企业级应用往往选择多种数据库产品,分别支持在线交易、报表生成、日志存储、离线分析等,用以驱动业务的高速发展,但这种组合式解决方案,需要精细的控制不同产品间的数据流转和一致性问题,使用难度颇高,每个数据库产品间的数据同步和冗余,也带来了很高的成本开销,进一步限制了企业级应用的发展。

      近年来Gartner提出了HTAP数据库概念,一个数据库既能支持OLTP(在线事务处理),又能支持OLAP(在线分析处理),涵盖大部分企业级应用的需求,一站解决这些问题。数据库云服务供应厂商,纷纷响应支持,企业级应用案例也如雨后春笋般涌现。

     HTAP数据库在架构上做了哪些创新,解决了哪些关键问题?又能为企业级应用降低哪些应用难度,减少哪些成本开销?本文将为您揭示HTAP数据库为大数据行业带来的新变化。

二、OLTP + OLAP vs. HTAP

      企业级应用的两个业务场景:在线交易和数据分析,是OLTP和OLAP的典型应用。在线交易对数据库的ACID特性有严格的要求,更关注数据库在低延迟、高并发方面的能力,数据分析对并发和延迟要求不高,反而更关注数据库的算法支持、容量、计算处理能力。在企业级应用的不同成长阶段,为这两类业务选择的技术有很大差别:

  1. 小型应用阶段:为了节省成本,企业选择将这两类业务放在同一个OLTP数据库中运行,在数据规模小时,可以运转的很好;
  2. 中型应用阶段:在数据规模上来时,会面临资源争抢的问题:分析业务会消耗数据库大量的cpu和io资源,影响到交易业务的延迟,最终使得每个业务都得不到很好服务。此时,企业选择了数据库读写分离和分时复用,一个主库用于交易,多个读库用于分析,且在线业务和离线业务分时复用;
  3. 大型应用阶段:数据规模进一步上升,单一的主库已经不能满足交易需求,读库也跑不动越来越复杂的分析SQL。此时,企业选择了分库分表和分析型数据库,利用分库分表中间件,拆分交易主库,水平扩展交易性能,同时将数据同步到OLAP数据库中,进行分析计算,做到彻底的资源隔离;
  4. 巨型应用阶段:数据规模再次上升,每次为OLTP数据库扩容都要消耗极大的人力物力,数据同步到OLAP数据库的时延和成本很高,使用时要为不同业务选择不同数据库入口,管理复杂度极大。此时,企业可以选择HTAP数据库进一步改善业务架构,降低成本,提升易用性,改善运维体验;


图1. 企业级应用的架构演进历程

      仔细分析这几个不同阶段可以发现,使用HTAP数据库云服务,便能省去企业的选型麻烦:

  1. 无论业务规模多大,企业使用HTAP数据库的方式,始终都与小型应用阶段相同,无需改变使用习惯;
  2. 业务规模扩大,企业也可以为HTAP数据库添加更多的计算存储资源,提升数据库的能力,以适应业务,每个阶段无需付出额外的成本;
  3. 企业无需关心数据库的运维,进一步减少了人力开销;

      阿里云提供的HybridDB for MySQL便是一款HTAP数据库云服务,兼容MySQL的协议、语法、生态,用户无需改变使用习惯,采用全自研的链路存储计算分离架构,可以满足不同业务规模的企业级应用需求,并与之共同成长。

三、HTAP数据库架构优势

      阿里云HybridDB for MySQL是松耦合分布式架构的HTAP数据库云服务,核心技术架构如下所示:

图2. 阿里云HybridDB for MySQL核心架构

1. 数据分区

      HybridDB for MySQL采用了数据分区的架构,分区间share nothing,从而支持线性扩容,链路、存储、计算分离,合理利用数据库的整体硬件资源,降低整体成本。

图3. 阿里云HybridDB for MySQL数据分区原理

      数据分区架构使得节点扩容变得更为简单,加减节点只涉及到局部的数据搬动,而且不影响业务使用。统一的链路入口,不会改变用户的使用习惯,一份存储,不会带来更多的成本,独立的计算资源,充分适应不同业务的计算需求。

2. 统一的数据库云服务

      在数据库云服务方面,HybridDB for MySQL与RDS for MySQL对齐,几个解决方案的综合对比如下:

 

HybridDB for MySQL

RDS for MySQL

OLTP+OLAP混合方案

访问入口

统一入口

统一入口

多点入口

ACID事务特性

全局ACID

全局ACID

组件间ACID

SQL兼容性

全局一致

全局一致

组件间兼容性不同

数据延迟

有同步延迟

稳定性

统一的稳定性保障

统一的稳定性保障

组件间稳定性不同

性能扩容

线性扩容

不支持线性扩容

线性扩容

计算功能扩展

多种计算功能扩展

不支持计算功能扩展

多种计算功能扩展

存储成本

一份存储

一份存储

多份存储

计算成本

一份计算

一份计算

多份计算

异构数据同步成本

数据同步成本较高

备份恢复

支持

支持

组件局部支持

监控

支持

支持

组件局部支持

表1. 阿里云HybridDB for MySQL与其他数据库服务的对比

3. 高可用

      HybridDB for MySQL全链路均有高可用设计,链路引擎、计算引擎为无状态设计,副本扩增可以带来更高的可用性,存储引擎为一主多备半同步复制的存储引擎,数据库本身也支持实时备份,并支持按备份集恢复。

图4. 阿里云HybridDB for MySQL高可用架构

四、应用场景

      HTAP数据库,常用于混合业务场景,以综合能力著称,可以替代大部分OLTP、OLAP数据库混用的技术架构,实际的应用场景可见下文。

1. 分库分表+实时分析

      企业级应用的最典型业务为在线交易和数据分析,使用HTAP数据库能有更多的收益:

  1. 在线交易业务使用单机数据库+分库分表中间件,而HTAP数据库的水平分区架构,天然兼容分库分表中间件的业务场景,企业级用户无需再关心底层单机数据库的运维问题;
  2. 数据分析业务使用数据同步+大数据处理平台,HTAP数据库支持直接对数据进行分析处理,且不影响在线业务,在时效性和成本方面,有很大的优势;


图5. 分库分表+实时分析业务使用HTAP数据库

2. 物联网实时数据处理

      物联网大数据应用,具有海量的传感器数据,实时更新和查询需求,非常密集,对数据库的性能要求很高。使用HTAP数据库,能够获得KV数据库的读写性能,NoSQL数据库的容量,OLTP关系数据库的多位查询能力,以及OLAP数据库的复杂分析能力。

图6. 物联网业务使用HTAP数据库

3. 实时数据仓库

      数据仓库通常仅允许导入,并且是只读的,不允许实时更新,使用模式是将一批完整的数据导入到数据仓库中,然后利用数据仓库的计算和存储能力,进行各种维度的计算。通俗点讲,数据仓库存储的数据通常是“二手数据”,一般由关系数据库的“一手数据”生成,进入数据仓库的数据,对齐在事务边界。

      对于某些时效性要求极高的大数据业务,Hadoop+MapReduce甚至是Spark都无法满足低延时大数据服务的需求,此时可以选择HTAP数据库,既支持批量导入原始数据,进行实时聚合分析,又支持实时从大数据处理平台上同步结果,充当高性能缓存和二级数仓,提升企业级应用的整体响应能力。此外,HTAP数据库也能直接生成实时报表,进一步提升HTAP数据库在大数据业务的应用范围。

图7. 实时数据仓库业务使用HTAP数据库

五、后记

      随着业务的爆炸式增长,越来越多的企业,需要重量级的数据库产品和更好的服务,来避免技术架构成为企业的瓶颈,从而解放企业,以更专注于核心业务。

      阿里云的创新产品HybridDB for MySQL,是阿里云全自研的HTAP数据库产品,紧贴企业级用户的需求,为企业级应用带来了新的选择,也体现了阿里云在数据库行业的技术实力和自研决心,HybridDB for MySQL会为用户带来更好的数据库服务体验。

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
2月前
|
关系型数据库 MySQL Java
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
101 0
|
2月前
|
数据库
数据库创建之主文件不能容纳副本的解决方案
数据库创建之主文件不能容纳副本的解决方案
38 1
|
3月前
|
存储 SQL 微服务
常用的分布式事务解决方案(三)
常用的分布式事务解决方案(三)
|
3月前
|
关系型数据库 MySQL
常见分布式事务的解决方案(一)
常见分布式事务的解决方案(一)
|
1月前
|
缓存 NoSQL PHP
Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出
本文深入探讨了Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出。文章还介绍了Redis在页面缓存、数据缓存和会话缓存等应用场景中的使用,并强调了缓存数据一致性、过期时间设置、容量控制和安全问题的重要性。
39 5
|
1月前
|
运维 监控 关系型数据库
数据库管理中的自动化运维:挑战与解决方案
数据库管理中的自动化运维:挑战与解决方案
|
1月前
|
算法 安全 数据库
数据库死锁的解决方案有哪些?
【10月更文挑战第28天】数据库死锁是数据库管理中的一个常见问题
99 15
|
1月前
|
监控 关系型数据库 MySQL
MySQL自增ID耗尽应对策略:技术解决方案全解析
在数据库管理中,MySQL的自增ID(AUTO_INCREMENT)属性为表中的每一行提供了一个唯一的标识符。然而,当自增ID达到其最大值时,如何处理这一情况成为了数据库管理员和开发者必须面对的问题。本文将探讨MySQL自增ID耗尽的原因、影响以及有效的应对策略。
114 3
|
1月前
|
存储 监控 关系型数据库
MySQL自增ID耗尽解决方案:应对策略与实践技巧
在MySQL数据库中,自增ID(AUTO_INCREMENT)是一种特殊的属性,用于自动为新插入的行生成唯一的标识符。然而,当自增ID达到其最大值时,会发生什么?又该如何解决?本文将探讨MySQL自增ID耗尽的问题,并提供一些实用的解决方案。
42 1
|
2月前
|
关系型数据库 MySQL 数据库
一个 MySQL 数据库死锁的案例和解决方案
本文介绍了一个 MySQL 数据库死锁的案例和解决方案。
150 3

热门文章

最新文章

下一篇
DataWorks