TiDB是一款开源、云原生、MySQL兼容的分布式数据库,可以处理混合事务和分析处理(HTAP)工作负载。它是“NEWSQL”关系数据库的一员,被设计为方便大规模部署。也许有人想知道,“Ti”代表了钛。

PingCAP在三年半前才开始搭建TiDB,但是这个产品已经拥有了15000次GitHub点赞,200名贡献者,7200次提交,2000个分支以及300名生产用户。最近TiDB获得了InfoWorld Bossie Award 2018数据存储和分析领域最佳开源项目奖。

在这篇文章中,我将介绍TiDB设计的核心功能和架构,覆盖数据库的三个主要用例,并预览了PingCAP即将推出的多云TiDB即服务和TiDB学术版。

TiDB功能

TiDB的核心功能包括弹性的水平可扩展性,有ACID保证的分布式事务,高可用性以及实时交易数据额分析。让我们来看一下这些功能背后隐藏的平台架构。TiDB平台有以下这些组件:

  • TiDB:无状态SQL层,可以兼容MySQL,用Go语言开发。
  • TiKV:分布式事务键值存储,用Rust语言开发。(TiKV最近成为了云原生计算基金会项目)
  • TiSpark:Apache Spark插件,连接到TiKV或者专门的柱状存储引擎(我们还在研究的部分,请持续关注)。
  • Placement Driver(PD):Etcd提供的元数据集群,管理并调度TiKV。

TiKV是基础层。这是所有数据持久化的地方,自动分成小的块(我们称为“区域”),并通过执行Raft一致性协议自动复制并保持强一致。和Placement Driver(PD)一起,TiKV可以复制节点、数据中心和地理位置的数据。它还可以动态地去除形成的热点,并拆分或合并区域,以提升性能和存储使用率。我们在TiKV中实现了基于范围的切片,而不是基于哈希的切片,因为从一开始,我们的目标就是支持全功能的关系型数据库。因此TiKV也支持不同类型的扫描操作:表扫描、索引扫描等等。

TiDB中的无状态SQL层用来负责所有的的在线交易处理(OLTP)工作和80%的常规在线分析处理(OLAP)。这样的设计提升了常规性能(参考我们最新的TPC-H基准测试),这个无状态SQL层使用TiKV的分布式设计,通过协处理器层将部分查询下放到不同TiKV节点进行并行处理。

对于更复杂的OLAP工作,比如说训练机器学习模型的迭代分析或实时业务智能采集,是由第二个无状态SQL层TiSpark负责的,也是直接从TiKV获得数据。TiDB兼容MySQL,而TiSpark兼容Spark SQL。

TiDB平台架构

TiDB架构

你可能已经注意到,整个TiDB平台是模块化的,所有的组件都有单独的代码库,并且是松耦合的。你可以将整个TiDB平台部署为一个完整的包(大多数用户都是这么做的)或是根据你的需要部署其中的一部分。这样的模块化的架构给用户提供了最大的灵活度,并符合云原生架构标准。根据CNCF的官方定义,云原生技术是“有弹性的、可管理的和可观察的松耦合系统”。

作为TiDB的用户,你可以扩展你的无状态SQL服务器或TiSpark层(也就是你的计算资源),或者是单独扩展TiKV(也就是你的存储容量),允许你充分利用消耗的大部分资源,更好地满足你的工作负载。你几乎可以将TiDB无状态SQL服务认为是在TiKV之上的微服务,它是持久化数据的有状态应用程序。这个设计有利于隔离缺陷,更快地滚动升级和维护,而破坏性更小。

TiDB这些优势的代价是额外的部署和监视复杂性,有更多需要追踪的部分。然而,随着Kubernetes的兴起以及CoreOS推动的Operator模式,部署和管理TiDB是简单、直接并且日益自动化的。开源的TiDB Operator for Kubernetes可以帮助你在任何云环境下(公有、私有或混合)部署、扩展、升级和维护TiDB。TiDB默认安装Prometheus和Grafana,所以可以立即进行监视。(查看我们的TiDB Operator教程)

灵活的技术资产扩展性是业务成功与否的最终关键。这就是你会成为下一个Facebook还是下一个Friendster的区别。TiDB模块化和Kubernetes的加入可以给你的数据库服务带来灵活的扩展性。

最后,让我们来看一下TiDB的三个主要用例:MySQL扩展性、HTAP实时分析和统一数据存储。

示例Grafana仪表板监视TiDB部署

TiDB用例:MySQL扩展性

