将数据库性能提升100倍 大数据时代中,一位数据库老兵的创新之路
当前构建大数据应用的难点是什么?对于这个问题,相信很多资深从业者都会回答:海量数据的高效处理与运维。在大数据时代中,它是数据库行业面临的基础性问题,如何将它解决?既是挑战,也是机遇。
在无数数据库行业的老将新兵中,我们注意到一批力图解决大数据语境下,数据库使用和运维难题的“引路人”。今天,InfoQ的专访对象---姚延栋,正是这批大数据“引路人”中的一个。
作为Greenplum的第三号员工,在过去十年间,姚延栋曾带领团队将Greenplum打造成为世界排名第三的分析型数据库,创下由华人主导的数据库产品最好排名。而在数据库领域从业数十年后,他又选择开启自己的 创业 之旅,与两位合伙人共同创办了一家名为四维纵横的数据库公司。那么,他为什么在这个时间点选择创业?当传统行业的数字化转型成为大势所趋,数据库领域又发生了什么新故事?我们带着这些问题,同四维纵横创始人姚延栋一起聊聊数据库的过去与未来,挑战与机遇。
行业中存在一种思维惯性
“创业是为了打破行业的惯性。”
“如果把数据库领域比作一个大森林,那么我们就是对地形非常熟悉的原住民。当有人想穿过大森林,却不知该走哪条路的时候,我们就充当“引路人”来帮助他们穿过森林。倘若没有我们,那他们可能会按照自己的惯性去走。”
姚延栋在Greenplum效力的十年期间,最初主要从外围模块入手打造产品,后来逐步向核心迈进,打磨内核模块,直到团队驾驭整个数据库内核,他坦言这与农村包围城市的过程十分类似。在此期间,他发现行业中存在一种惯性思维,而创业的目的就是为了打破这种惯性。
那么,这个惯性到底指的是什么?
以时序场景为例,现在业内普遍流行使用专用的时序数据库,典型的代表产品有InfluxDB、OpenTSDB 等,而与此同时,几乎所有场景都需要关系型数据库。这样一来,大家就不得不引入多个数据库产品,使得技术栈以及监控运维变得十分复杂。
虽然专用时序数据库在一定程度上满足了业务对于时序处理的需求,但也存在诸多问题,其中性能低、扩展性差的问题尤为显著。过去时序数据库大多是为数据中心的服务器监控、埋点数据处理等简单场景设计的,所以,其无法为物联网等场景下的大量数据源和大量指标提供支持。除此之外,开发效率低、需要MPP数据库或者大数据产品配合以及数据孤岛化等方面,都是摆在从业者面前的难题。
应运而生的超融合时序数据库
“我一直把数据库的技术演进和生物界的进化类比去看。”
从上世纪60年代诞生起,数据库技术就一直在不断地演进、迭代,其背后主要是两股力量在推动:一股力量是性能问题,另一股力量是效率问题。
上世纪七八十年代,关系型数据库开始独步天下,从业者主要是基于关系型数据库来高效存储和处理应用开发中用到的数据;到了2000年左右,数据规模大幅增长,而大数据处理技术尚未展露雏形,整个社会对于浩瀚信息的处理仍处于比较迷茫的阶段,以至于技术的迭代速度赶不上数据增长的速度。自此,大数据处理的性能问题开始显现,数据库领域随之出现了时序数据库、KV数据库、文档数据库等专用数据库,以期解决性能从0到1的问题。但由于应用要与多个数据库沟通,从多个数据库读取数据到应用程序内存中再进行关联、聚集以及合并等计算,很多数据处理逻辑被迫只能放在应用中,开发和运维效率就不可避免地大打折扣。
如此一来,为了解决效率问题,行业中又出现了Presto等类型的产品,即在专用的数据库上封装一个查询引擎,试图把数据处理逻辑从应用处理逻辑中剥离出来。这种方式虽然在一定程度上解决了开发效率问题,但性能仍是短板,且并未从根本上解决技术栈复杂的问题。
我们可以看到,在进化了近50年后,现有的数据库技术已经不能满足从业者的需求 --- 他们需要更加简单易用、省心省力的数据库。在这样的背景下,为了能给用户提供简单易用的接口,真正实现数据平民化,姚延栋和他的团队将关系数据库、时序数据库和分析数据库融合在同一个数据库产品中,打造了全球唯一一款PB级超融合时序数据库--MatrixDB。
超融合时序数据库解决了什么问题?
目前,超融合时序数据库主要应用在两大场景:第一,时序、时空场景,通常是物联网、工业 互联网 、车联网和智慧城市等领域;第二,实时数据分析场景。
谈到时序、时空场景,姚延栋分享了一个海量设备、大量存储的典型物联网场景。“以一家做光纤和5G通讯设备的国际制造商为例,这家制造商大概有1000万设备,每台设备每次都会采集300个指标数据,每次共计需要采集30亿指标。”基于这种情况下,MatrixDB实现了超大规模数据的实时加载特性,在保证低延迟和高并发加载的同时,也减轻了系统资源消耗,充分将 快速采集、高效存储 的特性显示了出来,使得海量数据的存储问题、秒级采集的频率要求都能得到完美的解决。
在 实时分析 的特性方面,姚延栋又给出了另一个案例:在一个实时数据分析的业务中,MatrixDB可以实现对IT运营域和OT生产域的数据收集,通过ETL/CDC和物联网协议插入数据以后,便能将两张网的数据整合在一起,使得公司的全部数据一目了然地展现。当企业再基于这些数据进行分析时,就能得到更加精准且全面的结论。
我们还注意到了MatrixDB的另一个重要特性—— 模块化和可插拔 。专用时序数据库通常包含存储器和简单的执行器,没有优化器和并发控制等关系数据库经典组件。从本质上来看,它是把存储器“做成”了数据库,以此来解决一个特定的问题。 而超融合时序数据库则是把存储器“做进”数据库,通过把各个核心功能做到模块化、可插拔,在一个关系数据库内部同时实现多种存储引擎,以及跨存储表关联和ACID。 比如有200张表,其中190张是关系型数据,这部分可以使用关系引擎存储;剩余10张是时序数据,就可以使用时序引擎存储,且它们可以相互关联。
与传统的关系数据库+专用时序数据库相结合的架构相比,通过支持多种存储引擎,超融合时序数据库可以让性能快10-100倍,同时大幅降低成本,提升开发运维效率。
令人惊喜的是,除了快速采集、高效存储、实时分析以及模块化和可插拔特性以外,我们注意到MatrixDB作为一款数据库产品,还提供了机器学习的能力。 随着人工智能技术的飞速发展,In-Database Machine Learning成为一个值得关注的方向,将机器学习的算法内置到数据库将逐渐成为主流。一方面,借助分布式数据库的并行计算能力,可以使计算速度超越单机;另一方面,由于单机上的内存有限,在数据量很大的情况下,只能抽样进行训练,模型精度就会变差。通过In-Database Machine Learning模式,就能实现在全量数据上训练,模型精度也将得到进一步提高。
“过去从业者需要自己写程序才能实现机器学习。”这是姚延栋提到的一个现象,并表示这其中的技术门槛比较高。“目前,MatrixDB数据库通过直接提供SQL接口,大大降低了机器学习的门槛,能够在一定程度上缓解人才稀缺的问题”。
下一步怎么走?
“未来我们会继续在性能和效率两个维度持续发力,并沿着更智能的方向去发展。” 落实到具体的业务层面,姚延栋表示会在提升易用性、构建生态两个方面重点发力。
众所周知,数据库运维对于从业者来说是一个很大的挑战,也因此衍生出了数据库运维这个行业。尤其在分布式数据库环境中,节点数量多以及需求多样化的特点,使得运维的难度更是大幅增加。姚延栋表示:“今后,我们将继续致力于降低数据库的使用门槛,使数据库有能力提供自动性能调优、健康检查等功能。”
在构建生态的方面,他也给出了更高层面的考虑。数据库是基础软件,没有人能够只使用数据库就解决业务问题,必须与很多周边产品搭配,才能发挥真正的价值。因此,对于数据库产品来说,生态的重要性不言而喻。“如果没有生态,我们相当于把复杂度问题扔给了用户,联合行业内上下游共建生态是我们接下来的方向”。
"数据库能定义未来记忆。" 由于MatrixDB数据库更多应用于物联网、车联网、工业互联网和智慧生活等场景,姚延栋也与InfoQ谈到了他对于万物互联时代中数据库的理解,万物互联的目的是为了更智能化,而智能的前提是基于记忆,但事物本身是没有记忆能力的,如风力发电机、智能手环等等。“未来我们希望通过超融合时序数据库,赋予一些没有记忆能力的设备以记忆,为智能衍生出更多的可能性。”
万物互联时代的智能化到底会是什么样?这个问题还未有定论,仍然需要等待技术随着时代不断演进,不断进化才能得到答案。但可以肯定的是,在这之前先建立起事物的记忆能力,能够为不远的智能化时代奠定基础。
谈及数据库和四维纵横的未来,姚延栋希望能够让数据处理简单到像用电、用气、用水一样,把MatrixDB数据库打造成一个真正的一站式数据处理平台,让从业者在进行数据处理时,不再需要关心底层的数据存储以及计算的复杂性。这是四维纵横正在探索的方向,也是行业共同努力的终极目标。