[学习笔记] TiDB学习笔记(三)

2022-01-02 14:16:50 浏览数 (1)

本文是《极客时间》-《TiDb极简入门》的学习笔记。传送门:https://time.geekbang.org/opencourse/videointro/100089601


TiDB的HTAP之路

HTAP(Hybrid Transaction and Analytical Process,混合事务和分析处理)

同时支持OLTP 和OLAP,支持实时分析。

OLTP(在线交易): 关注高并发,低延迟

OLAP(在线分析): 更关注吞吐量

1. 分布式数据库式在大数据规模下提供HTAP的基础

2. TiDB-serer最大程序下推算法与Hash/Join关键算子提供了基础的AP能力

TiDB可以比喻成一个大号的Mysql, 最早TiDB是为了解决在线业务的分库分表问题,由于以下特性:

1. 海量存储允许多数据源汇聚,数据实时同步

2.支持标准sql,多表关联快速出结果

3.同名多业务模块,支持分表聚合后可以任务纬度查询

4.TiDB最大下推机制,以及并行hash join等算子,决定的TiDb在表关联上的优势

这些特性很适合数据中台的一些业务,被意外应用于数据中台,提供了一些基础的AP能力

3. 借助生态,让spark跑在Tikv上

但是TiDB的最初定位是面向OLTP的系统,针对OLAP,很容易造成OOM,所以引入了spark,分装为Ti-spark,缓解了数据中台算力的问题。但spark只能提供低并发的重量级查询,中小规模的AP查询会导致资源消耗高。

4.行列混合引擎,列式引擎提供实时写入能力

这时候OLTP的查询和TIspark用的同一套底层存储TiKv,OLTP和OLAP的资源在软件层面上很难实现隔离

物理隔离是最好的资源隔离

列存天然对OLAP查询友好,列式存储对批量写入友好,对实时更新不友好。借鉴了LSM的思想,在列式引擎上引入了delta tree的方法,最终实现了一个支持准实时更新的列式引擎:Ti-flash(用于OLAP数据副本).

5.行列引擎采取raft-base replication,解决了数据同步效率

如何将副本同步到列式引擎?

Ti-Flash以Raft Learner的方式接入Multi-Raft组,使用异步方式传输数据,对Tikv产生非常小的负担,当数据同步到Ti-flash, 会被从行格式拆解为列格式。

6.TiDB-servert统一技术服务

7.Mpp解决计算节点的扩展与并行计算

OLAP的场景里,经常会出现大表关联,之前的架构中join是无法下推的,引入了MPP计算框架

TiDB关键技术创新

1. 自动分片技术式更细维度弹性的基础

2. 弹性的分片构成了动态的系统

3. multi-raft将复制组更离散

4.基于multi-raft实现写入的线性扩展

5.基于multi-raft实现跨IDC单表多节点写入

6.去中心化的分布式事务

7. Local Read and Geo-partition

8.更大数据容量下的TP和AP融合

9.数据服务的统一

TiDB典型应用场景及用户案例

1. OLTP Scale

2. Real-Time HTAP

0 人点赞