TiDB学习教程

一、TiDB优势

TIDB可以无限的扩容,并且可以实时的处理事务和分析(OLTP,OLAP)(OLTP可以处理100%,OLAP可以处理80%,剩下的需要TiDBSpark),可以算是mysql的升级版,并且相对于redis、rocksdb这种kv型数据库,可以更加适配mysql(TIDB也是kv数据库)。

二、架构

分为三个核心模块,包括TiDB server,PD server和TIKV server。还有解决OLAP的TiSpark组件和TiDB Operator组件(云上部署)。

PD是整个集群的管理者,主要存储元数据和负载均衡、分配事务ID(全局唯一)。(管理者)

TIDB接受SQL请求,并且通过元数据找到数据在TIKV具体位置,并且和TiKV交互,将结果返回请求者。(操作者)

TiKV负责存储数据。(存储者)

TIDBSpark 负责解决复杂分析的

三、特性

核心特性为水平扩展和高可用(强一致性,基于Raft的多数派选举协议)。其他还有高度兼容Mysql,可以透明的切换数据库。分布式事务(100%处理)。一站式HTAP解决方案(HTAP:混合事务分析处理)。云原生SQL数据库,可以配合TiDB Operator使用。

水平扩展:

增加计算则添加TiDB,增加存储则添加TiKV。

一致性:

四、存储和计算能力

一般TiKv有三个副本,以region为单位,通过RocksDB存储到硬盘。

五、安装和部署

生产环境要求:

配置不够,是安装不上的。

使用Docker Compose部署

1、单机版

下载

wget http://download.pingcap.org/tidb-latest-linux-amd64.tar.gz

tar -zxvf tidb-latest-linux-amd64.tar.gz

cd tidb-v5.0.1-linux-amd64/

启动pd

./bin/pd-server --data-dir=pd --log-file=pd.log &

启动kv

./bin/tikv-server --pd="127.0.0.1:2379" --data-dir=tikv --log-file=tikv.log &

启动db 三个顺序不能乱

./bin/tidb-server --store=tikv --path="127.0.0.1:2379" --log-file=tidb.log &

直接用mysql就可以连到tidb, -h为ip,-p为端口

sudo apt install mysql-client-core-8.0

mysql -h 127.0.0.1 -P 4000 -uroot

2、集群版

需要安装dockerUbuntu | Docker Docs  Install Compose standalone | Docker Docs

Git  git clone https://github.com/pingcap/tidb-docker-compose.git   

cd tidb-docker-compose

docker-compose pull && docker-compose up -d

网络一直失败心态崩了


六、SQL操作

和mysql一样,跳过

七、整合spark

八、数据迁移

TIDB Lighting主要有两个模块

1.tidb-lighting 前端,用于适配,读取数据源,给数据建表,转换成键值对发送给tikv-importer

2.tikv-importer  后端完成把数据导入kv集群

tar -zxvf XXX

把mysql导出为mydumper格式

-t 代表多少线程,-F表示一个文件多大 -B表示用的数据库 -T表示用的表  --skip-tz-utc 忽略时区设置不一样 -o表示输出位置

存入

九、存储

通过Raft实现

通过region分区,按照范围存储,每一段都是连续的key-value,并且保证一段的大小合适

数据会均匀的分布在各个region,并且以region为单位进行制作副本,其中一个是leader,其他是follower,每个副本会分布在各个机器。

多版本控制MVCC

事务和redis一样是乐观锁

十、计算

需要支持mysql的点查和范围查询。

列名和表结构保存在元数据中,和下面的一样,不过前面加m_前缀

按照表号+行号作为key,

唯一索引数据表id+索引id        value 行id

非索引id        表id+索引id+行id        value为空

使用上面的搜索在筛选和扫描的开销都很大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值