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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

一、前言

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

      近年来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
目录
相关文章
|
21天前
|
关系型数据库 分布式数据库 数据库
PostgreSQL+Citus分布式数据库
PostgreSQL+Citus分布式数据库
52 15
|
26天前
|
算法 安全 数据库
数据库死锁的解决方案有哪些?
【10月更文挑战第28天】数据库死锁是数据库管理中的一个常见问题
58 15
|
18天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
32 1
|
20天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
35 4
|
27天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
150 1
|
29天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
85 2
|
1月前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
118 4
|
2月前
|
关系型数据库 MySQL 数据库
一个 MySQL 数据库死锁的案例和解决方案
本文介绍了一个 MySQL 数据库死锁的案例和解决方案。
81 3
|
15天前
|
运维 关系型数据库 MySQL
安装MySQL8数据库
本文介绍了MySQL的不同版本及其特点,并详细描述了如何通过Yum源安装MySQL 8.4社区版,包括配置Yum源、安装MySQL、启动服务、设置开机自启动、修改root用户密码以及设置远程登录等步骤。最后还提供了测试连接的方法。适用于初学者和运维人员。
123 0
|
2月前
|
存储 关系型数据库 MySQL
如何在MySQL中创建数据库?
【10月更文挑战第16天】如何在MySQL中创建数据库?