【视点】混合型事务处理

简介:
    在线事务处理一般可分为在线交易事务处理(OLTP)和在线分析事务处理(OLAP),也有叫联机交易处理和联机分析处理。而混合型事务处理(HTAP)则融合了上述两种事务类型,即一个系统同时很好的满足OLTP和OLAP的需求。 
   早在2014年Gartner的报告就明确指出了:“混合型交易/分析事务处理(HTAP)将帮助应用提升场景识别能力,增强业务敏捷性。这将引发由内存计算技术催生的现有架构和IT科技的剧变”。
    电子商务领域就有很多混合型事务处理的例子,比如信用卡消费,既要计算当前消费,又要按T+1统计剩余额度;个性化引擎,既要应对当下行为,又要根据偏差调整推荐算法;物联网事件处理器等等。       

1

    当然作为这样一套系统,首先它需要满足一些非功能的需求,包括每秒10万次以上的并发处理能力;可以与应用同步线性扩展;零网络延时、零数据丢失。在功能性上,它需要支持纯Java技术栈的业务逻辑以及可以接受来自流处理框架([【观察】常用的流式框架(一)-- Storm与Samza](https://yq.aliyun.com/articles/750868?spm=a2c4e.11155435.0.0.409a33129XlKTs);[【观察】常用的流式框架(二)-- Spark与Flink](https://yq.aliyun.com/articles/750869?spm=a2c4e.11155435.0.0.409a33129XlKTs))的消息,并能对其中的状态信息进行快速识别。

2

    上图的模型是最早的OLTP与OLAP并存模型,没有任何的分离处理,直接面临的问题就是中间关系型数据库在承载多分析模块读取数据的同时,源应用程序的写操作会处理不过来。于是企业的数据架构又会在应用与结构化数据库之间加入一层操作性数据库(ODS)。

3

    ODS确实很好的分解了OLTP与OLAP的资源分配,但是首先会带来数据冗余,其次由于ETL转置需要时间,因此数据仓库中的数据距离实时性一定会有不小的差距,进而就导致报表数据的不及时。并且ETL任意环节的故障都会导致数据仓库的失真。
    随着内存计算技术的发展,并且借助多版本并发控制(MVCC)能力,HTAP已经可以将OLTP和OLAP事务放在一个数据库上处理了。

4

    这类数据库市面上的选择还不少,尤以VoltDB,NuoDB和MemSQL为首,程序内置MVCC功能可以对频繁更新的数据记录版本号,以建立缓存序列供OLAP差异化调取。

5

    随着微服务在企业中的普及,不同的微服务可以挂接不同的HTAP数据库以满足多并发更新与读取的需求。当然如果目标微服务没有很大的并发更新量的情况下,多个微服务共享一个HTAP,根据Schema分库分表也不失为企业混合事务处理的有效解决办法。
相关实践学习
数据库实验室挑战任务-初级任务
本场景介绍如何开通属于你的免费云数据库,在RDS-MySQL中完成对学生成绩的详情查询,执行指定类型SQL。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
1月前
|
算法 大数据 数据库
数据库事务:保障数据一致性的基石
数据库事务:保障数据一致性的基石
|
21天前
|
存储 Java 应用服务中间件
【分布式技术专题】「架构实践于案例分析」盘点互联网应用服务中常用分布式事务(刚性事务和柔性事务)的原理和方案
【分布式技术专题】「架构实践于案例分析」盘点互联网应用服务中常用分布式事务(刚性事务和柔性事务)的原理和方案
43 0
|
4月前
|
存储 关系型数据库 数据库
事务处理
事务处理
31 1
|
10月前
|
关系型数据库 MySQL Java
多数据源事务处理-涉及分布式事务
多数据源事务处理-涉及分布式事务
106 0
|
存储 数据采集 运维
一篇文章搞懂数据仓库:总线架构、一致性维度、一致性事实
一篇文章搞懂数据仓库:总线架构、一致性维度、一致性事实
一篇文章搞懂数据仓库:总线架构、一致性维度、一致性事实
|
SQL 消息中间件 供应链
分布式架构设计篇(五)-刚性事务之2PC详解
分布式场景下,多个服务同时对服务一个流程,比如电商下单场景,需要支付服务进行支付、库存服务扣减库存、订单服务进行订单生成、物流服务更新物流信息等。如果某一个服务执行失败,或者网络不通引起的请求丢失,那么整个系统可能出现数据不一致的原因。
348 0
分布式架构设计篇(五)-刚性事务之2PC详解
|
算法
分布式系统常见的事务处理机制
为保障系统的可用性、可靠性以及性能,在分布式系统中,往往会设置数据冗余,即对数据进行复制。举例来说,当一个数据库的副本被破环以后,那么系统只需要转换到其他数据副本就能继续运行下去。
1490 0
|
数据库 关系型数据库 Oracle
[分布式]事务处理的常见方法
处理事务的常见方法有排队法、排他锁、读写锁、MVCC等方式。 排队法         事务处理中最重要也是最简单的方案是排队法,单线程地处理一堆数据。 在Redis中,如果数据全部在内存中,那么单线程处理所有Put、Get操作效率最高。
1242 0
|
Java 数据库 SQL
使用Speedment实现事务处理
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/78631023 使用Speedment实现事务处理 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。
818 0