暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

中鼎立天数据部门:架构近乎完美的MPP数据库TiDB小述

中鼎立天 2022-03-31
1289

TiDBPingCAP公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理(HybridTransactionalandAnalyticalProcessing,HTAP)的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时HTAP、云原生的分布式数据库、兼容MySQL5.7协议和MySQL生态等重要特性。目标是为用户提供一站式OLTP(OnlineTransactionalProcessing)、OLAP(OnlineAnalyticalProcessing)、HTAP解决方案。TiDB适合高可用、强一致要求较高、数据规模较大等各种应用场景。

根据国产数据库排名网站,TiDB一直稳坐龙头且长期霸榜,得益于其近乎完美的架构,为国内各大厂商借鉴学习,并不断完善衍生新的价值,蚂蚁金融的生产数据库OceanBase,其架构设计完全借鉴TiDB,并不断完善优化,使其成为国内数据库转型的唯一选择,完全具备金融级别的可靠性、实时性、稳定性、安全性。

中鼎立天数据部门长期在MPP数据领域的研究,已经为部分金融机构设计实施过生产数据库到MPP数据库的转型,在金融数据库转型、高可用、高性能数据库设计实施方面,积累了丰富的经验。今天,中鼎立天数据部门,将为大家小述TiDB数据库架构,了解一下这个架构近乎完美的数据库,也欢迎大家咨询探讨。”


01

国产MPP数据库排名

根据国产数据库摩天轮的排名,TiDB一直作为MPP数据库领域的NumberONE并长期霸榜



02

五大核心特性


(一)一键水平扩容或者缩容

得益于TiDB存储计算分离的架构的设计,可按需对计算、存储分别进行在线扩容或者缩容,扩容或者缩容过程中对应用运维人员透明。


(二)金融级高可用

数据采用多副本存储,数据副本通过Multi-Raft协议同步事务日志,多数派写入成功事务才能提交,确保数据强一致性且少数副本发生故障时不影响数据的可用性。可按需配置副本地理位置、副本数量等策略满足不同容灾级别的要求。


(三)实时HTAP

提供行存储引擎TiKV、列存储引擎TiFlash两款存储引擎,TiFlash通过Multi-RaftLearner协议实时从TiKV复制数据,确保行存储引擎TiKV和列存储引擎TiFlash之间的数据强一致。TiKV、TiFlash可按需部署在不同的机器,解决HTAP资源隔离的问题。


(四)云原生的分布式数据库

专为云而设计的分布式数据库,通过TiDBOperator可在公有云、私有云、混合云中实现部署工具化、自动化。


(五)兼容MySQL5.7协议和MySQL生态


兼容MySQL5.7协议、MySQL常用的功能、MySQL生态,应用无需或者修改少量代码即可从MySQL迁移到TiDB。提供丰富的数据迁移工具帮助应用便捷完成数据迁移。


03

整体架构

在内核设计上,TiDB分布式数据库将整体架构拆分成了多个模块,各模块之间互相通信,组成完整的TiDB系统。对应的架构图如下:


(一)TiDBServerSQL节点:引擎层(DML、DDL层)

对外暴露MySQL协议的连接endpoint,负责接受客户端的连接,执行SQL解析和优化,最终生成分布式执行计划。TiDB层本身是无状态的,实践中可以启动多个TiDB实例,通过负载均衡组件(如LVS、HAProxy或F5)对外提供统一的接入地址,客户端的连接可以均匀地分摊在多个TiDB实例上以达到负载均衡的效果。TiDBServer本身并不存储数据,只是解析SQL,将实际的数据读取请求转发给底层的存储节点TiKV(或TiFlash)。


(二)PD(PlacementDriver)Server节点:管控层(元数据层)

整个TiDB集群的元信息管理模块,负责存储每个TiKV节点实时的数据分布情况和集群的整体拓扑结构,提供TiDBDashboard管控界面,并为分布式事务分配事务ID。PD不仅存储元信息,同时还会根据TiKV节点实时上报的数据分布状态,下发数据调度命令给具体的TiKV节点,可以说是整个集群的“大脑”。此外,PD本身也是由至少3个节点构成,拥有高可用的能力。建议部署奇数个PD节点。


(三)存储节点:存储层(多副本)

TiKVServer负责存储数据,从外部看TiKV是一个分布式的提供事务的Key-Value存储引擎。存储数据的基本单位是Region,每个Region负责存储一个KeyRange(从StartKey到EndKey的左闭右开区间)的数据,每个TiKV节点会负责多个Region。TiKV的API在KV键值对层面提供对分布式事务的原生支持,默认提供了SI(SnapshotIsolation)的隔离级别,这也是TiDB在SQL层面支持分布式事务的核心。TiDB的SQL层做完SQL解析后,会将SQL的执行计划转换为对TiKVAPI的实际调用。所以,数据都存储在TiKV中。另外,TiKV中的数据都会自动维护多副本(默认为三副本),天然支持高可用和自动故障转移。


(四)TiFlash节点:OLAP加速层:(行列转换加速层)

TiFlash:TiFlash是一类特殊的存储节点。和普通TiKV节点不一样的是,在TiFlash内部,数据是以列式的形式进行存储,主要的功能是为分析型的场景加速。


(五)TiSpark节点:大数据分析层

