tidb courses: day1

tidb day1

Posted by cslqm on December 12, 2020

分布式数据库发展史

Old days (20th century)

此时的数据库是传统数据库。 传统数据库的特点:

  • 通过 SQL 语言与数据库软件进行交互
  • 都是单机的存储,需要用户备份数据,防止磁盘损坏
  • OLTP 小事务小查询,数据量不大

产品:PostgreSQL、MySQL、SQL Server

Internet decades (2000s)

中间件

业务量数据量变大了,单机数据库扛不住了。就引入的数据库中间件。用来做分库分表。

产品:ShardingSphere、Vitess

数据仓库

也是数据量变大了,出现了大量数据存储和分析处理的数据仓库。

产品:Hadoop

数据仓库兴起时新出现的 OLAP 数据库

特点:

  • 通过 SQL 语言和其交互
  • 多机存储,分布式
  • 按列存储
  • OLAP

NoSQL

特点:

  • 使用 key-value API
  • 没有关系,没有模型,没有事务
  • 高可用
  • 扩展性
  • 多机存储,分布式

产品:mongoDB,cassandra

NewSQL(2010s)

特点:

  • 通过 SQL 语言和其交互
  • 扩展性
  • 多机存储,分布式
  • 支持 ACID

产品:Cloud Spanner

HTAP(2010s)

特点:

  • 支持 OLTP 请求
  • 支持 OLAP 请求

TiDB

特点:

  • 通过 SQL 语言和其交互
  • 支持 OLTP 和 OLAP
  • 多机存储,分布式
  • 高可用
  • 扩展性

HTAP 数据库简介

什么是 HTAP

简单来说,就是混合 OLTP 和 OLAP。

OLTP(On-Line Transaction Processing) 联机事务处理过程。

特点:

  • 行储存,实时更新
  • 高并发,数据一致性,每次访问只触及到小部分行
  • 存储当前数据

OLAP(On-Line Analytical Processing) 联机分析处理。

特点:

  • 列存储,批量更新数据
  • 低并发,每次查询触及和处理大批量数据
  • 历史数据

为何需要 HTAP

TP 和 AP 的界限模糊。

像 TP 的 AP:综合性查询平台,需要支持报表查询和高并发短查询。 像 AP 的 TP:对在线数据支持实时的分析;实时分析不同业务线汇聚的数据。

HTAP 架构简单,运维成本低,支持实时查询和实时分析。

技术实现上的难点

可扩展性

AP 支持容易,TP 难度大。

TP/AP 同时存储

需要支持两种存储格式 避免一中工作量增多对另一种干扰(毕竟是跑在一起用的都是同样的计算资源)

两种工作需要整合

数据实时同步 数据保存新鲜

TiDB 的 HTAP 特性

  • 可扩展
  • 经历过交易场景的验证
  • 具备分析引擎的能力

TiDB 4.0 新增

  • 实时更新列存储引擎
  • 行存和列存用不同的机器,没有干扰;行存(TiKV)到列存(TiFlash)能做到一致性的复制
  • 列存有向量化的引擎
  • 优化器可以智能决定使用行存和列存