数据库风向标第三期: PolarDB-MySQL云原生HTAP解读

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: PolarDB MySQL 是 OLTP 原生的 MySQL 数据库,而 IMCI 的上线使其具备了 HTAP 的能力。


数据库风向标第三期

PolarDB-MySQL云原生HTAP解读



   云壤:PolarDB MySQL 是 OLTP 原生的 MySQL 数据库,IMCI 上线使其具备了 HTAP 能力。 IMCI 全称为 In-Memory Column Index(内存中的列存索引),它是业内独有的 HTAP 创新技术,也称为原生 HTAP IMCI 使 PolarDB MySQL 具备了一体化实时事务处理和实时数据分析的能力,使分析业务相比于传统方式有了百倍加速,同时可以百分百兼容 MySQL 生态,实现一体化简单运维。


HTAP 产品形式诞生于十几年以前,有非常多数据库产品都称为 HTAP 数据库。那么,到底什么是 HTAP?其特点是什么?

Gartner HTAP 定义如下: HTAP 通过内存计算来实现,它可以使分析业务与事务业务共享同一份数据,通过消除数据在数据库和数据仓库之间的数据迁移体系架构,可以对实时事务数据进行实时分析和态势感知,而不只是对数据进行事后分析。

首先,是“同一个”数据库系统,不是两个数据系统拼接;其次,它使用了非常关键的技术——内存计算;第三,“同一份”数据,消除了不同数据库之间的数据迁移工作和时延;第四,可以同时支持 OLTP  OLAP 业务负载。同时具备以上四个特点的数据库,可以称之为 HTAP 数据库。


那么,客户在使用数据库过程中,存在什么样的痛点?是什么样需求在驱动 HTAP 发展?


道奇:关系型数据库诞生后,在数据库和数据量较小的时候, TP 类请求与 AP 类请求往往是在同一个数据库实例上实现。随着业务发展,数量慢慢变大,AP 类的查询性能逐步降低,且愈发消耗资源。

在业务高峰期, AP 业务可能会影响到 TP 业务。因此,很多客户会在原有的基础上引入独立 AP 数据库,再通过一些同步工具将 TP 数据同步到 AP 数据库,在 AP 数据库内完成业务数据分析。此方案的 AP 性能较好,同时能与 TP 系统分离,因此业务高峰时 AP 类业务不会影响 TP 类业务。

部分客户为了整体架构更稳定,还会在源和目标之间引入消息队列,做系统解耦,可以起到缓冲的作用。此方案系统更复杂,无法保证其稳定性;此外,数据同步链路更长,工具本身的稳定性以及它对元库 DDL 支持不完善,经常出现数据同步链路中断,影响下游业务,比如分析、报表、财务等,是比较突出的痛点。

此外,由于采用了同步工具将源库数据同步到 IP 库,如果源库写入并发特别高或存在大事务,往往会积压很多中间消息,导致延迟不可控。再者,引入 AP 数据库后开发语言与原业务不一致,会产生额外的学习、运营成本。

此方案成本也较高,同步链路与加入消息队列做缓冲都需要额外的资源成本。

总而言之,通过工具类、消息队列、独立 AP 数据库的方案,在稳定性、实时性以及管理成本上都存在诸多问题。客户更期待生态兼容性更好、架构更简单、数据源更低、更简单易用的 HTAP 数据库解决方案。


云壤:面对客户使用过程中的诸多痛点, HTAP 技术如何解决这些问题?


北楼:最开始的 MySQL 是面向 TP 系统优化。MySQL 诞生之初,运行的服务器都是较低规格,比如服务器 CPU 可能只有一线程或两线程,运行内存只有几兆到几百兆, IO 一般是 HDD 机械磁盘。因此,在数据量很小的时候,运行事务查询和分析查询都能胜任。

上世纪 90 年代到 2000 年,互联网需求爆发,数据库面对的用户量也急剧增长。数据增多之后,现有数据库里除了运行 TP 业务之外,还出现了对现有数据的分析需求,其特征为需要同时扫描几十万甚上百万数据。一个大 AP 查询执行时间很长,需要消耗大量 CPU 时间片。同时因为 IO 能力较弱, IO 打满会影响 TP 系统的负载。

传统 TP 系统存储引擎是行式存储,对 TP 业务负载较友好。但是在分析业务场景下,比如典型的销售额统计场景,销售表可能有上百列,对金额列做统计需要将每一列补上,IO 效率非常低。

