乐趣区

关于数据库:聊聊-HTAP-的前世今生

随着古代社会大型实时剖析利用的逐步风行,关系型数据库曾经难以解决高并发的事务申请。商业层面上,当寰球进入数字化时代,数字化技术渗透到各行各业,同时产生了海量数据,数据的存储和利用是企业决策的重要依据之一,业务须要实时依据 TP 的落地数据进行 C 端疾速反馈,比方实时风控,交易历史明细查问,欺诈监测等等。技术上,因为传统的数仓 ETL 链路长,提早大,很难满足业务疾速多变的诉求,业务场景的变动也掀起了一股 HTAP 浪潮。

一、HTAP 诞生的背景

在二十世纪六十年代,商业部门的计算机开始用于工资单交易。联机事务处理 OLTP(On-Line Transaction Processing)失去进一步倒退,导致 OLTP 在政府和商业部门信息系统中的宽泛应用。OLAP(On-Line Analytical Processing) 是在 OLTP 术语上批改而创立的。在 HTAP 概念之前,业务类型大抵能够分成两大类:联机事务处理 OLTP、联机剖析解决 OLAP。

  • OLTP 是传统的关系型数据库的次要利用,次要是根本的、日常的事务处理,例如银行交易。
  • OLAP 是数据仓库零碎的次要利用,反对简单的剖析操作,偏重决策反对,并且提供直观的查问后果,例如业务销售报表。

(一)传统 OLTP 与 OLAP 拆散架构

在同一组织中,通常 OLTP 和 OLAP 零碎并存,且 OLAP 数据来源于 OLTP 零碎,零碎架构大抵可分为 ETL 数据同步和数据库 LOG 同步两种,以下的两种架构都各有优缺点。

图:传统 OLTP 与 OLAP 拆散架构

架构一: 是指来自一个或多个 OLTP 数据库的数据通过 GoldenGate、DSG 等 ETL 工具提取、转换、加载到 OLAP 零碎中,随着大数据的到来,前期又呈现了 Debezium、Kafka、Flink 等流式计算引擎。应用 ETL 工具,用户能够从多个起源收集数据并将其发送到目的地。它的毛病就是组件太多,各项老本十分高。

架构二: 这种架构是指通过数据库自带的日志同步性能,实时将数据同步到备库,备库只读对外提供 OLAP 的服务。相比架构一在产品的维护性,实时性以及数据的一致性上有了质的进步。然而架构二在应用场景上相比架构一有所限度,只能对繁多同源数据库进行同步。

(二)剖析型需要崛起推动技术架构演进

尽管 OLTP 产品曾经成熟,然而以后的解决方案无奈满足实时剖析的需要。随着数据量的积攒,剖析型需要不断涌现,这也推动了数据库技术的改革,从 OLTP 到 OLAP,进而演进到 HTAP 理念,混合事务剖析解决数据库蓬勃发展。

1990 年代以前, 日常解决相干的动静业务以 OLTP 需要为主,OLAP 并未独立;随着数据量一直增多、场景逐步丰盛,剖析型需要开始遍及,1990s MPP 架构的 OLAP 产品开始呈现;2010s,物联网等技术的倒退,使得企业对实时数据分析的需要晋升,且 OLAP、大数据技术栈一直分化也给企业理论运维治理多套零碎带来挑战,HTAP 混合事务剖析解决数据库的概念也应运而生。

图:OLTP 到 HTAP 架构演进

2005 年, Gartner 正式提出了 HTAP 这一概念, 并且迅速引起了一些企业的关注,这一概念被视为是将来数据倒退的重要趋势之一。2014 年,Gartner 又对 HTAP 数据库给出了明确的定义: 即须要同时反对 OLTP 和 OLAP 场景,基于翻新的计算存储框架,在同一份数据上保障事务的同时反对实时剖析,省去费时的 ETL 过程。

随着 HTAP 概念一直遍及,业界也开始逐步揭开 HTAP 的神秘面纱。HTAP 数据库的衰亡是在 2010 年。2010 年 SAP HANA 推出,HANA 与上一代 SAP 零碎的次要区别在于,它是一个面向列的内存数据库,将 OLAP 和 OLTP 操作组合到一个零碎中。因而,HANA 是一个“在线事务和剖析解决”(OLTAP) 零碎,也称为混合事务 / 剖析解决(HTAP),这一产品的公布标记着 HTAP 开始利用和落地。2017 年,TiDB 推出 1.0 版本,能够替换分库分表 MySQL 做 TP 业务。自此之后,中国 HTAP 数据库倒退迅猛,HTAP 技术已成为新兴数据库的重要选项。

二、HTAP 数据库的核心技术

依据 2022 年 SIGMOD 收录的论文《HTAP Databases: What is New and What is Next》,目前 HTAP 的相干技术包含:事务处理 (TP) 技术、剖析解决(AP)技术、数据同步 (DS) 技术、查问优化技术、资源调度技术。这些关键技术被 HTAP 数据库采纳。然而,它们在各种指标上各有利弊,例如效率、可扩展性和新鲜度。

