BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

NewSQL能给用户带来哪些价值?
录制于:

| 受访者 黄东旭 关注 4 他的粉丝 作者 Qcon 关注 0 他的粉丝 发布于 2017年11月20日 | QCon北京2018全面起航:开启与Netflix、微软、ThoughtWorks等公司的技术创新之路!
13:31

个人简介 黄东旭,PingCAP创始人兼CTO ,资深基础软件程师,擅长分布式存储系统的设计与实现,开源狂热分子,著名的开源分布式缓存服务 Codis 的作者。

全球架构师峰会(International Architect Summit,下简称ArchSummit)是由InfoQ中文站主办的一次全球性架构师峰会。ArchSummit专门针对架构师人群,讲述与架构和架构师相关的各方面趋势、技术和案例。这也是继QCon之后,InfoQ中文站主办的又一次高端技术盛会。

   

2. 黄老师也是我们的老朋友了,今天我们来聊一聊 NewSQL,首先第一个问题是,如何看待 NewSQL?它具体指的是哪一类数据库,从目前来看,它的定义清晰了吗?

黄东旭:现在行业里面有很多数据库都说自己是 NewSQL,我谈一下我自己的理解吧,我认为 NewSQL 是什么呢?首先它必须得是一个能够支持弹性伸缩的这种大规模的分布式存储方案,另外一方面还有一个很重要的特征,它得必须有一个比较完整的 SQL 层的支持,而并不是简单的实现一个很小范围的 SQL 的方言就叫自己 NewSQL。我觉得有几个特点:首先它需要有分布式强一致的事务的支持;第二,就是它能支持 JOIN/GROUP BY这些比较复杂的 SQL 的查询能力;第三就是它的扩展性,要有一个弹性伸缩的扩展能力,它可以伸也可以缩;另外一方面就是在集群规模比较大的环境之下,不管是错误恢复也好,还是可用性也好,基本都是可以做到高可用的状态,不需要人去过多的介入。这个才是我认为的 NewSQL 的定义,可能有点严格。

   

3. NewSQL 从诞生和推广以来,您觉得哪个公司和哪个人它的贡献会比较大,您所知道的有大规模的应用了 NewSQL 的公司有哪些?

黄东旭:说到贡献最大,肯定就是 Google 了。我觉得 NewSQL 的诞生,就是由Google 的几篇论文而来,比如:2012 年底的那篇 Spanner,与 2013 年的F1 这两篇论文,让业界第一次看到了把分布式存储系统跟 SQL 的关系模型这么完美的融合在一起的一个可行性方案,我们的项目也是受到 Google 论文的启发,然后才有了现在我们 TiDB 跟 TiKV 项目。我觉得对整个业界影响比较大的公司和系统,就是 Google 和 Google Spanner,这两个是我认为的最成熟,或者说对业界影响最大的 NewSQL 的系统。本身 Spanner 也是一个很好的业界大规模在使用的案例,Google 它内部大规模的在使用Spanner 这个系统来去支撑它的无数条 Google 的产品线,所以我觉得本身Spanner 也是一个很好的应用,包括最近 Spanner 也上到了 Google 的 Cloud 的云平台,未来会越来越好。所以,影响最大的公司就是 Google。

   

4. 相对于传统的关系型数据库和 NoSQL,NewSQL 能为用户带来哪些价值?

黄东旭:首先我觉得 NoSQL 是数据存储这么些年发展的一个过渡的方案,当然现在可能像很多特定的场景,你用 NoSQL 的这个模型还是能解决很多问题,比如像 Redis,像 MongoDB,在他们各自领域里面也有很好的应用。但是它的适用范围,并没有 SQL 或者关系模型这么灵活、适用范围这么广,而且过去以来很长一段时间,大家已有的很多业务都是基于这种关系数据库,如 MySQL、Oracle 这样的 SQL 的 DataBase 来开发的,但是随着数据量越来越大,并发也越来越大,如果有一个系统,能让用户还是以写 SQL 的方式去操作数据,同时又能拥有像 NoSQL 这样的水平伸缩的扩展性和可用性,开发者的工作就会变得非常轻松,解放了很多的生产力,让大家能够专注于去开发自己的业务逻辑。因为 NoSQL 的编程的接口还是比较裸的,比如说 Key Value 这样的模型,你要去写对一个比较挺复杂的逻辑,比如一些 JOIN、一些复杂的查询还是挺复杂的。所以我觉得 NewSQL 的诞生,是历史的一个螺旋的发展的体现,就是现在关系模型又跟分布式,或者NoSQL 的这个思想融合在一起,催生出了一个更好用的、更加易用的、更加通用的一种大数据的存储方案。

   

5. 那您认为 NoSQL 将来会消失吗,或者说被 NewSQL 所取代吗?

