tidb分布式数据库

徐凯文( Kevin Xu)是PingCAP全球战略和运营总经理 。

TiDB是一个开源,云原生,MySQL兼容的分布式数据库,可处理混合事务和分析处理(HTAP)工作负载。 它是旨在大规模部署的关系数据库“ NewSQL”类的成员。 对于那些想知道的人,“ Ti”代表钛。

PingCAP仅仅在三年半前才开始构建TiDB,但是该产品已经聚集了超过15,000个GitHub明星,200个贡献者,7200个提交,2000个fork和300个生产用户。 TiDB最近还获得了InfoWorld的2018年Bossie奖,这是数据存储和分析领域最好的开源软件项目之一。

[ 什么是图形数据库? 一种存储连接数据的更好方法 。 • 为什么要使用图形数据库 。 • 了解Microsoft的图形数据库策略 。 •评论: Neo4j增强图形分析功能 。 | 通过InfoWorld大数据和分析报告时事通讯深入了解分析和大数据。 ]

在本文中,我将介绍TiDB的核心功能和体系结构设计,涵盖数据库的三个主要用例,并预览即将推出的多云TiDB即服务产品和PingCAP的TiDB学院。

TiDB功能

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

  • TiDB:Go内置的与MySQL兼容的无状态SQL层。
  • TiKV:内置在Rust中的分布式事务键值存储。 (TiKV最近成为了Cloud Native Computing Foundation项目 。)
  • TiSpark:一个Apache Spark插件,可连接到TiKV或专用的列式存储引擎(我们正在努力开发的东西……敬请期待)。
  • 布局驱动程序(PD):由Etcd支持的元数据集群,用于管理和调度TiKV。

TiKV是基础层。 通过执行Raft共识协议,所有数据都将在这里持久保存,自动划分为较小的块(我们称为“区域”),自动复制并使其高度一致。 TiKV与PD,Placement Driver一起使用可以在节点,数据中心和地理位置之间复制数据。 它还可以在热点形成时动态删除它们,并拆分或合并区域以提高性能和存储使用率。 我们在TiKV内实现基于范围的分片,而不是基于哈希的分片,因为我们从一开始的目标就是支持功能齐全的关系数据库。 因此,TiKV支持各种类型的扫描操作-表扫描,索引扫描等。

TiDB中的无状态SQL层可处理100%的在线事务处理(OLTP)工作负载和80%的常规即席在线分析处理(OLAP)工作负载。 展示常规的性能改进(见我们的最新TPC-H基准 ),该无状态SQL层利用TiKV的分布式特性经由协处理器层通过部分查询同时向下推到不同TiKV节点来执行并行处理。

对于更复杂的OLAP工作负载,例如用于训练机器学习模型的迭代分析或实时商业智能收集,第二个无状态SQL层TiSpark负责执行任务,也直接从TiKV提取数据。 TiDB讲MySQL,而TiSpark公开Spark SQL。

PingCAP

TiDB平台架构。

TiDB架构

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

作为TiDB用户,您可以向外扩展或向内扩展无状态SQL Server或TiSpark层(即您的计算资源),而扩展TiKV(即您的存储容量) 无关 ,从而可以充分利用您消耗的资源来适应您的需求。工作量。 您几乎可以将TiDB无状态SQL服务器看作是位于TiKV之上的微服务,TiKV是一个有状态的应用程序,用于存储数据。 这种设计使错误隔离更加容易,并且滚动升级和维护更快,破坏性更小。

权衡这些TiDB的优点是部署和监视会增加一些复杂性-还要跟踪更多内容。 但是,随着Kubernetes的兴起和CoreOS率先推出的Operator模式,TiDB的部署和管理变得简单,直接且日益自动化。 Kubernetes的开源TiDB Operator允许您在任何云环境(公共,私有或混合)中部署,扩展,升级和维护TiDB。 TiDB默认情况下会安装Prometheus和Grafana,因此监视“即开即用”。 ( 请参阅有关TiDB Operator的教程 。)

最终,技术资产的灵活可扩展性对于业务成功至关重要。 成为下一个Facebook和下一个Friendster是有区别的。 TiDB模块化和Kubernetes编排使您能够为数据库服务带来灵活的可伸缩性。

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

PingCAP

一个示例Grafana仪表板,监视TiDB部署。

TiDB用例:MySQL可伸缩性

由于TiDB会说MySQL,因此它与MySQL有线协议以及MyDumper和MyLoader等MySQL生态系统工具都兼容,因此非常适合那些难以扩展MySQL用户。 需要明确的是,TiDB 为MySQL的替代品; 相反,它是对 MySQL的补充 。 作为单实例数据库,MySQL仍然是一个不错的选择,因此,如果您的数据量或工作量较小,请坚持使用MySQL。 但是,如果您为此类问题抓紧时间 :

  • 考虑如何复制,迁移或扩展数据库以增加容量
  • 寻找优化现有存储容量的方法
  • 担心查询性能降低
  • 研究中间件扩展解决方案或实施手动分片策略

