转载

【WOT2018】黄东旭:如何运用HTAP数据库帮到你?来听听TiDB的故事

【51CTO.com原创稿件】七年一剑,华丽蜕变。自2012年起连续6年15场峰会,凝聚大量技术专家,博观而约取,厚积而薄发。2018WOT全球软件与运维技术峰会5月18日扬帆起航,围绕12大核心热点,汇聚海内外60位一线专家,打造高端技术盛宴!

在5月18日下午的C会场“大数据处理技术”专场中,PingCAP联合创始人兼CTO黄东旭将带来精彩的分享。会前,51CTO记者有幸采访到他,针对HTAP数据库和TiDB进行了深入的交流。

【WOT2018】黄东旭:如何运用HTAP数据库帮到你?来听听TiDB的故事

PingCAP联合创始人兼CTO 黄东旭

创立PingCAP的理由异常简单

黄东旭提到,自己与朋友一同创业,理由很简单,源自一个需求。彼时,黄东旭与刘奇(现任PingCAP CEO)同属豌豆荚的分布式存储团队,当时的他们开源了Codis,解决了豌豆荚内部缓存的扩展性问题,数据库问题成了硬骨头。如何构建一个对业务端透明,兼具良好的扩展性和完整的分布式事务支持的数据库,是构建新一代微服务架构的核心问题之一。当时,团队在开源社区并没有找到比较好的方案,分库、分表、中间件,这些传统做法在涉及到业务大的改动时会带来很大的运维成本,如何彻底解决这个问题呢?

受当时Google发表的一系列在分布式数据库方面的论文(Spanner/F1)启发,PingCAP的初创团队打算从头开始实现一个新一代的关系型数据库,来解决关系型数据库的扩展性问题。由此看来,PingCAP创立的初衷很简单,就是几个工程师想要解决一个很困难的技术问题,同时想通过开源的方式帮到大家。

TiDB研发早期经历的那些事儿

在TiDB研发早期,从SQL层开始,第一个开源的TiDB版本其实并没有存储引擎,后端存储是HBase,为了加入存储层,也为了验证SQL的正确性,PingCAP团队决定为HBase加入分布式事务的支持,直接对接在TiDB SQL层的后端,这种方法确实可行。但是考虑到性能和其他一些因素,PingCAP很快决定用Rust重新实现一个全新的分布式存储层,也就是后来的TiKV。彼时Rust还是一门比较新的语言,且以学习曲线陡峭著称,整个团队成员都没有相关经验,好在得到了Rust语言官方的诸多支持,PingCAP和Rust语言共同成长了起来,如今,TiKV已经是Rust社区的明星项目,同时PingCAP也是多个知名项目(如gRPC 等)的Rust语言开源实现的主要维护者。黄东旭表示看到Rust语言越来越火,感到非常的高兴和欣慰。

PingCAP是国内首家开源的新型分布式数据库公司,其独立研发的分布式数据库产品TiDB是一款定位于HTAP(Hybrid Transactional/Analytical Processing)混合事务/分析处理数据库的融合、创新型数据库产品。为了实现这一目标,TiDB在架构上将计算和存储层进行高度的抽象和分离,对混合负载的场景通过IO优先级队列,智能副本调度,行列混合存储等技术使其变为可能。另外,在TiSpark项目中,将TiDB的存储层和Spark的计算引擎高效地连接在一起,让用户也能够在Spark生态系统下实时的对数据库中的数据进行复杂分析。

黄东旭认为,HTAP给开发者提供了一个实时数据分析方面的新思路,不需要再去维护另一个离线的数据仓库,既减轻了ETL的工作,又能节省很大一部分的建立数据仓库所用到的存储和计算成本,HTAP将是未来的重要趋势。

HTAP数据库的三类应用场景

一是大中台的场景。例如,前台的数据库已经分库分表或已水平拆分,TiDB可以作为所有线上生产库的从库,实时将数据同步到一个大的TiDB集群上,在这一层将数据打通,可以直接进行复杂的跨库、跨表、跨业务的实时SQL查询,由于这是基于MySQL的协议和语法,对业务的侵入性很小,开发者无需再去学习新的查询语法。

二是为微服务提供强一致的持久化数据层(the source of truth)。其实微服务乃至后来的Serverless架构,一个核心的问题就是持久化数据层,要将无状态的业务逻辑容器化、服务化很方便,但是带状态的存储层在满足SQL和强一致甚至ACID的情况下实现弹性伸缩,在现有的方案下仍十分困难,而TiDB可以完美的在这类架构中填补这一空白。

三是MySQL分库分表的完美替代品。TiDB与MySQL的语法、MySQL社区的工具(如Mydumper/PhpMyAdmin等)完美兼容,可让MySQL应用无需修改便可直接运行。这让很多用了MySQL的业务在遇到大数据量的场景时,能够无缝的切换。

