数据库
首页 > 数据库> > 小试国产开源HTAP分布式NewSQL数据库TiDB-v5.3.0

小试国产开源HTAP分布式NewSQL数据库TiDB-v5.3.0

作者:互联网

概述

定义

TiDB官网 https://pingcap.com/zh/ 最新版本为5.3.0

TiDB GitHub源码 https://github.com/pingcap/tidb

TiDB是由国内PingCAP公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP,混合事务和分析处理,在同一个数据库系统同时支持OLTP和OLAP) 的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等重要特性,迁移便捷,运维成本极低。

目前国产分布式数据库排名前三数据库有TiDB、OceanBase、PolarDB-X;OceanBase为蚂蚁集团完全自主研发,诞生较久早在2010年就开始建设;PolarDB-X则为阿里巴巴自主研发的云原生分布式数据库。TiDB是采用Go语言编写,越来越多开源项目选择Go,TiDB目标是为用户提供一站式 OLTP (Online Transactional Processing-在线事务处理)、OLAP (Online Analytical Processing-在线数据分析)、HTAP 解决方案。TiDB官方提供社区版(开源)和企业版(付费)。

与传统单机数据库对比优势

官方工具

核心特性

产品特点

应用场景

部署

部署规划

单台 Linux 服务器, TiDB最小规模的 TiDB 集群拓扑,模拟生产环境下的部署步骤。

实例个数IP配置
TiKV3192.168.50.95、192.168.50.95、192.168.50.95避免端口和目录冲突
TiDB1192.168.50.95默认端口 全局目录配置
PD1192.168.50.95默认端口 全局目录配置
TiFlash1192.168.50.95默认端口 全局目录配置
Monitor1192.168.50.95默认端口 全局目录配置

单机部署集群

# 下载并安装 TiUP
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
# 声明全局环境变量,本人使用的是root安装
source /root/.bash_profile
# 安装 TiUP 的 cluster 组件
tiup cluster
# 由于模拟多机部署,需要通过 root 用户调大 sshd 服务的连接数限制,修改 /etc/ssh/sshd_config 将 MaxSessions 调至 20。重启 sshd 服务
service sshd restart
# 创建启动集群的yaml配置文件,内容如下
vi topo.yaml
global:
 user: "tidb"
 ssh_port: 22
 deploy_dir: "/tidb-deploy"
 data_dir: "/tidb-data"

# # Monitored variables are applied to all the machines.
monitored:
 node_exporter_port: 9100
 blackbox_exporter_port: 9115

server_configs:
 tidb:
   log.slow-threshold: 300
 tikv:
   readpool.storage.use-unified-pool: false
   readpool.coprocessor.use-unified-pool: true
 pd:
   replication.enable-placement-rules: true
   replication.location-labels: ["host"]
 tiflash:
   logger.level: "info"

pd_servers:
 - host: 192.168.50.95

tidb_servers:
 - host: 192.168.50.95

tikv_servers:
 - host: 192.168.50.95
   port: 20160
   status_port: 20180
   config:
     server.labels: { host: "tikv-host-1" }

 - host: 192.168.50.95
   port: 20161
   status_port: 20181
   config:
     server.labels: { host: "tikv-host-2" }

 - host: 192.168.50.95
   port: 20162
   status_port: 20182
   config:
     server.labels: { host: "tikv-host-3" }

tiflash_servers:
 - host: 192.168.50.95

monitoring_servers:
 - host: 192.168.50.95

grafana_servers:
 - host: 192.168.50.95

保存内容后下面进行正式部署和启动

# 执行集群部署命令,集群的名称和我们配置文件一致tidb-cluster,集群版本可以通过 tiup list tidb 命令来查看当前支持部署的 TiDB 版本
tiup cluster deploy tidb-cluster v5.3.0 ./topo.yaml --user root -p
# 执行上面的命令出现下面的提示后按照引导,输入”y”及 root 密码,来完成部署

image-20211225180219626

# 启动集群:
tiup cluster start tidb-cluster
#查看当前已经部署的集群列表
tiup cluster list
# 查看集群的拓扑结构和状态
tiup cluster display tidb-cluster

image-20211225182548773

# 由于我本机已安装mysql,所以可以直接运行mysql客户端,访问 TiDB 数据库,密码为空
mysql -h 192.168.50.95 -P 4000 -u root

image-20211225181723827

访问TiDB的Grafana监控监控页面,默认用户名和密码均为admin, http://192.168.50.95:3000
访问TiDB集群Dashboard监控页面, 默认用户名为root,密码为空,http://192.168.50.95:2379/dashboard

image-20211225184951040

体验HTAP

基本概念

体验

# 启动 TiDB 集群
tiup playground
# 使用以下命令安装数据生成工具
tiup install bench
# 使用以下命令生成数据,当命令行输出Finished时,表示数据生成完毕。
tiup bench tpch --sf=1 prepare

适用场景

TiDB HATP 可以满足企业海量数据的增产需求、降低运维的风险成本、与现有的大数据栈无缝结合,从而实现数据资产价值的实时变现,以下是三种 HTAP 典型适用场景:

架构

总体架构

image-20211225195741729

image-20211225200755421

计算

image-20211225213130534

调度

PD (Placement Driver) 是 TiDB 集群的管理模块,同时也负责集群数据的实时调度。本文档介绍一下 PD 的设计思想和关键概念。

第一类:作为一个分布式高可用存储系统,必须满足的需求,包括几种

第二类:作为一个良好的分布式系统,需要考虑的地方包括

满足上面需求首先需要收集足够的信息,比如每个节点的状态、每个 Raft Group 的信息、业务访问操作的统计等;其次需要设置一些策略,PD 根据这些信息以及调度的策略,制定出尽量满足前面所述需求的调度计划;最后需要一些基本的操作,来完成调度计划。

调度依赖于整个集群信息的收集,简单来说,调度需要知道每个 TiKV 节点的状态以及每个 Region 的状态。TiKV 集群会向 PD 汇报两类消息,TiKV 节点信息和 Region 信息。

存储引擎

TiKV

TiKV 是一个分布式事务型的键值数据库,提供了满足 ACID 约束的分布式事务接口,并且通过Raft协议保证了多副本数据一致性以及高可用。TiKV 作为 TiDB 的存储层,为用户写入 TiDB 的数据提供了持久化以及读写服务,同时还存储了 TiDB 的统计信息数据。

TiFlash

TiFlash 是 TiDB HTAP 形态的关键组件,它是 TiKV 的列存扩展,在提供了良好的隔离性的同时,也兼顾了强一致性。列存副本通过 Raft Learner 协议异步复制,但是在读取的时候通过 Raft 校对索引配合 MVCC 的方式获得 Snapshot Isolation 的一致性隔离级别。这个架构很好地解决了 HTAP 场景的隔离性以及列存同步的问题。

image-20211229214022873

上图为 TiDB HTAP 形态架构,其中包含 TiFlash 节点。

TiFlash 提供列式存储,且拥有借助 ClickHouse 高效实现的协处理器层。除此以外,它与 TiKV 非常类似,依赖同样的 Multi-Raft 体系,以 Region 为单位进行数据复制和分散。

TiFlash 主要有异步复制、一致性、智能选择、计算加速等几个核心特性。

标签:存储,Region,TiFlash,TiKV,v5.3,TiDB,小试,数据
来源: https://blog.csdn.net/qq_20949471/article/details/122226106