【.com原稿】2018年5月18-19日,由公司主办的全球软件与运维技术峰会召开在北京。峰会围绕人工智能、大数据、物联网、区块链等12个核心热点,汇聚了60位海内外一线专家。错过平台。在“大数据处理技术”分论坛中,PingCAPCTO黄东旭以《How can HTAP help you:A TiDB Story》为主题进行了精彩分享。TiDB是一个开源的分布式HTAP(HybridTransactional/AnalyticalProcessing)数据库,同时提供MySQL和SparkSQL接口。黄东旭在演讲中介绍,TiDB作为HTAP数据库,不仅以高性能实现了OLTP特性,还提供了基于实时交易数据的实时业务分析需求。他分享了TiDB的设计思路、实际应用场景,以及部署和运行TiDB集群的最佳实践。PingCAPCTO黄东旭如今,硬件的性价比越来越高,网络传输速度越来越快,数据库分层的趋势逐渐显现。人们不再坚持用一种方案解决所有的存储问题,而是通过分层,让缓存和数据库负责各自擅长的业务场景。黄东旭提到,当前的数据库领域面临着各种问题,比如扩展性、一致性、大数据分析、与云基础设施的集成等。现有的数据库解决方案和大数据分析引擎解决方案基本处于碎片化状态,因为Oracle和MySQL数据库并不是为分布式环境设计的,即使是通过分库分表的方式在数据库层面进行分片或者说中间件,本质上只是复制相同的栈,而不是针对分布式系统进行存储和计算优化,这才是跨业务查询或者跨物理机查询写入非常繁琐的本质原因。NoSQL虽然解决了数据库弹性扩展的问题,但是放弃了数据的强一致性和对ACID事务的支持,带来了新的问题。为了解决这个问题,TiDB在架构上对计算层和存储层进行了高度抽象和分离,通过IO优先级队列、智能副本调度、行列混合存储等技术让混合负载的场景成为可能。TiDB作为一个开源的分布式关系型数据库,其特点是几乎100%兼容MySQL的接口,以及MySQL的语法和协议。在保证ACID事务不丢失的前提下,可以弹性伸缩,高可用,可以同时处理OLTP和OLAP工作负载,不再需要ETL。TiDB整体架构图TiDB产品的整体架构是高度分层的,由分布式SQL层(TiDB)、分布式KV存储引擎(TiKV)和管理整个集群的PD模块组成。***水平扩展是TiDB的一大特点。这里所说的横向扩展包括两个方面:计算能力和存储能力。HTAP为开发者提供了一种实时数据分析的新思路,无需维护另外一个离线数仓,不仅减少了ETL的工作量,还节省了很大一部分用于构建数仓的存储和计算成本,HTAP将是未来的一个重要趋势。黄东旭介绍了TiDB的四个主要应用场景,一是MySQL的分片合并;另一种是直接替换MySQL;第三个用作数据仓库;第四个用作其他系统的模块。用例1:MySQL分片和合并SyncerTiDB应用程序最常见的场景是MySQL分片和合并。对于已经使用MySQL的业务,分库、分表、分片、中间件是常用的方式。随着分片的增加,跨分片查询是个大问题。TiDB在业务层兼容MySQL访问协议。PingCAP打造了一个数据同步工具——Syncer,可以将TiDB作为MySQLSlave,连接TiDB作为MySQL主库后面已有数据库的从库。第一层连接数据,可以直接进行复杂的跨库、跨表、跨业务的实时SQL查询。黄东旭提到,“以前数据库都是一主多从,有了TiDB,可以反过来实现多主一从。”Usecase2:直接替换MySQL第二类场景是直接用TiDB替换MySQL。如果你的IT架构在建设之初没有考虑分库分表的问题,全部使用MySQL。随着业务的快速增长,海量高并发的OLTP场景越来越多。如何解决架构的缺点?在TiDB数据库上,所有的业务场景都不需要分库分表,所有的分布式工作都由数据库层完成。TiDB兼容MySQL协议,可以直接替代MySQL,基本开箱即用。无需担心传统分库分表方案带来的繁重的工作量和复杂的维护成本。友好的用户界面使常规技术人员可以高效地进行维护和管理。此外,TiDB具有与NoSQL相同的扩展能力,在数据量和访问流量持续增长,响应时延稳定的情况下,可以通过横向扩展提升系统的业务支撑能力。黄东旭在演讲中提到了摩拜单车的案例。摩拜单车早期的数据库都是用的MySQL。随着业务的快速增长,MySQL的劣势逐渐显现出来。摩拜从2017年初开始用TiDB替换MySQL。如今,摩拜的IT系统中已经部署了多套TiDB集群,近百个节点,承载着数十TB的各类数据。用例3:数据仓库TiDB本身是一个分布式系统。第三种使用场景是使用TiDB作为数据仓库。TPC-H是数据分析领域的测试集。TiDB2.0在OLAP场景下的性能有了很大的提升。一些只能在数据仓库中运行的复杂查询,在TiDB2.0中也可以运行,而且时间基本可以控制。10秒内。当然,因为OLAP的范围非常大,TiDB的SQL也是不确定的。为此,PingCAP开源了TiSpark。TiSpark是一个Spark插件。用户可以直接使用SparkSQL对TiKV进行实时大数据分析。Usecase4:作为其他系统的模块,TiDB是一个传统的存储和计算分离的项目。其底层Key-Value层可以单独作为HBase的替代品使用,同时支持跨行事务。TiDB对外提供了两种API接口,一种是ACIDTransactionAPI,用于支持跨行事务;另一种是RawAPI,可以做单行事务换取整体性能的提升,但不提供ACID对跨行事务的支持。用户可以根据自己的需要在两种API之间进行选择。比如一些用户直接在TiKV之上实现了Redis协议,将TiKV替换成一些对大容量、低延迟需求的Redis场景。待解决的问题***,黄东旭提到了数据库领域尚未解决的三大问题:1.多租户:比如整个集群云化之后,IO隔离还有很大的问题.如何让数据层更高效?有效的资源隔离和重用是一个问题。2、真正的自主性:数据库能否具有真正的智能,如自我维护、自我修复、自我性能调优。3、如何使用新硬件:如何使用NvmeSSD、PersistentMemory、GPU、FPGA等,软硬件结合,利用新时代的硬件提高数据库的稳定性。以上内容是记者根据PingCAPCTO黄东旭在WOT2018全球软件与运维技术峰会上的演讲内容整理而成。更多WOT资讯请关注51cto.com。【原创稿件,合作网站转载请注明原作者和出处为.com】