TiDB解决MySQL可扩展性的实现原理

TiDB产品的整体架构是分层的,由分布式SQL层(TiDB)、分布式KV存储引擎(TiKV)以及管理整个集群的PD模块组成。无限水平扩展是TiDB的一大特点,这里所说的水平扩展包括两方面:计算能力和存储能力。TiDB Server负责处理SQL请求,随着业务的增长,可以通过简单的添加TiDB Server节点,在提升整体处理能力的同时,提供更高的吞吐能力。TiKV负责存储数据,随着数据量的增长,可以部署更多的TiKV Server节点,解决数据Scale的问题。PD会在TiKV节点之间以Region为单位进行调度,将部分数据迁移到新加的节点上。由此可见,企业在业务的早期可以只部署少量的服务实例,随着业务量的增长,能够便捷地按照需求添加TiKV或TiDB实例。

据介绍,目前,包括摩拜单车、同程旅游、饿了么、360金融、游族网络、今日头条、盖娅互娱、猿辅导、易果集团、去哪儿网等200余家不同行业的领先企业已经将TiDB应用在实际的生产环境中,涉及互联网、游戏、金融、政府、电信、制造业等多个领域。

其中,今日头条和易果集团都是比较典型的案例。

今日头条:用TiDB替换原有的主从MySQL数据库

以今日头条为例,今日头条APP的自研S3存储系统,数据量级已近上百亿。在用TiDB前,今日头条的元数据存在MySQL 2.8TB的磁盘里,因为数据量增长迅速,导致磁盘不够用,只能用分库分表的方案,当时的方案是MyCAT。但是分库分表带来一些问题,如:无法做OLAP分析;有丢数据的问题,数据虽然已经commit,实际并没有保存下来;还有连接的问题,有些业务没有带分片键的查询,会消耗非常多的连接,造成没有连接的情况。

如今,今日头条使用TiDB替换了原有的主从MySQL数据库,上线后效果非常明显:

  • TiDB支撑着今日头条OLTP系统里数据流量较大、QPS较高的场景。例如今日头条、抖音;
  • QPS一直在上升,目前均值十几万;
  • 已经稳定运行近半年,做过一次扩容。

典型OLTP+OLAP混合场景案例

易果集团是一个典型的OLTP+OLAP混合场景的案例。在上线TiDB之前,易果集团的实时系统已经遇到了瓶颈:

  • SQL Server当数据量到达一定阶段,性能出现拐点,弹性扩展很难实现;
  • HDFS+Hive+Spark+Presto+Kylin方案在数据量增大的情况下,ETL越来越慢,很难满足更复杂的OLAP需求,与此同时,业务对实时或者准实时的需求越来越强烈。

通过对Greenplum、Kudu、TiDB等多个方案的选型评估,最终易果集团选择了TiDB的方案:使用Flume、Syncer数据实时同步到TiDB,并使用TiSpark替换Hadoop进行实时数仓业务。目前,在TiDB的支持下,易果集团T+1数仓已升级为实时数仓,TiDB天然的满足了数据量线性扩展的问题,同时还节省了大量的运维成本。TiDB作为一款HTAP数据库,为易果集团创建实时、统一的混合数据库提供了可能。

基础软件选择开源社区战略更加适宜

最后,黄东旭表示,开源是一种非常先进的软件开发模式和推广模式,对于基础软件来说,开源是一种很重要的手段。他引用了开源社区里流传甚广的一句话:只要眼睛足够多,Bug无处藏。从这个逻辑的角度来看,对于基础软件来说,用户越多,使用场景越多,见过的Workload越多,得到相应的反馈越多,这些来自一线的反馈能够更好的让你看清方向和产品存在的缺陷,更快的迭代以达到更加完美的状态,避免闭门造车;另外一方面,社区和生态会成为你最大的护城河,从而构建真正的商业壁垒。黄东旭总结,PingCAP这几年发展的如此之快,与他选择了开源的战略密不可分。

5月18-19日,北京•粤财JW万豪酒店,全球最值得关注的IT技术盛宴与您不见不散。2018WOT全球软件与运维技术峰会一定是您发现全新思路、挖掘最新思想、拓展人脉的重要平台。

目前我们的各项票种已全面发售。需要提醒您的是,购票越早,折扣越大!与KOL零距离交流,呈现不一样的“英雄盛宴”!

点击官网了解详情:wot.51cto.com

【WOT2018】黄东旭:如何运用HTAP数据库帮到你?来听听TiDB的故事

9折预售中,抢票从速。

【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】

【责任编辑:查士加 TEL:(010)68476606】

原文  http://bigdata.51cto.com/art/201804/571243.htm
正文到此结束
Loading...