(一)事务处理 (TP) 技术

HTAP 数据库中的 OLTP 工作负载是通过行存储解决的,但不同的架构会导致不同的 TP 技术。它次要由两种类型组成:

  • MVCC+logging。它依赖于 MVCC 协定和日志记录技术来处理事务。具体来说,每个插入首先写入日志和行存储,而后附加到内存中的增量存储。更新创立具备新生命周期的行的新版本,即开始工夫戳和完结工夫戳,即旧版本在删除位图中被标记为删除行。
  • 2PC+Raft+logging。它依赖于分布式架构,它通过分布式事务处理提供了高可扩展性。ACID 事务在分布式节点上应用两阶段提交 (2PC) 协定、基于 Raft 的共识算法和预写日志 (WAL) 技术进行解决。

(二)剖析解决(AP)技术

对于 HTAP 数据库,OLAP 负载应用面向列的技术执行,例如压缩数据上的聚合和单指令多数据 (SIMD) 指令,次要分为三种类型:

  • 内存中增量和列扫描: 将内存中的增量和列数据一起扫描,因为增量存储可能包含尚未合并到列存储的更新记录。因为它曾经扫描了最近可见的 delta tuples 在内存,因而 OLAP 的数据新鲜度很高。
  • 基于日志的增量和列扫描: 将基于日志的增量数据和列数据一起扫描以获取传入查问。与第一种相似,第二种应用列存储扫描最新的增量用于 OLAP。然而,因为读取可能尚未合并的 delta 文件,这样的过程更加低廉。因而,数据新鲜度较低,因为发送和合并 delta 文件的高提早。
  • 列扫描: 只扫描列数据以取得高效率,因为没有读取任何增量数据的开销。然而当数据在行存储中常常更新时,这种技术会导致新鲜度低。

(三)数据同步 (DS) 技术

因为在查问时读取增量数据的老本很高,因而须要定期将增量数据合并到主列存储 中。各种 HTAP 数据库有 3 种 DS 技术。

  • 内存中增量合并
  • 基于磁盘的增量合并
  • 从主行存储重建

(四)查问优化技术

查问优化技术的三个方面,包含:

  • HTAP 的列抉择。靠历史工作负载和统计数据来抉择从主存储中提取的频繁拜访的列到内存中。因而,能够将查问下推到内存中的列存储以进行减速。毛病是可能没有抉择新查问的列,导致基于行的查询处理。
  • 混合行 / 列扫描。能够合成简单的查问以在行存储或列存储上执行,而后组合后果。这对于能够应用基于行的索引扫描和残缺的基于列的扫描执行的 SPJ 查问来说是典型的。
  • HTAP 的 CPU/GPU 减速。别离利用 CPU 的工作并行性和 GPU 的数据并行性来解决 OLTP 和 OLAP。然而,这些技术有利于高 OLAP 吞吐量,同时具备低 OLTP 吞吐量。

(五)资源调度技术

对于 HTAP 数据库,资源调度是指为 OLTP 和 OLAP 工作负载分配资源。以后的技术能够动态控制 OLTP 和 OLAP 工作负载的执行模式,以更好地利用资源。调度技术有两种类型:工作负载驱动的办法和新鲜度驱动的办法。前者依据两者运行时的性能负载 来 调整 OLTP 和 OLAP 工作各自的并行度。后者定期切换 OLTP 和 OLAP 的独占资源执行模式和数据交换时的资源共享执行模式。

表:HTAP 五种关键技术介绍

三、中国 HTAP 数据库倒退现状

依据艾瑞征询研究室公布的 《2022 年中国数据库钻研报告》,过来,HTAP 数据库的技术架构以扩大主行存技术,在行存根底上加列存的形式为主,随着分布式技术一直成熟,人造适配 HTAP 数据库,于是开启了分布式的架构实现,满足了高并发需要。

截止 2023 年 2 月,墨天轮中国数据库排行榜  共有 259 个数据库参加排名。其中 SQL 关系型数据库 162 个,占比 62%。在 162 个关系型数据库中,OLTP 数据库 109 个,占比 67%,HTAP 数据库为 26 个,占关系型数据库的 16%。 国内典型的 HTAP 数据库有 PingCAP 的 TiDB、蚂蚁的 OceanBase、石原子科技 StoneDB、亚信 AntDB 等。另外“新一代 HTAP + 云”正在成为数据库市场重要的潮流,各大云厂商都在布局 HTAP,如阿里云 PolarDB、华为云 GaussDB、腾讯云 TDSQL 等。

  • OceanBase 是一款金融级分布式关系数据库,在存储引擎、分布式事务、程度扩大、多正本、高可用、多活容灾、HTAP 等多个方向都有关键技术冲破和竞争力。OceanBase 独创的分布式计算引擎,可能让零碎中多个计算节点同时运行 OLTP 类型的利用和简单的 OLAP 类型的利用,让数据库利用率最大化的同时利用多个节点的计算能力,实现对 OLTP 和 OLAP 利用的反对。