由于TiDB兼容MySQL,它同时兼容MySQL连接协议和MySQL生态系统工具,比如MyDumper和MyLoader,对于MySQL用户来说,这是解决问题的自然选择。我们需要清楚,TiDB并非要取代MySQL,相反,它是MySQL的补充。MySQL仍然是很好的单实例数据库选择,所以如果你的数据大小或工作负载不大,那请继续使用MySQL。但如果你还在头疼这些问题:

  • 考虑如何复制、迁移或扩展数据库得到更多容量
  • 寻找优化现有存储容量的方法
  • 查询性能慢
  • 研究中间件扩展解决方案或实施手动分片策略

那么请开始考虑使用像TiDB这样的分布式SQL数据库吧,它可以帮你解决你关心的所有问题。MySQL分片的缺陷让世界最大的单车共享平台之一Mobike选择使用TiDB(阅读Mobike案例)。Mobike在200个城市拥有9百万单车,服务于2亿名用户,因此不难想象团队使用MySQL时候会遇到的扩展瓶颈。Mobike通过在MySQL之外部署TiDB,以及PingCAP的企业级工具套件,包括可以自动将MySQL主机和TiDB集群同步的Syncer,解决了弹性扩展需求。

TiDB和其他MySQL兼容数据库之间最主要的区别在于TiDB的分布式架构。MySQL技术已经存在了23年了,它从来没有打算涉足于分布式领域。比如说,不像TiDB,MySQL不能产生查询计划,将部分查询下放到多台机器中同时进行并行处理。TiDB的SQL解析器、基于成本的优化器和协处理器层从头开始构建的,利用了分布式数据库的计算资源和并行性,因此MySQL用户可以从中获得更多功能。

TiDB用例:HTAP实时分析

HTAP(混合事务和分析处理)是Gartner在2014年提出的一个术语,描述打破事务和分析数据工作之间隔阂的数据库架构。目标是给企业实时分析,这样就可以作出实时决策。其他行业分析公司有描述这个架构的专门术语:451 Research的HOAP(混合操作分析处理),Forrester的Translytical以及IDC的ATP(分析事务处理)。

正如我们讨论的,TiDB通过解耦计算层和存储层,并使用不同的无状态SQL引擎(TiDB和TiSpark)来做不同的分析任务,打破了OLTP和OLAP之间的隔阂。这两个引擎都连接到同一个持久数据存储(TiKV),让系统自然拥有实时分析和决策的能力。复杂的ETL过程被简单化,”t+1”延迟不复存在,TiDB中存储的数据可以更有创造力地进行使用。

服务于5百万用户的大型生鲜产品运送平台Yiguo.com在TiDB之上运行Apache Spark(阅读Yiguo.com案例)来加速复杂的查询。通过从SQL Server升级其基础设施,并通过部署TiDB到其现有的MySQL,Yiguo.com可以高性能地在中国最大的在线购物节双11运行复杂的连接运算,进行实时决策。

TiDB用例:统一数据存储

分布式、模块化、HTAP数据库TiDB被设计为可以水平地扩展计算和存储容量,灵活地适应不同的工作负载,同时还是“唯一可信来源”。通过在键值存储之上提供可扩展的SQL服务,TiDB旨在动态地降低基础设施栈中维护数据管理层的人力和技术成本。

对于世界上最大的食物配送平台之一Ele.me来说,想要统一数据存储是采用TiDB和TiKV的关键原因之一(阅读Ele.me的案例)。之前,Ele.me的数据分散在不同的数据库中,包括MongoDB、MySQL、Cassandra和Redis。最终,这个临时堆栈不再可用,因为操作和维护成本不断增加。现在Ele.me 2亿6千万用户的80%操作在单个TiKV部署下服务。这个TiKV集群跨越了4个数据中心,每个都有100多个节点,存储了十几个TB的数据,这些数据总是存在,一直可用。

多云TiDB即服务和TiDB Academy

自PingCAP开始搭建TiDB已经超过了3年,该数据库在各种情况下都进行了测试。现在,超过300家公司都在使用TiDB满足他们的OLTP/OLAP、数据库扩展性、实时分析和统一存储的需求。然而,TiDB的路线图上还有许多目标。

其中一个是全面管理的多云TiDB即服务,可以在各种云设置下使用,包括公有、私有和混合。PingCAP正在开发企业级、全托管、基于Kubernetes的TiDB,并将在今年年底发布第一个版本。如果你想要更早地使用,请在这里注册。

PingCAP开发的另一个项目是TiDB Academy,这是自己制定进度的实践课程,帮助数据库管理员、devops以及系统架构师理解TiDB的架构、设计选择、长处和短板。第一个课程“给MySQL DBA的分布式数据库TiDB”正在招生。你可以在这里注册。

如果你想快速了解TiDB,请参阅我们的TiDB快速入门指南。

Kevin Xu (twitter: @kevinsxu)是PingCAP全球策略和运营的总经理,特别负责云产品管理和策略。

查看英文原文:How TiDB combines OLTP and OLAP in a distributed database