然后是时候开始考虑使用像TiDB这样的分布式SQL数据库了,它可以为您立即解决所有这些问题。 MySQL分片解决方案的不足之处在于,为什么Mobike(世界上最大的无基座自行车共享平台之一)采用TiDB(请阅读Mobike案例研究 )。 Mobike在200个城市中运营900万辆智能自行车,为2亿用户提供服务,因此,不难想象其团队在MySQL上遇到的扩展瓶颈。 Mobike通过与MySQL一起部署TiDB以及PingCAP的企业工具套件(包括Syncer)来满足其对弹性可伸缩性的需求 ,该套件包括Syncer ,可自动将MySQL主数据库与TiDB集群同步。

TiDB和其他与MySQL兼容的数据库之间的主要区别在于TiDB的分布式体系结构。 MySQL是一种已有23年历史的技术,它从未打算作为分布式系统使用。 例如,与TiDB不同,MySQL 无法生成将部分查询同时下推到多台计算机以进行并行处理的查询计划。 TiDBSQL解析器,基于成本的优化器和协处理器层是从头开始构建的,以利用分布式数据库的计算资源和并行性,因此MySQL用户可以拥有更大的权力。

TiDB用例:HTAP实时分析

HTAP(混合交易和分析处理)是Gartner在2014年创造的一个术语,它描述了一种数据库架构,可以打破交易和分析数据工作负载之间的隔wall。 目标是为企业提供实时分析,从而实现实时决策。 其他行业分析公司针对这种体系结构提出了自己的术语:451 Research的“ HOAP ”(混合操作分析处理),Forrester的“ Translytical ”和IDC的“ ATP ”(分析事务处理)。

正如我们已经讨论过的,TiDB通过解耦其计算层和存储层,并为不同的分析任务使用不同的无状态SQL引擎(TiDB和TiSpark),打破了OLTP和OLAP之间的壁垒。 两个引擎都连接到相同的持久数据存储(TiKV),从而使实时分析和决策成为系统的自然产物。 最大程度地减少了繁琐的ETL流程,“ t + 1”延迟不再只是生活的一部分,而且TiDB内部的数据可以比以前更富创造性地使用。

Yiguo.com是一个大型的新鲜产品交付平台,可为500万用户提供服务,它在TiDB之上运行Apache Spark(请阅读Yiguo.com案例研究 )以加快复杂查询的速度。 通过从SQL Server升级基础架构并通过TiDB增强其现有MySQL部署,Yiguo.com可以在中国最大的在线购物日的“光棍节”中全天高效地运行复杂的联接,以获取洞察力并实时做出决策。

TiDB用例:统一数据存储

TiDB是分布式的模块化HTAP数据库,旨在横向灵活地扩展计算和存储容量,以适应​​不同的工作负载,同时还充当“单一事实来源”。 通过在键值存储之上提供可伸缩SQL服务,TiDB旨在大幅降低与维护基础架构堆栈中的数据管理层有关的人力和技术成本。

对于全球最大的食品配送平台之一Ele.me而言,统一数据存储是采用TiDB和TiKV的主要原因之一(请阅读Ele.me案例研究 )。 以前,Ele.me的数据分散在许多不同的数据库中-MongoDB,MySQL,Cassandra,Redis。 最终,由于增加了运营和维护成本,这种临时堆栈变得站不住脚。 现在,单个TiKV部署可为大约2.6亿用户提供给Ele.me的实时流量的80%。 TiKV集群跨越四个数据中心,每个数据中心都有100多个节点,这些节点始终存储着数十TB的数据。

多云TiDB即服务和TiDB学院

自PingCAP于三年前开始构建TiDB以来,该数据库已在许多情况下经过了实战测试。 如今,已有300多家公司在生产中依靠TiDB来满足其OLTP / OLAP,数据库可伸缩性,实时分析和统一存储的需求。 但是, TiDB路线图上仍有许多工作要做。

其中一项是完全托管的TiDB即服务产品,可在任何云环境(公共,私有或混合)中使用。 PingCAP一直在研究基于Kubernetes的企业级,完全托管的TiDB产品,并将在今年年底发布第一个版本。 如果您有兴趣尽早使用此产品,请 在此处注册 。

PingCAP正在进行的另一个项目是TiDB学院,这是一组自定进度的动手实践课程,旨在帮助数据库管理员,开发人员和系统架构师了解TiDB的体系结构,设计选择,优势和取舍。 第一个课程“带有用于MySQL DBA的TiDB的分布式数据库”已准备好报名。 您可以在这里注册 。

如果您只是想尝试一下TiDB,请查看我们的《 TiDB快速入门指南》 。

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

-

新技术论坛提供了一个以前所未有的深度和广度探索和讨论新兴企业技术的场所。 选择是主观的,是基于我们选择的技术,我们认为这些技术对InfoWorld读者来说是重要的,也是他们最感兴趣的。 InfoWorld不接受发布的营销担保,并保留编辑所有贡献内容的权利。 将所有查询发送到 newtechforum@infoworld.com

