本文是《极客时间》-《TiDb极简入门》的学习笔记。传送门:https://time.geekbang.org/opencourse/videointro/100089601
HTAP(Hybrid Transaction and Analytical Process,混合事务和分析处理)
同时支持OLTP 和OLAP,支持实时分析。
OLTP(在线交易): 关注高并发,低延迟
OLAP(在线分析): 更关注吞吐量
TiDB可以比喻成一个大号的Mysql, 最早TiDB是为了解决在线业务的分库分表问题,由于以下特性:
1. 海量存储允许多数据源汇聚,数据实时同步
2.支持标准sql,多表关联快速出结果
3.同名多业务模块,支持分表聚合后可以任务纬度查询
4.TiDB最大下推机制,以及并行hash join等算子,决定的TiDb在表关联上的优势
这些特性很适合数据中台的一些业务,被意外应用于数据中台,提供了一些基础的AP能力
但是TiDB的最初定位是面向OLTP的系统,针对OLAP,很容易造成OOM,所以引入了spark,分装为Ti-spark,缓解了数据中台算力的问题。但spark只能提供低并发的重量级查询,中小规模的AP查询会导致资源消耗高。
这时候OLTP的查询和TIspark用的同一套底层存储TiKv,OLTP和OLAP的资源在软件层面上很难实现隔离
物理隔离是最好的资源隔离
列存天然对OLAP查询友好,列式存储对批量写入友好,对实时更新不友好。借鉴了LSM的思想,在列式引擎上引入了delta tree的方法,最终实现了一个支持准实时更新的列式引擎:Ti-flash(用于OLAP数据副本).
如何将副本同步到列式引擎?
Ti-Flash以Raft Learner的方式接入Multi-Raft组,使用异步方式传输数据,对Tikv产生非常小的负担,当数据同步到Ti-flash, 会被从行格式拆解为列格式。
OLAP的场景里,经常会出现大表关联,之前的架构中join是无法下推的,引入了MPP计算框架
1. 自动分片技术式更细维度弹性的基础
2. 弹性的分片构成了动态的系统
3. multi-raft将复制组更离散
4.基于multi-raft实现写入的线性扩展
5.基于multi-raft实现跨IDC单表多节点写入
6.去中心化的分布式事务
7. Local Read and Geo-partition
8.更大数据容量下的TP和AP融合
9.数据服务的统一
1. OLTP Scale
2. Real-Time HTAP
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。