图:OceanBase 一体化混合负载解决方案

  • 2017 年 TiDB 晚期版本就开始尝试反对 HTAP 的能力,并别离在 2019 年公布了 TiSpark, 2020 年公布了 TiDB 4.0,这是一款为 HTAP 而设计的分布式数据库,到了 5.0 版本,在 TiFlash 引入 MPP 模式与多项企业级个性的减少,使得 TiDB 5.0 倒退为“一款具备残缺的 HTAP 能力”。

图:TiDB 数据库 HTAP 要害架构

  • StoneDB 是由石原子科技公司公布的一款反对行列混存 + 内存计算的 HTAP 数据库, 其翻新的一体化 HTAP 架构,突破传统 TP 型数据库能力边界,为用户提供一站式 OLTP +OLAP 解决方案。StoneDB 具备超高性能、实时剖析等特点,于 2022 年 6 月 29 日正式开源。

图:来源于 StoneDB HTAP 架构

  • 亚信 AntDB 数据库是一款通用的、企业级分布式关系型数据库,交融事务处理和在线剖析操作,同时反对日常流水的操作型和企业报表的决策型业务。其采纳 share-nothing 架构,计算层除实现传统数据库的编译优化、SQL 执行等工作外,还具备分布式工作散发、HTAP 双引擎框架解决能力。

图:AntDB 数据库 HTAP 解决方案架构

随着云基础设施广泛利用,“分布式×云原生”正在重构企业数据架构,成为新一代 HTAP 的技术环境。其次,技术改革带来了新的可能性。分布式实践与云计算、AI 算法的交融带来了新一代的架构翻新,这些都使得 HTAP 在云端能够反对不同的云存储,AI 等新技术,中国 HTAP 数据库正在打造更有竞争力的翻新。

四、HTAP 数据库的挑战与时机

目前 HTAP 数据库与 2014 年 HTAP 刚刚提出来时的概念和外延大不相同。随着其一直倒退的同时,也面临了泛滥问题。例如:HTAP 工作负载的主动列抉择、自适应 HTAP 资源调度、学习型 HTAP 查问优化器、HTAP 基准测试套件等,是当下的重要问题。

(一)HTAP 工作负载的主动列抉择

给定一个 HTAP 工作负载,从行存储中抉择哪些列进入内存列存储是一项重要工作。然而,现有办法重大依赖历史统计数据来抉择列到内存中。例如 Oracle 21c 的 Heatmap。此类办法通过运行所有查问来进行举荐,因而老本高且不灵便。

(二)自适应 HTAP 资源调度

HTAP 资源调度帮忙数据库均衡工作负载隔离和数据新鲜度之间的衡量。这是通过调整 OLAP 和 OLTP 的执行模式来实现的。OLAP 和 OLTP 工作负载的隔离执行有利于高吞吐量,但数据新鲜度较低。混合工作负载的共享执行有利于高数据新鲜度,但具备很强的工作负载烦扰。

(三)学习型 HTAP 查问优化器

现有办法通过利用老本函数来抉择 HTAP 数据库中行存储和列存储的拜访门路来优化查问。然而,他们做出对立和独立的假如来预计行 / 列大小,而后应用这些预计来掂量行存储和列存储的扫描老本。因为老本预计不精确,这种办法对于相干和歪斜的数据是有问题的。

(四)HTAP 基准套件

有人指出 TPC-H 具备均匀分布,跨列相关性很小,对测试 OLAP 提出了一点挑战。因而,带有 TPC-H 的 HTAP 基准测试应该将带有偏斜的连贯穿插相干关系纳入基准测试。

五、流动举荐

2023 年 4 月 8 日,由中国 DBA 联盟(ACDU)和墨天轮社区联结主办的第十二届『数据技术嘉年华』(DTC 2023) 中的专题论坛 《交融翻新:HTAP 数据技术》 隆重开启。此专题汇聚了腾讯云、亚信科技、石原子科技等中国 HTAP 数据库的优良厂商,一起解读中国 HTAP 数据库的最新观点!

《交融翻新:HTAP 数据技术》专题内容介绍

为了共赏中国数据库的精彩,咱们为大家筹备了数据技术嘉年华早鸟福利:现限量发放 100 张 0 元购票优惠券,凭优惠码 DTC2023 在购票时兑换抵扣,即可 0 元购票(可参照下方操作指南图操作),请大家支付后尽快应用。如有疑问请分割墨天轮小助手(VX:modb666)!

👉购票链接:https://www.modb.pro/dtc2023


点击浏览原文:https://www.modb.pro/db/615248

欲了解更多可浏览墨天轮社区,围绕数据人的学习成长提供一站式的全面服务,打造集新闻资讯、在线问答、流动直播、在线课程、文档阅览、资源下载、常识分享及在线运维为一体的对立平台,继续促成数据畛域的常识流传和技术创新。

关注官网公众号:墨天轮、墨天轮平台、墨天轮成长营、数据库国产化、数据库资讯

退出移动版