因此,学术界提升了按列存储的概念,将一行的每一列单独存储。针对数据分析做查询时,比如统计销售额,只需读销售额这一列,执行效率非常高。

此外,CPU 效率方面,行存系统查询时,每一次扫描一行需要将所有列独立出来。而一般的分析查询只会对其中部分列做分析或聚合,因而会对 CPU  cache 命中率造成干扰。如果是按列存储,分析时只需对需要查询的列进行查询,CPU cache 缓存中存储的全是需要分析的列,能够大幅提升 cache 命中率,查询性能相较于行式存储能够提升十倍至百倍。

经过研究,业内认为 TP 系统和 AP 系统应向不同方向优化, TP 系统向高并发、短延时发展,而 AP 系统向高吞吐和大量数据扫描方向优化。两项技术各自发展,最终诞生出不同的产品来解决不同问题。 

实际使用时,不同业务放至不同系统上运行,同时维护一个同步链路。这样的部署架构虽然可以解决业务问题,但也会带来一些麻烦,比如数据同步延迟、数据出错,此外业务需要适配两条两套系统,查询和生态系统不同,也会为业务带来麻烦。

2014年,商业数据库首先出现了 HTAP 概念。在当时的背景下,服务器内存从原先几十兆跃升至几百兆,另一方面,服务器上 SSD 固态硬盘大规模普及,能够提供非常高的 IOPS 能力,从而解决了 TP 系统和 AP 系统存储结构差异导致的数据同步和延迟问题。

有更多内存的情况下,在 TP 系统里更新一行数据大约只需 1 毫秒;而早期内存存储索引较稀疏,更新一行数据可能需要 10-20 毫秒。因此,如果将 TP AP 运行在一套系统里,会导致 TP 系统延迟非常大。但是有了更大内存之后,可以将数据列存于内存里,使得内存更新也是秒级别。在行存储毫秒级的基础上,增加列存储几纳秒至几百纳秒级别的时间周期,对 TP 事务也不会带来显著的时间增加,即更多内存、更快 SSD 可以在维护行列缓存的时候保证 TP 系统延迟。

另一方面, TP AP 系统业务特征不一样,AP 系统 square 里扫描非常多数据会在 CPU 使用以及 IO 使用上对 TP 系统带来干扰。但是有了更快 SSD 以及更多 CPU 核心之后,系统可使用资源增加,在上述情况下不会对 TP 系统产生更大干扰,这也意味着硬件储备达到了 HTAP 系统诞生的要求。

2014-2015 年,阿里云的云数据库诞生之际,团队花了很多精力基于云原生架构比如存储计算分离等对数据库进行重构。

早期阿里云上都是传统互联网企业,适应了 TP/AP 分离架构,其使用的 SQL Server 等商业数据库原始就具有特别强的 HTAP 能力。因而数据库业务迁移上云之后,对 HTAP 有着天然需求。同时,因为业务本身比较复杂,改造成本非常高,所以企业期望能够以一体化、透明的方式迁到云数据库。这也意味着云原生 HTAP 技术是近年必需解决的问题。


云壤:为什么最近互联网数据库都在谈论 HTAP?

首先,HTAP 技术趋于成熟;其次,客户逐渐上云,对 HTAP 需求越来越强烈。PolarDB MySQL 最新发布的特性 IMCI 得到很多人的关注,它是百分百云原生的 HTAP 技术。

IMCI 相比于其他友商的 HTAP 技术有如下三个优点:

可以实现业内独有的无缝兼容 MySQL 生态的一站式应用体验,这也是 IMCI 最大的特点。对于客户而言,无需进行任何业务改造,无需做语法调整,也无需做数据迁移,即可在原先 MySQL 数据库的基础之上,无缝叠加列存加持的分析能力。

IMCI 性能相比于传统 MySQL 行存,最高可达 400 倍加速,同时可以达到业内主流专业 OLAP 系统的能力。

相比于传统 OLAP  OLTP 搭积木的形式,它可以为客户节约更多成本。

一站式应用体验,指可以无缝兼容 MySQL 开发 IMCI 所有代码都构建在 PolarDB MySQL 原生代码基础之上,而不是使用第三方 OLAP 系统来包装。其最大价值在于:客户在使用过程中无须做任何业务调整。

