目录

OLTP(Online Transaction Processing)联机事务处理

OLAP(Online Analytical Processing)联机分析处理

非实时OLAP

实时OLAP

HTAP(Hybrid Transactional/Analytical Processing)

OLAP 和 OLTP 数据库该怎么选

紧贴核心业务需求

场景举例


在互联网高速发展的今天,大量数据的复杂分析和高并发事务处理不可兼得,不同场景对各自需求的性能要求使得数据库的处理模式被分为两类,OLTP和OLAP,后来还衍生了两者兼顾的HTAP。

OLTP(Online Transaction Processing)联机事务处理

这指的是我们最熟悉的处理模式,也就是绝大多数的实时CRUD的数据库应用场景。

特点:高并发短事务、快速响应、强一致性
典型场景:订单创建、支付交易、账户余额变更
代表数据库:MySQL、Oracle、PostgreSQL

在OLTP方面,除了大家熟知的关系型数据库意外,云原生的发展也出现一些性能更强大的数据库产品,例如阿里云的 PolarDB,华为云的 GaussDB,这些产品相比MySQL具体更高的TPS和QPS性能,又能很好的兼容MySQL协议。

OLAP(Online Analytical Processing)联机分析处理

与OLTP不同,OLAP模式主要注重数据查询分析,可以说是专门为分析而生的架构。 

特点:低并发(几百或几十QPS)批量处理、复杂查询、列式存储
典型场景:销售报表、用户行为分析、BI看板
代表数据库:ClickHouse、Apache Doris,selectDB、Greenplum

OLAP从时效上来讲又分为实时OLAP和非实时OLAP(批量OLAP)两类,两者的技术实现和适用场景有显著差异。

  • 非实时OLAP

数据延迟:小时级或天级
代表技术:Hive + Presto,Oracle Exadata
适用场景:财务报表月结,年度销售趋势分析等决策分析场景

  • 实时OLAP

数据延迟:秒级或分钟级,通过CDC(Change Data Capture)数据同步实现
代表技术:Apache Doris,selectDB,ClickHouse
适用场景:运营大屏,物流轨迹实时追踪等近实时查询场景

HTAP(Hybrid Transactional/Analytical Processing)

这种架构同时支持在线事务处理与在线分析处理,但俗话说鱼与熊掌不可兼得,这种架构虽然兼容两种场景,但也是两方面平衡后的选择。

特点:事务处理+分析查询一体化,主打一站式服务
典型场景:需要实时分析的交易系统
代表数据库:TiDB 

OLAP 和 OLTP 数据库该怎么选

紧贴核心业务需求

如果你的业务需要的是高并发,稳定,延迟小的处理数据的CRUD,例如订单交易场景,那OLTP系统就是你的首选。   如果你的业务场景是从千万上亿的数据中查询,分析,统计相关的指标,为决策提供参考,那OLAP更适合你的场景。

那即使是在OLTP方面,市面上的数据库产品多种多样,具体选哪个也需要根据你业务数据的特点来决定。总之,在系统建设过程中,应该综合考虑选用当下最合适的方案。

场景举例

场景1:B端的交易业务库用的是MySQL,由于数据增速不快累计增量也少,业务库可以使用定期归档的方式来维持。但是两年后归档的数据量也非常大了,在一些历史数据查询分析场景MySQL已经不能支撑了,需要考虑新的数据源选型。
基于方案切换成本考虑,最终选用了实时OLAP的数据库selectDB,通过把业务库数据通过CDC同步到selectDB,基于selectDB来支持大数据量下的复杂查询功能。

场景2:营销活动业务库用的是MySQL,数据增量少但是查询更新量较大,对tps要求较高,在做了异步写入优化和升级MySQL配置等方案后,还是会出现抖动的情况。
针对这个场景,问题点主要在tps上,经过了解后在GaussDB 和 PolarDB两款云原生数据库产品中选了一个,同OLTP模式下这两个相比MySQL在tps和qps性能上都有较大的提升。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【前端】CSS Flexbox布局示例介绍

