TiDB是一个分布式NwSQL数据库。它支持水平弹性扩展、ACID事务、标准SQL、MySQL语法和MySQL协议,具有数据强一致的高可用特性,是一个不仅适合OLTP场景还适合OLAP场景的混合数据库。
TiDB是PingCAP公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理(HybridTransactionalandAnalyticalProcssing,HTAP)的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时HTAP、云原生的分布式数据库、兼容MySQL5.7协议和MySQL生态等重要特性。
目标是为用户提供一站式OLTP(OnlinTransactionalProcssing)、OLAP(OnlinAnalyticalProcssing)、HTAP解决方案。TiDB适合高可用、强一致要求较高、数据规模较大等各种应用场景。
什么是NwSQL数据库发展至今已经有代了:
SQL,传统关系型数据库,例如MySQLnoSQL,例如MongoDB,RdisnwSQL传统SQL的问题互联网在本世纪初开始迅速发展,互联网应用的用户规模、数据量都越来越大,并且要求7X24小时在线。
传统关系型数据库在这种环境下成为了瓶颈,通常有2种解决方法:
升级服务器硬件虽然提升了性能,但总有天花板。
数据分片使用分布式集群结构
对单点数据库进行数据分片,存放到由廉价机器组成的分布式的集群里,可扩展性更好了,但也带来了新的麻烦。
以前在一个库里的数据,现在跨了多个库,应用系统不能自己去多个库中操作,需要使用数据库分片中间件。
分片中间件做简单的数据操作时还好,但涉及到跨库join、跨库事务时就很头疼了,很多人干脆自己在业务层处理,复杂度较高。
NoSQL的问题后来noSQL出现了,放弃了传统SQL的强事务保证和关系模型,重点放在数据库的高可用性和可扩展性。
优点高可用性和可扩展性,自动分区,轻松扩展不保证强一致性,性能大幅提升没有关系模型的限制,极其灵活缺点不保证强一致性,对于普通应用没问题,但还是有不少像金融一样的企业级应用有强一致性的需求。不支持SQL语句,兼容性是个大问题,不同的NoSQL数据库都有自己的api操作数据,比较复杂。NwSQL特性NwSQL提供了与noSQL相同的可扩展性,而且仍基于关系模型,还保留了极其成熟的SQL作为查询语言,保证了ACID事务特性。
简单来讲,NwSQL就是在传统关系型数据库上集成了NoSQL强大的可扩展性。
传统的SQL架构设计基因中是没有分布式的,而NwSQL生于云时代,天生就是分布式架构。
NwSQL的主要特性SQL支持,支持复杂查询和大数据分析。支持ACID事务,支持隔离级别。弹性伸缩,扩容缩容对于业务层完全透明。高可用,自动容灾。三种SQL的对比图片TiDB怎么来的著名的开源分布式缓存服务Codis的作者,PingCAP联合创始人CTO,资深infrastructur工程师的黄东旭,擅长分布式存储系统的设计与实现,开源狂热分子的技术大神级别人物。即使在互联网如此繁荣的今天,在数据库这片边界模糊且不确定地带,他还在努力寻找确定性的实践方向。
直到年底,他看到Googl发布的两篇论文,如同棱镜般,折射出他自己内心微烁的光彩。这两篇论文描述了Googl内部使用的一个海量关系型数据库F1/Spannr,解决了关系型数据库、弹性扩展以及全球分布的问题,并在生产中大规模使用。“如果这个能实现,对数据存储领域来说将是颠覆性的”,黄东旭为完美方案的出现而兴奋,PingCAP的TiDB在此基础上诞生了。
TiDB社区版和企业版TiDB分为社区版以及企业版,企业版收费提供服务以及安全性的支持
图片TIDB核心特性水平弹性扩展通过简单地增加新节点即可实现TiDB的水平扩展,按需扩展吞吐或存储,轻松应对高并发、海量数据场景
得益于TiDB存储计算分离的架构的设计,可按需对计算、存储分别进行在线扩容或者缩容,扩容或者缩容过程中对应用运维人员透明。
分布式事务支持TiDB%支持标准的ACID事务
金融级高可用相比于传统主从(M-S)复制方案,基于Raft的多数派选举协议可以提供金融级的%数据强一致性保证,且在不丢失大多数副本的前提下,可以实现故障的自动恢复(auto-failovr),无需人工介入
数据采用多副本存储,数据副本通过Multi-Raft协议同步事务日志,多数派写入成功事务才能提交,确保数据强一致性且少数副本发生故障时不影响数据的可用性。可按需配置副本地理位置、副本数量等策略满足不同容灾级别的要求。
实时HTAPTiDB作为典型的OLTP行存数据库,同时兼具强大的OLAP性能,配合TiSpark,可提供一站式HTAP解决方案,一份存储同时处理OLTPOLAP无需传统繁琐的ETL过程
提供行存储引擎TiKV、列存储引擎TiFlash两款存储引擎,TiFlash通过Multi-RaftLarnr协议实时从TiKV复制数据,确保行存储引擎TiKV和列存储引擎TiFlash之间的数据强一致。TiKV、TiFlash可按需部署在不同的机器,解决HTAP资源隔离的问题。
云原生的分布式数据库TiDB是为云而设计的数据库,同Kubrnts深度耦合,支持公有云、私有云和混合云,使部署、配置和维护变得十分简单。TiDB的设计目标是%的OLTP场景和80%的OLAP场景,更复杂的OLAP分析可以通过TiSpark项目来完成。TiDB对业务没有任何侵入性,能优雅的替换传统的数据库中间件、数据库分库分表等Sharding方案。同时它也让开发运维人员不用