TiSpark是将SparkSQL直接运行在TIKV上的OLAP解决方案。从数据集群的角度看,TiSprk+TIDB可以让用户无需进行脆弱和难以维护的etl,直接在同一平台进行事务和分析两种操作,简化了系统架构和运维。

借助Spark平台,同时融合TiKV分布式集群的优势,和TiDB一起解决HTAP的需求。



04

应用场景


(一)对数据一致性及高可靠、系统高可用、可扩展性、容灾要求较高的金融行业属性的场景

众所周知,金融行业对数据一致性及高可靠、系统高可用、可扩展性、容灾要求较高。传统的解决方案是同城两个机房提供服务、异地一个机房提供数据容灾能力但不提供服务,此解决方案存在以下缺点:资源利用率低、维护成本高、RTO(RecoveryTimeObjective)及RPO(RecoveryPointObjective)无法真实达到企业所期望的值。TiDB采用多副本+Multi-Raft协议的方式将数据调度到不同的机房、机架、机器,当部分机器出现故障时系统可自动进行切换,确保系统的RTO<=30s及RPO=0


(二)对存储容量、可扩展性、并发要求较高的海量数据及高并发的OLTP场景

随着业务的高速发展,数据呈现爆炸性的增长,传统的单机数据库无法满足因数据爆炸性的增长对数据库的容量要求,可行方案是采用分库分表的中间件产品或者NewSQL数据库替代、采用高端的存储设备等,其中性价比最大的是NewSQL数据库,例如:TiDB。TiDB采用计算、存储分离的架构,可对计算、存储分别进行扩容和缩容,计算最大支持512节点,每个节点最大支持1000并发,集群容量最大支持PB级别。


(三)Real-timeHTAP场景

随着5G、物联网、人工智能的高速发展,企业所生产的数据会越来越多,其规模可能达到数百TB甚至PB级别,传统的解决方案是通过OLTP型数据库处理在线联机交易业务,通过ETL工具将数据同步到OLAP型数据库进行数据分析,这种处理方案存在存储成本高、实时性差等多方面的问题。TiDB在4.0版本中引入列存储引擎TiFlash结合行存储引擎TiKV构建真正的HTAP数据库,在增加少量存储成本的情况下,可以同一个系统中做联机交易处理、实时数据分析,极大地节省企业的成本。


(四)数据汇聚、二次加工处理的场景

当前绝大部分企业的业务数据都分散在不同的系统中,没有一个统一的汇总,随着业务的发展,企业的决策层需要了解整个公司的业务状况以便及时做出决策,故需要将分散在各个系统的数据汇聚在同一个系统并进行二次加工处理生成T+0或T+1的报表。传统常见的解决方案是采用ETL+Hadoop来完成,但Hadoop体系太复杂,运维、存储成本太高无法满足用户的需求。与Hadoop相比,TiDB就简单得多,业务通过ETL工具或者TiDB的同步工具将数据同步到TiDB,在TiDB中可通过SQL直接生成报表。



05

新特性TiDB 4.0


随着 TiDB v4.0 于 2020 年 5 月 28 日正式发布,TiDB v4.0 在稳定性、易用性、性能、安全和功能方面进行了大量的改进。本文概括性地介绍改进的内容,用户可根据实际情况决定升级到 TiDB v4.0。

(一)调度功能


热点调度支持更多维度。热点调度在决策时,除了根据写入/读取流量作为调度依据外,新引入 key 的维度。可以很大程度改善原有单一维度决策造成的 CPU 资源利用率不均衡的问题。


(二)存储引擎

TiFlash 是 TiDB 为完善 Realtime HTAP 形态引入的关键组件,TiFlash 通过 Multi-Raft Learner 协议实时从 TiKV 复制数据,确保行存储引擎 TiKV 和列存储引擎 TiFlash 之间的数据强一致。TiKV、TiFlash 可按需部署在不同的机器,解决 HTAP 资源隔离的问题。


(三)TiDB Dashboard

DBA 通过 TiDB Dashboard UI 可以快速了解集群的集群拓扑、配置信息、日志信息、硬件信息、操作系统信息、慢查询信息、SQL 访问信息、诊断报告信息等,帮助 DBA 通过 SQL 快速了解、分析系统的各项指标。


(四)部署运维工具

TiUP 是 4.0 版本中新推出的包管理器的工具,主要用于管理 TiDB 生态内的所有的包,提供组件管理、Playground、Cluster、TUF、离线部署等功能,将安装、部署、运维 TiDB 工具化,提升 DBA 部署、运维 TiDB 的效率。


(五)备份与恢复

快速备份恢复功能,用来快速的备份与恢复单个 TiDB 集群的数据,确保数据的可靠性,符合企业备份与恢复或者等保的要求。主要支持快速的全量备份与恢复、支持按照数据排序后区间范围备份与恢复数据。


(六)TiCDC

TiCDC 支持通过拉取 TiKV 变更日志实现 TiDB 集群之间数据同步,支持数据的高可靠、服务的高可用能力,确保数据不会丢失。用户可以通过订阅的方式订阅数据的变更信息,系统会自动将数据推送到下游系统,当前仅支持 MySQL 协议的数据库(例如:MySQL、TiDB),Kafka 及 Pulsar 作为 TiCDC 的下游,同时用户也可以通过 TiCDC 提供的开放数据协议自行扩展支持的下游系统。





文章转载自中鼎立天,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论