CSS Flexbox(弹性盒子)简介 Flexbox 是一种一维布局模型,用于高效处理元素在容器内的空间分配、对齐和排序。它通过父容器(flex container)和子元素(flex items)的配合实现灵活响应式布局。核心…

Vue3核心语法基础

一、为什么要学 Composition API?在以前我们写代码用Vue2写:export default {data() {return { count: 0, msg: hello }},methods: {add() { this.count }},computed: {double() { return this.count * 2 }} }很明显 一个功能被拆成三块:data…

FSMC的配置和应用

一、FSMC 简介与工作原理FSMC(Flexible Static Memory Controller)是 STM32 微控制器中用于与外部静态存储器(如 SRAM、PSRAM、NOR Flash、LCD 等)进行通信的一个外设模块。1、支持的设备类型:SRAM / PSRAMNOR FlashNA…

Linux I/O 系统调用完整对比分析

Linux I/O 系统调用完整对比分析 1. 概述 Linux 提供了丰富的 I/O 系统调用&#xff0c;每种都有其特定的用途和优势。本文将详细分析这些系统调用的特点、使用场景和性能特征。 2. 系统调用详细对比 2.1 基本读写函数 pread/pwrite #include <unistd.h>// 位置指定…

TiDB集群部署

架构&#xff1a; tidb–3台&#xff0c;pd–3台&#xff0c;tikv–3台 8c16g200g 1x2.2x.2x7.124 1x2.2x.2x7.148 1x2.2x.2x7.87 1x2.2x.2x7.93 1x2.2x.2x7.127 1x2.2x.2x7.104 pd-3台 4c8g100g 1x2.2x.2x7.143 1x2.2x.2x7.132 1x2.2x.2x7.91 1、下载安装包 #注&#xff1a;我…

C#中对于List的多种排序方式

在 C# 中给 List<AI> 排序&#xff0c;只要 明确排序规则&#xff08;比如按某个字段、某几个字段、或外部规则&#xff09;&#xff0c;就能用下面几种常见写法。下面全部基于这个示例类&#xff1a;public class AI {public int country; // 国家编号public int pr…

Spring框架中Bean的生命周期:源码解析与最佳实践

第1章&#xff1a;Spring Bean生命周期概述1.1 什么是Spring Bean生命周期&#xff1f;定义&#xff1a;Spring Bean生命周期是指从Bean的创建、初始化、使用到销毁的完整过程&#xff0c;由Spring容器严格管理 。核心思想是Spring容器通过IoC&#xff08;控制反转&#xff09;…

【51单片机6位数码管密码锁】2022-10-15

缘由六位密码器设计连接LED-嵌入式-CSDN问答 矩阵51单片机密码锁,回复:https://bbs.csdn.net/topics/392713242_智者知已应修善业的博客-CSDN博客 #include "REG52.h" unsigned char code smgduan[]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x…

‌我的第一个开源项目:跃动的心

还是一个编程初学者时&#xff0c;我怀着激动的心情完成了人生第一个开源项目——一个用HTML5 Canvas制作的动态跳动爱心效果。这个项目虽然简单&#xff0c;却让我深刻体会到了开源分享的快乐和技术创造的魅力。 壹、项目灵感 这个项目的灵感来源于浏览网页时&#xff0c;被各…

技术演进中的开发沉思-53 DELPHI VCL系列:windows的消息(下):TApplication窗体

今天我们梳理下关于TApplication的窗体消息下半部分的内容。前面也说过&#xff0c;在 Delphi 的世界里&#xff0c;TApplication 就像一位经验丰富的总工程师&#xff0c;而主窗体则是它倾注心血打造的核心建筑。如果你第一次在实验室里敲出 Delphi 代码时&#xff0c;屏幕上弹…

cesium FBO(四)自定义相机渲染到Canvas(离屏渲染)

