聊聊 HTAP 的前世今生

news2025/7/6 2:28:00

随着现代社会大型实时分析应用的逐渐流行,关系型数据库已经难以处理高并发的事务请求。商业层面上,当全球进入数字化时代,数字化技术渗透到各行各业,同时产生了海量数据,数据的存储和应用是企业决策的重要依据之一,业务需要实时根据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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/367204.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计网数据链路层

第二层:数据链路层 数据链路层传输单位为帧 数据链路层三大问题:封装成帧,差错检测,可靠传输 两个协议: 共享式以太网的媒体接入控制协议CSMA/CD 802.11局域网的媒体接入控制协议CSMA/CA 在封装成帧的问题中,数据链路层…

100种思维模型之诺依曼思维模型-019

生活中,难免总会遇到一些“大”、“笼统”、“难入手”的问题! 如,前几天突然接到领导安排,帮忙梳理一个材料“***景区创建5A级旅游景区提升规划”。 对于一个没有学过景区提升规划、没有做过规划的我来说,真的挺难的…

Mysql 索引(三)—— 不同索引的创建方式(主键索引、普通索引、唯一键索引)

了解了主键索引的底层原理,主键索引其实就是根据主键字段建立相关的数据结构(B树),此后在使用主键字段作为条件查询时,会直接根据主键查找B树的叶子结点。除了主键索引外,普通索引和唯一键索引也是如此&…

URP渲染管线光照机制剖析

上一节通过剖析URP 摄像机了解摄像机的机制,本节来分析URP的光照的主要机制,并通过与内置的向前渲染管线做对比,来比较它们的与不同。 对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些…

[机器学习]XGBoost---增量学习多阶段任务学习

一 说明当我们的训练数据非常多,并且还在不断增加时,每次都用全量训练,数据过多,时间过长,此时就可以使用增量训练:用新增的数据微调校正模型。二 全量与增量的差异在使用增量训练时,最关心的问…

矩阵通高效监管企业新媒体矩阵,账号集中管理与运营数据分析

越来越多的企业在全网布局旗下账号,希望通过社媒传播矩阵,以内容连接产品与用户,达成增加销售线索或扩大品牌声量的目的。构建矩阵的优势在于,内容能多元发展,聚集不同平台流量;多种营销渠道自主掌控&#…

高并发系统设计之限流

本文已收录至Github,推荐阅读 👉 Java随想录 文章目录限流算法计数器算法滑动窗口漏桶算法令牌桶算法限流算法实现Guava RateLimiter实现限流令牌预分配预热限流Nginx 限流limit_connlimit_req黑白名单限流这篇文章来讲讲限流,在高并发系统中…

【包装工单批次编号不存在】和【MES没有样品单报工数据】

包装工单批次编号不存在 今天在做数据的时候,发现一个诡异的问题,有几个包装工单明细里没有批次编号。 我问了下假捻的同事,他们说很奇怪,有的时候有,有的时候没有。 我又咨询了供应商,供应商说不可能没有,批次编号的业务逻辑是通过物料编码+区分号+等级+包装方式 4个…

多模态机器学习入门——文献阅读(一)Multimodal Machine Learning: A Survey and Taxonomy

文章目录说明论文阅读AbstractIntroductionIntroduction总结Applications:A Historical Perspective补充与总结3 MULTIMODAL REPRESENTATIONS总结Joint Repersentations(1)总结和附加(一)Joint Repersentations(2)总结…

问题总结:Map存入的数据丢失类型任意

发现问题&#xff1a;Map存入的数据丢失类型 经常会使用 Map<String&#xff0c;Object> 来用于存储键值对的数据&#xff0c;由于我们使用 Object 类型来接收数字&#xff0c;但是有些时候会出现map并不知道我们传入的是 Long 还是 Integer 。也就是出现数据类型丢失的…

变分推断 | MATLAB实现VBMC变分贝叶斯蒙特卡洛模拟的贝叶斯推断

