本文呈现一套基于 CentOS 8 的 TiDB HTAP 生产级部署方案。A5数据本文涵盖 硬件配置建议、系统要求、集群拓扑设计、部署配置、关键部件参数、HTAP 特性启用方法、监控与性能基准对比 等技术细节,并通过代码与表格给出可复制的实践路径,适合真实生产环境参考。

说明:TiDB 是由 PingCAP 开发的开源分布式 NewSQL 数据库,原生支持 HTAP(Hybrid Transactional/Analytical Processing)混合负载;具备水平可扩展、高可用以及与 MySQL 协议兼容的特点,是构建 OLTP + OLAP 合一平台的优秀选择。


一、核心价值与架构简介

TiDB 结合行存储与列存储能力,通过 TiKV 行存(OLTP) + TiFlash 列存(OLAP) + PD 调度 + TiDB SQL 层 的架构,实现实时 OLTP 与低延迟 OLAP 混合处理;TiDB SQL 层在执行计划中智能选择访问行式或列式存储,从而实现真正的 HTAP 能力。

HTAP 运行原理简要图示(逻辑层)

组件 作用
TiDB Server SQL 解析/优化/执行,兼容 MySQL 协议
PD (Placement Driver) 全局调度与元数据管理
TiKV row-store 支持事务与 OLTP
TiFlash col-store 支持分析型查询
Monitor Prometheus/Grafana 监控

二、系统与香港服务器www.a5idc.com硬件环境建议(生产级)

2.1 软件系统建议

版本/说明
操作系统 CentOS 8 (x86_64), 已打补丁更新
内核参数优化 禁用 swap、调整文件句柄、网络参数
防火墙 生产建议开启并精确放行所需端口
SSH 节点间免密登录配置

注意:官方文档支持在 CentOS 7.3 及更高版本上部署 TiDB 集群;CentOS 8 在社区测试中也可正常运行。

2.2 推荐硬件配置(中等负载生产)

角色 CPU 内存 存储 网络
PD 节点(x3) 4–8 核 32–64G 500G SSD 万兆
TiKV 节点(x3) 16–32 核 128–256G NVMe SSD * 3 RAID 万兆
TiDB 节点(x2) 8–16 核 64–128G 500G SSD 万兆
TiFlash 节点(x3) 16–32 核 128–256G NVMe SSD * 3 RAID 万兆
Monitor/Alert 4 核 16–32G 200G SSD 千兆

说明:TiFlash 节点数量需合理规划,与 TiKV 保持副本数可调,确保 HTAP 查询性能与可用性。


三、环境准备与部署流程

3.1 系统初始化与优化

登录各节点,执行系统更新:

sudo dnf -y update && sudo reboot

禁用 swap(建议):

sudo swapoff -a
echo "vm.swappiness = 0" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

调整文件句柄与网络参数:

cat >> /etc/sysctl.conf <<EOF
fs.file-max = 1000000
net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
EOF
sudo sysctl -p

3.2 安装 TiUP 管理工具

选择一台运维控制机(可为任意 Linux):

curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
source ~/.bash_profile
tiup update --self
tiup update cluster

确认安装:

tiup --version
tiup cluster --version

3.3 构建集群拓扑配置

在控制机准备 topology.yaml

global:
  user: "tidb"
  ssh_port: 22

pd_servers:
  - host: 192.168.1.10
    client_port: 2379
    peer_port: 2380
  - host: 192.168.1.11
  - host: 192.168.1.12

tikv_servers:
  - host: 192.168.1.20
  - host: 192.168.1.21
  - host: 192.168.1.22

tidb_servers:
  - host: 192.168.1.30
  - host: 192.168.1.31

tiflash_servers:
  - host: 192.168.1.40
  - host: 192.168.1.41
  - host: 192.168.1.42

monitoring_servers:
  - host: 192.168.1.50

注意:IP 需换成实际集群环境。

3.4 部署集群

执行部署:

tiup cluster deploy prod-tidb v8.5.5 ./topology.yaml --user root -p

按提示确认 IP 与端口无冲突。

启动集群:

tiup cluster start prod-tidb
tiup cluster display prod-tidb

验证 SQL 访问:

mysql -h 192.168.1.30 -P 4000 -u root

四、启用 HTAP 能力与测试方法

4.1 在 TiDB 上启用列存副本

默认 TiDB 不会把所有表都在 TiFlash 上有副本,你需要对分析型表设置 TiFlash 副本:

ALTER TABLE orders SET TIFLASH REPLICA 2;
ALTER TABLE lineitem SET TIFLASH REPLICA 2;

TiFlash 会自动创建列式数据,并同步 TiKV 的数据变化。

4.2 基准测试数据准备

借助标准 TPC‑H 数据集:

# 使用 tidb-bench 或 dbgen 工具生成 TPC‑H 数据
dbgen -s 10  # scale=10

导入到 TiDB:

USE tpch;
SOURCE customers.sql;
SOURCE orders.sql;

4.3 OLTP vs HTAP 查询性能对比

测试项 行存 TiKV 查询 列存 TiFlash 查询
简单 SELECT count(*) 120 ms 110 ms
GROUP BY 多字段 350 ms 85 ms
大表 JOIN 1020 ms 245 ms

以上结果仅为示例性数据,实际性能会受硬件规格、TiFlash 副本数、网络等影响。


五、监控与运维建议

5.1 集群监控

部署集群时默认包含 Prometheus + Grafana 监控:

  • Grafana 面板地址:http://192.168.1.50:3000
  • 监测指标:TiKV 延迟/IO、TiFlash 列存扫描速率、PD 调度延迟、SQL QPS 等。

5.2 常用运维命令

重启单个组件:

tiup cluster restart prod-tidb -R tidb

扩容 TiKV 节点:

  1. 修改 topology.yaml 添加新节点;
  2. 执行:
tiup cluster scale-out prod-tidb ./topology.yaml

六、常见问题与优化策略

6.1 CentOS 8 特殊注意点

CentOS 8 自 2021 以后进入生命周期阶段,社区维护建议过渡到兼容 RHEL8 的 Rocky/AlmaLinux,但从实践来看 CentOS 8 仍能稳定运行 TiDB 8.x 系列。为了避免未来系统不再更新,建议考虑使用 Rocky Linux 8 或 AlmaLinux 8。在社区中已有基于 Rocky Linux 8 的 TiDB 部署实践。

6.2 数据密集型查询优化

  • 调整 TiFlash 副本数;
  • 细化统计信息,执行 ANALYZE TABLE
  • 利用 EXPLAIN 检查执行计划,确保列存优先。

七、总结

本文从 CentOS 8 环境准备、真实生产级硬件需求、TiUP 一键部署、HTAP 功能启用、监测与性能对比 多维度,给出一套完整的 TiDB HTAP 解决方案。通过在同一集群上同时支持 OLTP 和 OLAP 工作负载,可显著简化传统的在线数据架构,从而在保证事务性处理的同时,提供低延迟分析查询能力。

如果你需要进一步集成 Spark、实时数据同步(CDC)或 Kubernetes 原生部署(TiDB Operator),也可以在当前基础上扩展;这将构成一个更加完善的实时数据平台。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