翻译自: https://www.infoworld.com/article/3313327/how-tidb-combines-oltp-and-olap-in-a-distributed-database.html

tidb分布式数据库

tidb分布式数据库_TiDB如何在分布式数据库中结合OLTP和OLAP相关推荐

  1. 【大数据】OLTP和OLAP,数据库和数据仓库

    在接触大数据之前我们基本都是使用mysql数据库,这种定位为关系型的数据库主要是为了实时业务需要而建表,而在大数据中大多是以分析为主的,读多写少,且如果用传统的关系型数据库则经常会涉及到多表联合查询, ...

  2. 分布式数据库TiDB是如何结合OLTP和OLAP的?

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

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

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

  4. 分布式数据库实战第一节 分布式数据库的前世今生

    开篇词 吃透分布式数据库,提升职场竞争力 你好,我是高洪涛,前华为云技术专家.前当当网系统架构师和 Oracle DBA,也是 Apache ShardingSphere PMC 成员.作为创始团队核 ...

  5. 分布式数据库实战第六节 数据库中间件的研究

    21 知识串讲:如何取得性能和可扩展性的平衡? 这一讲我们来总结一下模块三.经过这个模块的学习,相信你已经对分布式数据库中分布式系统部分常见的技术有了深刻的理解.这是一节知识串讲的课,目的是帮助你将所 ...

  6. springboot mysql行锁_SpringBoot基于数据库实现简单的分布式锁

    本文介绍SpringBoot基于数据库实现简单的分布式锁. 1.简介 分布式锁的方式有很多种,通常方案有: 基于mysql数据库 基于redis 基于ZooKeeper 网上的实现方式有很多,本文主要 ...

  7. 分布式监控系统Zabbix3.2对数据库的连接数预警

    在前篇分布式监控系统Zabbix3.2监控数据库的连接数 中已经对数据库的端口3306进行了监控,可以看到数据库的连接数历史变化有高有低,那如果达到了数据库连接数的阀值是不是主动通知给运维人员去检查问 ...

  8. 分布式锁的实现方式——ACID数据库、缓存或者是zk

    针对分布式锁的实现,目前比较常用的有以下几种方案: 基于数据库实现分布式锁 基于缓存(redis,memcached,tair)实现分布式锁 基于Zookeeper实现分布式锁 在分析这几种实现方案之 ...

  9. OpenTSDB介绍——基于Hbase的分布式的,可伸缩的时间序列数据库,而Hbase本质是列存储...

    原文链接:http://www.jianshu.com/p/0bafd0168647 OpenTSDB介绍 1.1.OpenTSDB是什么?主要用途是什么? 官方文档这样描述:OpenTSDB is ...

  10. InfluxDB 开源分布式时序、事件和指标数据库

    from:https://segmentfault.com/a/1190000000444617 InfluxDB 开源分布式时序.事件和指标数据库 InfluxDB 是一个开源分布式时序.事件和指标 ...

最新文章

  1. tmux/screen里面如何用鼠标滚轮来卷动窗口内容
  2. MyBatis-20MyBatis高级结果映射【一对一映射(4种方式)】
  3. ubuntu ssh是否安装mysql_ubuntu的安装及ubuntu中安装mysql和tomcat
  4. 自然语言处理系列篇——关键词智能提取
  5. 别乱用,这样打日志定位 Bug 又快又准!
  6. 行内元素(HTML、CSS)
  7. python自定义函数名_使用自定义名称创建Python动态函数
  8. LLVM各种格式转换图
  9. 立潮头 筑根基 赢未来——ZDNS合作伙伴大会成功举办
  10. 【跨境电商】EDM邮件营销完整指南(二):如何开展EDM营销活动
  11. HTTP/HTTPS账号密码获取
  12. 快速保存微信文章中视频的方法
  13. 如何绘制好看的大脑皮层图?wb_view +fun.gii格式操作
  14. 6级20190601
  15. 随身WIFI折腾日记(一)---霓虹灯
  16. 测试环境搭建-5:设备的驱动程序未被安装解决方法
  17. python selenium自动化,Firefox自动下载文件以及浏览器相关配置
  18. 解决osm移动地图shp图层消失问题
  19. JavaScript代码题--以及一些奇奇怪怪的发现
  20. Spring Boot 启动报错:Caused by: java.lang.UnsupportedClassVersionError:

热门文章

  1. 输入阻抗、输出阻抗与阻抗匹配
  2. 如何听懂画外音-《用事实说话》:听懂“暗语”,让沟通透明化
  3. DDos防护系列之2--DDos防御策略
  4. 转速传感器隔离放大器输出信号隔离变送器正弦波转方波信号隔离器
  5. 计算摄影学基础知识(1)
  6. 高效能人士的七个习惯读后感与总结概括-(第三章)
  7. redis的hset hget mset mget是什么
  8. 程序员必备开发神器【MAC篇】
  9. 制作window11系统U盘启动盘
  10. 20200518 如何快速画出闭环特征方程的根轨迹