如果客户希望开启 IMCI 能力,只需在 create table 语句的 comment 字段里增加一个字符串,对应表即能生成一套列存,相当于创建了列存索引,无须更改任何其他语法。此外,字符串也可以加在列维度,对应列会生成列索引,按照列形式来进行存储。同理,还可以通过 DDL 语句对存列索引做删除或修改。其最大好处在于,当某些业务只需针对部分固定目标数据做分析,则可以只将目标列、目标表变为列式存储,最大化节约资源。

与此同时,客户无需指定 SQL 语句导流,IMCI 为客户提供了统一入口和统一 endpoints 系统会自动处理客户所有 SQL 语句,通过解析器优化来判断 SQL 语句扫描函数是什么,特点是 OLTP 还是 OLAP 完成判断之后,会将相关 SQL 语句引导到对应引擎实现加速。

相关实践学习
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
相关文章
|
16天前
|
SQL NoSQL 关系型数据库
实时数仓Hologres发展问题之实时数仓的类数据库化与HTAP数据库的差异如何解决
实时数仓Hologres发展问题之实时数仓的类数据库化与HTAP数据库的差异如何解决
34 2
|
13天前
|
Cloud Native 数据库 开发者
云原生数据库2.0问题之帮助阿里云数据库加速技术更新如何解决
云原生数据库2.0问题之帮助阿里云数据库加速技术更新如何解决
|
13天前
|
Cloud Native 关系型数据库 分布式数据库
云原生数据库2.0问题之PolarDB利用云计算技术红利如何解决
云原生数据库2.0问题之PolarDB利用云计算技术红利如何解决
|
16天前
|
Cloud Native 关系型数据库 分布式数据库
云原生关系型数据库PolarDB问题之PolarDB相比传统商用数据库的优势如何解决
云原生关系型数据库PolarDB问题之PolarDB相比传统商用数据库的优势如何解决
19 1
|
28天前
|
运维 Cloud Native 持续交付
云原生技术:未来软件开发的风向标
【8月更文挑战第10天】 在数字化浪潮的推动下,云原生技术正逐渐成为软件开发领域的新宠。它以容器化、微服务架构、持续交付等为核心,旨在构建可弹性扩展、高效运维的应用。本文将深入探讨云原生技术的概念、优势及其在实际中的应用案例,为读者揭示这一前沿技术如何引领软件开发的未来趋势。
|
26天前
|
运维 Cloud Native 云计算
云原生技术:未来软件开发的风向标
【8月更文挑战第12天】 云原生技术,作为现代软件开发领域的一股清流,正逐渐改变着我们的开发模式和应用部署方式。本文将从云原生技术的定义、优势、应用场景以及实践方法等方面进行详细阐述,帮助读者更好地理解和掌握这一前沿技术。让我们一起揭开云原生技术的神秘面纱,探索其在软件开发领域的巨大潜力!
|
30天前
|
存储 关系型数据库 分布式数据库
揭秘PolarDB:中国云原生数据库的超级英雄,如何颠覆传统数据存储?
【8月更文挑战第8天】在数字化时代,数据成为企业的核心资产。随着云技术的发展,企业纷纷向云端迁移,选择合适的云原生数据库至关重要。PolarDB凭借卓越性能、高可靠性和易用性在中国市场领先。它采用存储计算分离架构,支持独立扩展,提高处理大规模数据的效率和灵活性。多副本机制确保数据高可用性和持久性,优于单副本存储方案。兼容多种数据库引擎,提供丰富管理工具,降低迁移和维护成本。按量付费模式帮助企业有效控制成本。因此,PolarDB为企业数字化转型提供了强有力的支持。
76 1
|
1月前
|
存储 SQL 运维
“震撼发布!PolarDB-X:云原生分布式数据库巨擘,超高并发、海量存储、复杂查询,一网打尽!错过等哭!”
【8月更文挑战第7天】PolarDB-X 是面向超高并发、海量存储和复杂查询场景设计的云原生分布式数据库系统
83 1
|
2月前
|
关系型数据库 测试技术 分布式数据库
PolarDB:中国云原生数据库的领军者
数据库社区“墨天轮”公布了2024年最新一期中国数据库流行度排行榜,阿里云瑶池旗下的自研云原生数据库PolarDB夺冠
|
2月前
|
Cloud Native 关系型数据库 MySQL
云原生数据仓库使用问题之如何将ADB中的数据导出到自建的MySQL数据库
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。

相关产品

  • 云数据库 RDS MySQL 版
  • 云原生数据库 PolarDB
  • 下一篇
    DDNS