数据库基本概念:OLTP/OLAP/HTAP、RPO/RTO、MPP
- OLTP
- OLAP
- HTAP
- 行存储
- 列存储
- MPP
- RTO
- RPO
OLTP
OLTP=Online Transaction Processing=联机事务处理
OLTP 是事件驱动、面向应用的,也称为面向交易的处理过程。其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作的快速响应。例如银行类、电子商务类的交易系统就是典型的 OLTP 系统。
OLTP 具备以下特点:
- 直接面向应用,数据在系统中产生;
- 基于交易的处理系统;
- 每次交易牵涉的数据量很小,对响应时间要求非常高;
- 用户数量非常庞大,其用户是操作人员,并发度很高;
- 数据库的各种操作主要基于索引进行;
- 以 SQL 作为交互载体;
- 总体数据量相对较小。
OLAP
OLAP=Online Analytical Processing=联机实时分析
OLAP 是面向数据分析的,也称为面向信息分析处理过程。它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。其特征是应对海量数据,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果,例如数据仓库是其典型的 OLAP 系统。
OLAP 具备以下特点:
- 本身不产生数据,其基础数据来源于生产系统中的操作数据;
- 基于查询的分析系统;
- 复杂查询经常使用多表联结、全表扫描等,牵涉的数量往往十分庞大;
- 每次查询设计的数据量很大,响应时间与具体查询有很大关系;
- 用户数量相对较小,其用户主要是业务人员与管理人员;
- 由于业务问题不固定,数据库的各种操作不能完全基于索引进行;
- 以 SQL 为主要载体,也支持语言类交互;
- 总体数据量相对较大。
HTAP
HTAP=Hybrid Transaction & Analytical Processing=混合事务和分析处理
HTAP打破 了OLTP 和 OLAP 之间的隔阂,既可以应用于事务型数据库场景,亦可以应用于分析型数据库场景,实现实时业务决策。HTAP 数据库基于分布式架构,支持弹性扩容,可按需扩展吞吐或存储,轻松应对高并发、海量数据场景。
技术要点:
- 底层数据要么只有一份,要么可快速复制,并且同时满足高并发的实时更新;
- 要满足海量数据的容量问题,在存储、计算都具有很好的线性扩展能力;
- 具有很好的优化器,可满足事务类、分析类的语句需求;
- 具备标准的 SQL,并支持诸如二级索引、分区、列式存储、向量化计算等技术。
行存储
Row-based=行存储
在基于行式存储的数据库中,数据是按照行数据为基础逻辑存储单元进行存储的,一行中的数据在存储介质中以连续存储形式存在。传统的关系型数据库,比如甲骨文的 OracleDB 和 MySQL、IBM 的 DB2、微软的 SQL Server 等,一般都是采用行存储。
主要特点:
- 数据是按行存储的;
- 没有索引的查询使用大量I/O;
- 建立索引和物化视图需要花费大量时间和资源;
- 面对查询的需求,数据库必须被大量膨胀才能满足性能需求。
列存储
Column-based=列存储
在基于列式存储的数据库中,数据是按照列为基础逻辑存储单元进行存储的,一列中的数据在存储介质中以连续存储形式存在。
主要特点:
- 每一列数据单独存放;
- 数据即是索引;
- 只访问查询涉及的列,可以大量降低系统I/O;
- 每一列由一个线程来处理,可以实现查询的并发处理;
- 数据类型一致,数据特征相似,可以实现高效压缩。
MPP
MPP=Massively Parallel Processing=大规模并行处理
在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务。非共享数据库集群有完全的可伸缩性、高可用、高性能、优秀的性价比、资源共享等优势。
简单来说,MPP 是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果。
RTO
RTO=Recovery Time Objective=恢复时间目标
业务中断恢复所需要的时间,对应你能够忍受的业务中断时间。
RPO
RPO=Recovery Point Objective=恢复点目标
业务中断恢复到的业务点的时间,对应你能够容忍的数据丢失时间。