变分推断 | MATLAB实现变分贝叶斯蒙特卡洛模拟的贝叶斯推断 目录 变分推断 | MATLAB实现变分贝叶斯蒙特卡洛模拟的贝叶斯推断效果一览基本介绍研究内容模型描述模型设计参考资料效果一览 基本介绍 MATLAB实现变分贝叶斯蒙特卡洛模拟的贝叶斯推断。变分贝叶斯蒙特卡洛(VBMC)是…

6年测试经验老鸟:做不好自动化测试,还谈什么高薪?

提起自动化测试&#xff0c;可谓仁者见人&#xff0c;智者见智&#xff0c;心中五味杂陈啊&#xff01;你从任何一个招聘渠道来看最近两年对测试岗位的要求&#xff0c;几乎都要求会自动化测试。而不少人一直认为手工测试才是王道&#xff0c;工作中有的时候也用不到程序&#…

摆烂三年,我从普通二本到春招华为OD上岸啦

萌妹镇楼 年前拿到的意向书 答读者问 薪资情况 定级D2,13K2K,两个月年终奖&#xff0c;周六加班双倍工资&#xff0c;下个月发。每年一次加薪&#xff0c;OD转华为一次加薪。 加班强度 124晚9点&#xff0c;35晚6点&#xff0c;项目紧急的话&#xff0c;周六会安排加班 转…

依赖倒转原则和里氏代换原则详解

初学依赖倒转原则和里氏代换原则时&#xff0c;由于笔者水平有限&#xff0c;并没有看懂书上的专业术语的解释&#xff0c;经过反复摸索和学习&#xff0c;发现里氏代换原则和依赖倒转原则可以一言以蔽之&#xff1a; 里氏代换原则&#xff1a;开发时以抽象为核心&#xff0c;…

CMake常用指令

CMake常用指令一、前言二、基本指令2.1、ADD_DEFINITIONS2.&#xff12;、ADD_DEPENDENCIES2.3、ADD_TEST 与ENABLE_TESTING 指令。2.4、AUX_SOURCE_DIRECTORY2.5、CMAKE_MINIMUM_REQUIRED2.6、EXEC_PROGRAM2.7、FILE 指令2.8、INCLUDE 指令2.9、其他指令三、FIND_系列指令四、…

云计算 概念与技术

如果我倡导的计算机在未来得到使用&#xff0c;那么有一天&#xff0c;计算也可能像电话一样成为共用设施。计算机应用将成为一全新的、重要的产业的基础。 ——John McCarthy 云计算的概念 定义 Garther公司的定义 一种计算方式&#xff0c;能通过Internet技术将可扩展的和…

内核模块调试常用命令整理

一、 模块加载 1.1 最简单的一个驱动 static int __init my_driver_init( void ) {printk("init my_driver\n");return 0; }static void __exit my_driver_exit( void ) {printk("exit my_driver\n"); }module_init( my_driver_init ); module_exit( my_…

Xamarin.Forsm for Android 显示 PDF

背景 某些情况下&#xff0c;需要让用户阅读下发的文件&#xff0c;特别是红头文件&#xff0c;这些文件一般都是使用PDF格式下发&#xff0c;这种文件有很重要的一点就是不能更改。这时候就需要使用原文件进行展示。 Xamarin.Forms Android 中的 WebView 控件是不能直接显示的…

R统计绘图-NMDS、环境因子拟合(线性和非线性)、多元统计(adonis2和ANOSIM)及绘图(双因素自定义图例)

这个推文也在电脑里待了快一年了&#xff0c;拖延症患者&#xff0c;今天终于把它发出来了。NMDS分析过程已经R统计-PCA/PCoA/db-RDA/NMDS/CA/CCA/DCA等排序分析教程中写过了。最近又重新看了《Numerical Ecology with R》一书,巩固一下知识&#xff0c;正好重新整理了一下发出…

火山引擎推出一站式小程序监控方案

背景 小程序作为轻量级的应用发展迅速&#xff0c;国内已有多家小程序厂商相继推出。为了洞察用户真实体验及程序自身运行状况&#xff0c;监控已成为开发套件中必不可少的一环。随着业务愈来愈复杂&#xff0c;各厂商小程序管理后台免费提供的监控能力逐渐满足不了大部分业务…