他是一个不折不扣的“架构老司机”,早在2010年的时候就曾参加过IT168举办的系统架构师大会,可以说是我们的老朋友。他还是一个“技术痴狂”,曾在我们的技术大会现场修改了自己的演讲PPT,只为同现场的技术人展示更多的核心技术论。这就是DTCC2017数据库技术大会开幕前接受笔者专访的演讲嘉宾,百度大数据部资深工程师/大数据主任架构师——马如悦。
马如悦, 目前在百度负责大数据平台的架构。主要的工作包括离线处理平台,在线数据服务。在线数据服务包括3个系统,一个叫做SimpleDB,是偏高性能数据服务的NoSQL系统;一个是偏大规模数据分析的OLAP数据库叫Palo;还有一个就是这次他即将为我们带来解析的最主要TDB,是偏大规模事物处理的OLTP数据库。
我们都知道像百度这样的大型互联网公司往往拥有海量的用户,用户每天产生的海量数据必须有一个大数据平台做支撑。据马如悦介绍,百度当前有两大平台,一个大数据平台,一个机器学习平台。
马如悦告诉笔者,百度大数据平台利用hadoop、spark等类似技术,主要做数据收集和预处理。就是通过adhoc分析,报表产出等这些任务,包括batch/Stream 离线处理部分和在线数据服务部分。它独特之处就是不用大量开源组件堆砌,而是对各个组件进行定制,集成,形成一个易用的大数据架构解决方案。这就类似于我们提供给用户的是苹果手机,而不是cpu,内存,磁盘的一堆组件集合。机器学习平台是百度统一的机器学习训练和预测平台。这套平台实现了机器学习算法,深度学习算法的大规模分布式实现,对GPU和FPGA等的加速支持。同时这个平台也对类似语音,图像,自然语言处理等领域提供各种高层库的支持。
技术趋势前提是用户简单使用
谈到最近关注的技术,马如悦说他目前关注两个领域:一个是大数据系统和机器学习系统领域的离线系统集成产品;一个是包括偏OLAP和偏OLTP领域的大规模数据库系统。
他讲到,离线数据处理和分析系统,需要集成性产品,类似于传统的解决方案提供商。当前的大数据系统和机器学习系统,百花齐放,各类组件繁多,每个公司要实施这些系统,都需要部署多达一二十种组件。如何让用户简单的使用,不关心各个组件的部署和维护,使得使用多个组件的集合像一个系统一样,这个是我认为未来的一个技术趋势。正如很久前大家都会去中关村淘选零件自己装机一样,而现在多数都会选购品牌机,组装机的日子一去不返。又如大家看到各种android机,用的零件都是差不多,为什么有的卖得好,有的则不然,这就是看哪个厂家的集成能力强了。做集成产品也是传统商业系统厂商的长处,而我们当前使用的大量开源系统在这个方面做得还是不够好。在和其它公司合作大数据系统时,大家的需求也都是一个更好用的大数据解决方案,或者一个好的集成系统。
另外,马如悦还在关注数据库领域的在线数据系统。在实际中,业务系统一般会用两个,一个是偏OLAP分析的,一个是偏OLTP的。他认为当前这两个领域都没有好的项目,要么是针对传统数据库的不断改进优化,要么是各种NoSQL系统系数登场。各种浮夸的宣传和无意义的跑分,着实让一线选型人员头疼。而实践中,各种系统又问题频出,远达不到各自宣传的那样。所以,在数据库领域,未来一定会吸引更多的公司投入。
数据库领域改朝换代的机会来了
随着马如悦分析的技术趋势,笔者问到近期行业内热议的“商业数据库已死”这个问题,马如悦是如何看待的呢?他这样告诉笔者他的观点“当前传统数据库还未死,因为新式数据库还未成熟的原因。但是随着对数据库领域的投入增多,未来商业数据库份额定会越来越小。这个毋庸置疑。”这个趋势在互联网公司会先流行起来然后蔓延到传统产业。这对于数据库领域的从业者来说是打好机会。互联网产业迫切的需要新式数据库来解决种种问题,大量的传统企业纷纷进行互联网化也加速了新式数据库的成熟。
企业怎样选择存储系统
众所周知,Hadoop的HDFS一直是比较受欢迎的分布式文件系统。不少人认为HDFS应该朝着实现Posix文件系统发展,而对象存储朝着类似NoSQL方向,对于这个判断马如悦并不赞同。他说“在百度这么多年的实际实践中发现,基本没有任何业务需求需要Posix文件系统这种语义,而HDFS遇到更多的是高可用扩展问题、大量小文件支持问题。而对象存储也逐渐需要一些目录树的支持,以便更好的支持各种计算系统。所以这两者未来必定会融合,他们之间的差异并不足以支撑两套系统的独立存在。”
对于企业面临的选择问题,马如悦给出建议:在解决问题时,不要纠结于名词,纠结别人设置的条框。实践出真知,在实践中往往可以解决问题,这就是最好的方案。从分布式存储系统迁移至对象存储系统,相当容易。当前使用HDFS多简单的原因是没有一套成熟的开源对象存储系统。
写在最后
随着分析系统的成熟,百度一直研发的偏分析系统已经逐渐成熟。随着互联网趋势的要求,在OLTP领域,在线事务处理需求量变大,原来一直依赖的是OldSQL,OldSQL++, 或者 NoSQL 来应对,比如 MySQL, 或者支持分库分表的分布式 MySQL解决方案,类似 MongoDB, HBase 等 NoSQL 系统,当前各个系统都在某个领域解决得很好,但是都存在各种或多或少的问题,更为重要的是,业务系统无法简单的使用一套系统来解决大部分问题。对于在线业务,多套系统的联合部署使用,不但影响上层业务开发效率,就是部署、维护、调优和学习这些系统,都是非常大的障碍。而商业 OLTP 数据库,由于很多都是面向过去,传统产业进行设计,而没有考虑到如今互联网带来的对数据库的很多技术冲击,比如24*7在线的要求,异地多活的需求,还有高效的 online schema changing,还有高并发高性能的需求,这些在传统数据库中考虑都是有限的。
在即将开幕的DTCC2017数据库技术大会上,马如悦将为参会者带来主题演讲《百度NewSQL数据库系统》。主要向大家介绍百度在NewSQL领域的最新工作。希望这个分享为那些奋战在OldSQL 领域和 NoSQL 领域的同学们带来一些 NewSQL 领域的思维,让大家多多关注这个领域,大家共同把这个领域做好。让我们共同期待着一场干货的到来。