前面几节的例子是将Cesium默认的相机渲染到纹理&#xff08;RTT&#xff09;或Canvas&#xff0c;这片文章讲解如何将自定义的一个camera的画面渲染到Canvas上&#xff0c;有了前面几篇的基础了&#xff0c;也能将自定义的画面渲染纹理、也可以灰度处理&#xff0c;原理是一样的…

双机并联无功环流抑制虚拟阻抗VSG控制【simulink仿真模型实现】

双机并联虚拟同步发电机&#xff08;VSG&#xff09;系统中&#xff0c;因线路阻抗不匹配及参数差异&#xff0c;易引发无功环流。本方案在传统VSG控制基础上&#xff0c;引入自适应虚拟阻抗环节。其核心在于&#xff1a;实时检测两机间无功环流分量&#xff0c;据此动态调节各…

python测试总结

测试题的基础知识点总结 1.循环求和 for循环步长&#xff08;range(2,101,2)&#xff09; while循环条件判断&#xff08;i%20&#xff09; 生成器表达式&#xff08;sum(i for i in range )&#xff09; 所以&#xff1a;sum(range(1,101,2))&#xff08;奇数和&#xff09;和…

识别和分类恶意软件样本的工具YARA

YARA 是一个用于识别和分类恶意软件样本的工具,广泛应用于恶意软件分析、威胁情报、入侵检测等领域。它通过编写规则(YARA Rules)来匹配文件中的特定字符串、十六进制模式、正则表达式等特征。 一、YARA 的基本使用方法 1. 安装 YARA Linux(Ubuntu/Debian) sudo apt-ge…

GaussDB 约束的语法

1 约束的作用约束是作用于数据表中列上的规则&#xff0c;用于限制表中数据的类型。约束的存在保证了数据库中数据的精确性和可靠性。约束有列级和表级之分&#xff0c;列级约束作用于单一的列&#xff0c;而表级约束作用于整张数据表。下面是 GaussDB SQL 中常用的约束。NOT …

SecurityContextHolder 管理安全上下文的核心组件详解

SecurityContextHolder 管理安全上下文的核心组件详解在 Spring Security 中&#xff0c;SecurityContextHolder 是​​安全上下文&#xff08;Security Context&#xff09;的核心存储容器​​&#xff0c;其核心作用是​​在当前线程中保存当前用户的认证信息&#xff08;如用…

c++详解系列(引用指针)

目录 1.什么是引用 2.引用的定义 3.引用的特性 4.引用的使用 4.1引用传参 4.2传引用返回 5.const引用&#xff08;在引用的定义前用const修饰&#xff09; 5.1对于引用 5.2对于指针 6.引用&指针 总结 1.什么是引用 引用就是给变量起别名&#xff0c;一个变量可以…

深度学习loss总结(二)

对于目前深度学习主流任务学习,loss的设置至关重要。下面就不同任务的loss设置进行如下总结: (1)目标检测 2D/3D目标检测中的 Loss(损失函数)是训练模型时优化目标的核心,通常包括位置、类别、尺寸、方向等多个方面。以下是目前 常见的 2D 和 3D 目标检测 Loss 分类与…

【Linux网络】netstat 的 -anptu 各个参数各自表示什么意思?

netstat 是一个网络统计工具&#xff0c;它可以显示网络连接、路由表、接口统计、伪装连接和多播成员资格。在 netstat 命令中&#xff0c;不同的参数可以用来定制输出的内容。 你提到的 -anptu 参数组合各自的功能如下&#xff1a; -a (all): 显示所有活动的连接和监听端口。它…

[硬件电路-115]:模拟电路 - 信号处理电路 - 功能放大器工作分类、工作原理、常见芯片

功能放大器是以特定功能为核心的集成化放大电路&#xff0c;通过将运算放大器与外围电阻、电容等元件集成在单一芯片中&#xff0c;实现标准化、高性能的信号放大功能。其核心优势在于简化设计流程、提升系统稳定性&#xff0c;并针对特定应用场景优化性能参数。以下从定义、分…