黄东旭:我觉得可能会消失,但是有些垂直领域,比如像缓存,文档型数据库,他可能还会持续的存在。但是从长远上来看,我觉得 SQL 的接口是未来对外编程接口的存储标准。在未来不会再有一个没有 SQL 的一个 NoSQL 系统会取得很大的成功,这是我个人的一些看法。

   

6. 你认为初创公司是否有必要一开始就使用 NewSQL?

黄东旭:我并不建议初创公司一上来就采用这些非常炫酷的方案,我还是更推崇小步快跑的状态,在早期比如同样是写业务,用 MySQL,或者用一些现成的开源方案,先把你的业务给跑通,然后等数据量大到一定程度,且你的业务验证已经成功了,这时候再去对你的存储系统、业务系统做改造,你可以认为 NewSQL 是给这样的改造提供了一个无痛的进化路线。在过去,大家处于一个小的创业公司期间,没这么大数据量,可能用了 MySQL,但是后来你的业务蓬勃发展,发现 MySQL 扛不住了,以往大家都只能伤筋动骨去分库分表,或者去换到重写整个业务,重写到 NoSQL 上面,但是有了 NewSQL 像 TiDB 这样的系统以后,你很多的业务就不需要这么痛苦的重写,你直接把底下的数据库一换,甚至你完全不用改一行代码,就能支撑你的业务。所以我觉得早期就快速用 MySQL,或者用现有的 SQL 系统去支撑你的业务是最重要的。

   

7. 这是否意味着 NewSQL 它的部署相对于传统的一些数据库来说,很复杂呢?

黄东旭:首先分布式系统,它本身就会有一个比较大的复杂性在里面,我们其实也在通过一些更新的技术去解决这个问题,比如说我们在尝试跟Kubernetes 这种云的技术做一个比较好的整合,能让用户的部署、滚动升级,这些运维变得更加的自动化,但是复杂性还是存在的,它肯定是不如一个单机系统这么 state for world,但是我们也在尽量的让这个系统变得更加智能,更加自动化,这个也是未来数据库发展的一个新的方向,跟云的整合。

   

8. 下一个问题是,NewSQL 现在它有哪些代表性的数据库实现,包括 TiDB,它的优势是什么?

黄东旭:代表性的实现当然是 TiDB 了。它主要的优势,首先 TiDB 对外的编程接口就是 MySQL,我们实现了从网络协议到语法层,整个 parser 都兼容了MySQL 的语法,如果你的业务已经依赖了 MySQL,但是遇到了这种扩展性问题的时候,你可以直接去使用 TiDB 直接换,直接去能支撑弹性伸缩的能力,所以兼容性是一个很大的亮点;另外 TiDB 本身是拥有高可用能力,是拥有水平弹性扩展能力的数据库,所以数据容量、吞吐的问题也不需要业务端去做更多的考虑;它也是支持强一致的分布式事务,在业务层也是能够透明的去把它当个单机数据库去使用,但是它本身是个扩展性的方案。

   

9. 咱们再谈一下 PingCAP 公司,在过去这段时间,应该是前段时间获得一个非常大的融资了,它最近主要研发重点是什么?

黄东旭:我们是刚刚结束了我们的 B 轮,是1500万美金,资本圈对我们也是一致的看好。我们还是以技术为出发点的公司,最近的研发重点还是稳定性,性能,还有周边的一系列跟云整合的这些工作,反正比较专注,然后在数据库内核的这个层面上,还有跟公有云厂商合作也在紧密的推进,很快大家也会在一些公有云上能用到 TiDB。从公司层面上,我们是会有计划去海外开始做更多的布局,毕竟技术不分国界,我们觉得一个好的项目不比硅谷的差,还是希望以能够变成一个更加国际化的著名的开源项目为目标。

   

10. 在 Go 生态圈里面,大家对 TiDB 的发展情况非常关注,能请您介绍一下TiDB的发展情况,主要做了哪些改进?未来有哪些计划?

黄东旭:也很感谢 Go 社区的朋友,TiDB 一大半的代码也是用 Go 语言开发的。首先 Go 是个非常好的编程语言,我们最近在 TiDB 这个层面上,一是开始去兼容文档型的 schema list 这种存储,就是有点像 MongoDB 这样的编程接口;另外一个比较大的特性就是,我们支持了 SparkSQL,大家以后可以直接用 Spark 的 SQL 去在 TiDB 的存储上做一个复杂的 OLAP 分析的操作,相当于一份存储,一边可以用 MySQL 的文法去实时的写入数据,同时可以用 SparkSQL 去做大数据分析,所以还是比较有野心的。同时我们也在探索在新型的硬件上的一些优化,包括像 NVM 的 SSD,还有 FPGA 上的这些,想尝试把一些算法用一些更新的硬件来做实现;在存储层面上现在越来越多的用户使用 TiDB 其实是做数据仓库,或者分析的场景,对于这种场景,我们也在调研底层的存储引擎,变成行列混合式的这种存储,能够更大的提升 TiDB 本身的数据分析能力,就是技术上的一个 RoadMap。

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT