TIDB-TIDB入门

简介

  • TIDB文档
  • TiDB 是一个的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库,结合传统的RDBMS和NoSQL的特性。TiDB兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用性。TiDB 的目标是为OLTP和OLAP 提供一站式的解决方案。
  • 特性
    • 高度兼容 MySQL
    • 水平弹性扩展
    • 分布式事务
    • 真正金融级高可用
    • 一站式 HTAP 解决方案
    • 云原生 SQL 数据库

整体架构

  • TiDB 集群主要包括三个核心组件:
    • TiDB Server
      • 接收SQL请求,处理SQL相关的逻辑,并通过PD找到存储计算所需数据的 TiKV地址,与TiKV交互获取数据,返回最终结果。TiDB Server 是无状态的,其本身并不存储数据,只负责计算,可以无限水平扩展,可以通过负载均衡组件(如LVS、HAProxy 或 F5)对外提供统一的接入地址
    • PD Server(Placement Driver,简称 PD)
      • 集群的管理模块,主要工作:
        • 存储集群的元信息(某个Key存储在哪个TiKV节点)
        • 对TiKV集群进行调度和负载均衡(如数据迁移、Raft group leader迁移等)
        • 分配全局唯一且递增的事务ID
      • 通过Raft协议保证数据的安全性
      • Raft的leader server负责处理所有操作,其余的PD server用于保证高可用
      • 建议部署奇数个PD节点
    • TiKV Server
      • 存储数据,一个分布式的提供事务的 Key-Value 存储引擎
      • 存储数据的基本单位是Region,每个Region负责存储一个Key Range(从 StartKey到EndKey的左闭右开区间)的数据,每个TiKV节点会负责多个Region
      • TiKV使用Raft协议做复制,保持数据的一致性和容灾
      • 副本以Region为单位进行管理,不同节点上的多个Region构成一个Raft Group,互为副本
      • 数据在多个TiKV之间的负载均衡由PD以Region为单位进行调度
  • TiSpark:解决用户复杂OLAP需求的组件
    • 解决用户复杂OLAP需求的主要组件,将Spark SQL直接运行在TiDB存储层,同时融合TiKV分布式集群的优势,并融入大数据社区生态
      TIDB架构图

使用Docker Compose快速构建TiDB集群

  • 安装依赖
# **安装docker
sudo apt-get install docker
# **安装docker Compose
sudo apt-get install docker-compose
# **安装git
sudo apt-get install git
  • 安装TIDB
# **下载tidb-docker-compose
git clone https://github.com/pingcap/tidb-docker-compose.git
# **创建并启动集群
cd tidb-docker-compose
sudo docker-compose pull
sudo docker-compose up -d
# **访问集群
mysql -h 127.0.0.1 -P 4000 -u root
# **使用navicat客户端连接
IP: 127.0.0.1
port:4000
用户名:root
密码: 空
# **修改密码
SET PASSWORD FOR 'root'@'%' = '123456';

历史数据

  • 说明
    • TiDB数据被更新、删除后,依然可以读取更新/删除前的数据
    • 在更新数据之后,表结构发生了变化,TiDB依旧能用旧的表结构读取数据
  • 使用
    • system variable: tidb_snapshot,Session范围有效,可以通过Set 语句修改。值为文本,能够存储TSO和日期时间
    • tidb_snapshot被设置时,会用这个时间戳建立Snapshot,随后所有的Select 操作都会在这个Snapshot上读取数据
    • 通过结束Session或者设置tidb_snapshot="",读取最新版本的数据
  • 历史数据保留策略
    • TiDB使用MVCC管理版本,当更新/删除数据时,不会真正的删除数据,而是添加一个新版本数据,所以可以保留历史数据
    • 历史数据不会全部保留,超过一定时间的历史数据会被彻底删除,以减小空间占用以及避免历史版本过多引入的性能开销
    • 使用周期性运行的GC来进行清理
    • tikv_gc_life_time:配置历史版本保留时间
    • tikv_gc_safe_point:记录当前的safePoint
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值