文件菜单

TiDB介绍

TiDB(/ ' taɪdiːbi:/,“Ti”代表Titanium)是一个开源的NewSQL数据库,支持混合事务和分析处理(HTAP)工作负载。它兼容MySQL,具有水平可伸缩性、强一致性和高可用性。TiDB的目标是为用户提供一站式数据库解决方案,包括OLTP(在线事务处理)、OLAP(在线分析处理)和HTAP服务。TiDB适用于对大规模数据要求高可用性和强一致性的各种用例。

关键特性

  • 水平向外扩展或易于扩展

    将计算与存储分离的TiDB架构设计使您能够根据需要分别向外扩展或在线扩展计算或存储容量。伸缩过程对应用程序操作和维护人员是透明的。

  • Financial-grade高可用性

    数据存储在多个副本中。数据副本使用Multi-Raft协议获取事务日志。只有当数据成功写入大多数副本时,才能提交事务。这可以保证在少数副本出现故障时具有很强的一致性和可用性。为了满足不同灾难容忍级别的要求,您可以根据需要配置副本的地理位置和数量。

  • 实时HTAP

    TiDB提供两种存储引擎:TiKV,基于行的存储引擎TiFlash,柱状存储引擎。TiFlash使用Multi-Raft学习协议实时复制TiKV的数据,确保TiKV行存储引擎和TiFlash柱状存储引擎之间的数据是一致的。TiKV和TiFlash可以根据需要部署在不同的机器上,解决HTAP资源隔离问题。

  • 进行分布式数据库

    TiDB是为云设计的分布式数据库,在云平台上提供灵活的可扩展性、可靠性和安全性。用户可以弹性伸缩TiDB,以满足他们不断变化的工作负载的需求。在TiDB中,每条数据至少有3个副本,可以安排在不同的云可用区,以容忍整个数据中心的宕机。TiDB运营商帮助管理Kubernetes上的TiDB,并自动化与操作TiDB集群相关的任务,这使得TiDB更容易部署到任何提供托管Kubernetes的云上。TiDB云(Beta版),完全管理的TiDB服务,是最简单,最经济,最有弹性的方式来解锁的全部力量TiDB在云端,允许您只需单击几下鼠标就可以部署和运行TiDB集群。

  • 兼容MySQL 5.7协议和MySQL生态系统

    TiDB兼容MySQL 5.7协议、MySQL通用特性和MySQL生态系统。要将应用程序迁移到TiDB,在许多情况下不需要更改一行代码,或者只需要修改少量代码。此外,TiDB提供了一系列数据迁移工具帮助将应用程序数据轻松迁移到TiDB。

用例

  • 对数据一致性、可靠性、可用性、可扩展性和容灾能力要求较高的金融行业场景

    众所周知,金融行业对数据的一致性、可靠性、可用性、可扩展性和容灾能力要求很高。传统的解决方案是在同一个城市的两个数据中心提供服务,在另一个城市的第三个数据中心提供数据灾难恢复,但不提供服务。该解决方案存在资源利用率低、维护成本高、RTO (Recovery Time Objective)和RPO (Recovery Point Objective)不能满足预期的缺点。TiDB使用多个副本和Multi-Raft协议将数据调度到不同的数据中心、机架和机器。当部分机器出现故障时,系统可自动切换,保证系统RTO≦30秒,RPO = 0。

  • 海量数据和高并发场景,对存储容量、可扩展性和并发性要求较高

    随着应用程序的快速增长,数据激增。传统的独立数据库无法满足数据容量的需求。解决方案是使用分片中间件或NewSQL数据库(如TiDB),后者更划算。TiDB采用独立的计算和存储架构,可以分别向外扩展或扩展计算和存储容量。计算层最大支持512个节点,每个节点最大支持1000并发,最大集群容量PB (petabytes)级。

  • 实时HTAP场景

    随着5G、物联网和人工智能的快速发展,一家公司产生的数据不断大幅增加,规模达到数百TB(TB)甚至PB级。传统的解决方案是使用OLTP数据库处理在线事务应用程序,并使用ETL(提取、转换、加载)工具将数据复制到OLAP数据库中进行数据分析。此解决方案有多个缺点,例如存储成本高和实时性能差。TiDB在v4.0中引入了TiFlash列存储引擎,它与基于TiKV行的存储引擎相结合,将TiDB构建为真正的HTAP数据库。只需少量额外的存储成本,您就可以在同一个系统中处理在线事务处理和实时数据分析,这大大节约了成本。

  • 数据聚合和辅助处理场景

    大多数公司的应用数据分散在不同的系统中。随着应用的发展,决策领导需要了解整个公司的业务状况,以便及时做出决策。在这种情况下,公司需要将分散的数据聚合到同一个系统中,并执行二次处理,生成T+0或T+1报告。传统的解决方案是使用ETL和Hadoop,但Hadoop系统复杂,运维成本高,存储成本高。与Hadoop相比,TiDB简单得多。您可以使用ETL工具或TiDB提供的数据迁移工具将数据复制到TiDB中。可以使用SQL语句直接生成报表。

另请参阅