分布式数据库TiDB是如何结合OLTP和OLAP的?相关推荐

  1. Zabbix+分布式数据库TiDB实现分布式数据库监控

    Zabbix+分布式数据库TiDB实现分布式数据库监控 一.Tidb的简介 1.什么是TiDB 2.TiDB 整体架构 2.主要模块简介 1) TiDB Server 2) PD Server 3) ...

  2. 最火的HTAP数据库 京东云新一代分布式数据库TiDB架构揭秘

    作者丨京东智联云数据库团队 2020年伊始,一场突如其来的新冠疫情, 席卷了华夏大地.为了抵抗疫情,全国人民众志成城,共同抗疫.疫情期间,各行各业受到了巨大影响,多数线下服务和活动基本陷入了停滞状态. ...

  3. 论分布式数据库TiDB架构的“存”与“算”

    作者:何朝洋 原文来源: https://tidb.net/blog/57ed0da1 在云计算基础设施IaaS服务中,"存"与"算"的分界是清晰的,客户会分别 ...

  4. 分布式数据库——TiDB的介绍和基本原理

    1.TiDB 介绍 1.1 TiDB 介绍 1.1.1 TiDB 是什么? TiDB 是一个分布式 NewSQL 数据库.它支持水平弹性扩展.ACID 事务.标准 SQL.MySQL 语法和 MySQ ...

  5. 分布式数据库TiDB介绍

    TiDB 是一款定位于在线事务处理 / 在线分析处理( HTAP: Hybrid Transactional/Analytical Processing)的融合型数据库产品,实现了一键水平伸缩,强一致 ...

  6. PingCAP 开源分布式数据库 TiDB 论文入选 VLDB

    8 月 31 日 - 9 月 4 日,第 46 届 VLDB 会议以线上直播的方式举行(原定于日本东京召开),PingCAP 团队的论文<TiDB: A Raft-based HTAP Data ...

  7. 分布式数据库 TiDB

    一.TiDB介绍 与传统的单机数据库相比,TiDB具有以下优势: 纯分布式架构,拥有良好的扩展性,支持弹性的扩缩容 支持SQL,对外暴露MySQL的网络协议,并兼容大多数MySQL的语法,在大多数场景 ...

  8. 流量和延迟减半!挑战分布式数据库 TiDB 跨数据中心难题

    众所周知,在对可用性要求极高的行业领域(比如金融.通信),分布式数据库需要跨地域的在多个数据中心之间建立容灾以及多活的系统架构,同时需要保持数据完整可用.但这种方式同时也带来了一些问题: 跨地域的网络 ...

  9. 保姆级分布式数据库 TiDB 6.0 集群安装手册

    作者: JiekeXu 原文来源: https://tidb.net/blog/94c2b44c 之前学习 TiDB 的时候一直想着要自己安装一套 TiDB 集群,近期由于新换了笔记本,配置还算凑合, ...

最新文章

  1. ssm 异常捕获 统一处理_SSM 统一异常处理
  2. 20175203 2018-2019 实验五《网络编程与安全》
  3. AIX如何查看文件系统分布在哪个物理磁盘上
  4. UVa1062 - Containers贪心算法
  5. 微信平台全面封杀UBER的24小时里,优步做了什么
  6. 校招生入职半年多后担任社招面试官的体验
  7. 自建网络加速服务器,自建DNS缓存服务器加快上网速度
  8. 浅谈中国电信出口网络的链路情况(什么是 ChinaNet,CN2,GT,GIA)
  9. 为远程群晖NAS的自定义域名配置SSL证书
  10. 如何禁止input文本框输入
  11. MTU问题导致大数据包出不去。
  12. 实现 Google 第三方授权登录
  13. 翁帆给杨振宁的情书(中英文对照)
  14. Python -- 手动搭建HTTP服务器
  15. TransUNet: Transformers Make StrongEncoders for Medical Image Segmentation文章详解(结合代码)
  16. Android Studio开发——蓝牙聊天功能
  17. 笔记--js开发规范
  18. 微信公众号怎么设置下载文件
  19. java px pt转化_字体的大小(pt)和像素(px)如何转换?
  20. 13 种文章投稿后状态,你的文章在哪个阶段?(转载)

热门文章

  1. webservice 出现No service was found
  2. 在网上看到一个故事,我觉得挺感人
  3. 取得服务器支持的图形类型
  4. Js中数组去重的几种方法
  5. MySQL之锁、事务、优化、OLAP、OLTP
  6. php一些高级函数方法
  7. #386. 【UNR #3】鸽子固定器
  8. 实验 7:流类库与输入输出
  9. MA5680T OLT管理软件,全智能判断板卡,无人值守策略,根据光猫类型自动扫描添加光猫...
  10. 鸿蒙系统海外名称,新商标表明华为鸿蒙系统在海外或叫做“Harmony OS”