当前位置: 首页 > 科技观察

说说国产数据库TiDB相关知识,你学会了吗?

时间:2023-03-21 15:45:58 科技观察

1。简介 TiDB是PingCAP开发设计的开源分布式HTAP(HybridTransactionalandAnalyticalProcessing)数据库,它结合了传统关系型和非关系型数据库的优点。TiDB兼容MySQL,支持无限水平扩展,强一致性和高可用。并提供一站式OLTP(OnlineTransactionalProcessing)、OLAP(OnlineAnalyticalProcessing)、HTAP解决方案2.TiDBTiDB的组成主要包括三个核心组件:TiDBServer、PDServer和TiKVServer。我给大家简单介绍一下。2.1TiDBServer属于SQL层,是对外暴露MySQL协议的连接端点。主要负责接受客户端连接,进行SQL解析和优化,最终生成分布式执行计划。TiDB层本身是无状态的,可以启动多个TiDB实例,通过负载均衡组件(如LVS、HAProxy、F5)对外提供统一的访问地址。客户端连接可以均匀分布在多个TiDB实例中,达到负载均衡的效果。TiDBServer本身不存储数据,只负责解析SQL并将实际的数据读取请求转发给底层存储节点TiKV(或TiFlash)。2.2PDServer(PD)PD主要负责整个TiDB集群的元信息管理模块。负责存储各个TiKV节点的实时数据分布和集群的整体拓扑结构,提供TiDBDashboard管控接口,为分布式事务分配事务ID。PD不仅存储元信息,还会根据TiKV节点上报的实时数据分布情况,向特定的TiKV节点发送数据调度命令。PD至少由3个节点组成,具有高可用能力。PD通过Raft协议保证数据安全。一般建议部署奇数个PD节点。2.3TiKVServerTiKVServer主要负责存储数据。从外部看,TiKV是一个提供事务的分布式Key-Value存储引擎。存储数据的基本单元是Region,每个Region负责存储一个KeyRange(从StartKey到EndKey的左闭右开区间)的数据,每个TiKV节点负责多个Region。TiKV使用Raft协议进行复制,以保持数据一致性和灾难恢复。3.TiDB的主要特点3.1与MySQL高度兼容大多数情况下,无需调整代码即可轻松从MySQL迁移到TiDB数据库,分库分表后的MySQL集群也可以通过TiDB工具实时迁移.3.2水平弹性扩展TiDB的水平扩展只需添加新节点即可实现,可以根据业务需求扩展吞吐量或存储,轻松应对高并发、海量数据场景,按需方式可以也节省了很多成本。3.3分布式事务TiDB完全支持标准的ACID事务。3.4金融级高可用与传统的主从复制方案相比,基于Raft的多数选举协议可以提供金融级100%的数据强一致性保证,并且可以实现故障自动不丢失大部分副本。修复不需要干预治疗的思考。3.5一站式HTAP解决方案TiDB是典型的OLTP行存储数据库,具有强大的OLAP性能。借助TiSpark,可以提供一站式的HTAP解决方案,无需传统繁琐的ETL流程,实现OLTP&OLAP(OLAP、OLTP和compare)的存储和同步处理。3.6云原生SQL数据库TiDB是为云服务设计的数据库。可与Kubernetes容器化技术深度耦合,支持公有云、私有云、混合云。使安装、部署、配置和维护变得非常简单。4.适用场景4.1千万级以上的数据存储,适用于千万行以上的大表,或数据库模式空间中T级数据量;如果数据存储规模小于500G,每秒查询量小或者并发量小,推荐使用mysql。4.2高并发如果你的并发量在10万以上,可以使用TiDB来省去中间件和分库分表的麻烦。4.3运维人员不足TiDB可以自动维护数据的强一致性和高可用,大大减少了数据库运维工作。