HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

将数据库性能提升 100 倍?大数据时代中,一位数据库老兵的创新之路

  • 2021-07-08
  • 本文字数:3511 字

    阅读完需:约 12 分钟

将数据库性能提升100倍?大数据时代中,一位数据库老兵的创新之路

当前构建大数据应用的难点是什么?对于这个问题,相信很多资深从业者都会回答:海量数据的高效处理与运维。在大数据时代中,它是数据库行业面临的基础性问题,如何将它解决?既是挑战,也是机遇。


在无数数据库行业的老将新兵中,我们注意到一批力图解决大数据语境下,数据库使用和运维难题的“引路人”。今天,InfoQ 的专访对象 --- 姚延栋,正是这批大数据“引路人”中的一个。


作为 Greenplum 的第三号员工,在过去十年间,姚延栋曾带领团队将 Greenplum 打造成为世界排名第三的分析型数据库,创下由华人主导的数据库产品最好排名。而在数据库领域从业数十年后,他又选择开启自己的创业之旅,与两位合伙人共同创办了一家名为四维纵横的数据库公司。那么,他为什么在这个时间点选择创业?当传统行业的数字化转型成为大势所趋,数据库领域又发生了什么新故事?我们带着这些问题,同四维纵横创始人姚延栋一起聊聊数据库的过去与未来,挑战与机遇。

行业中存在一种思维惯性


“创业是为了打破行业的惯性。”


“如果把数据库领域比作一个大森林,那么我们就是对地形非常熟悉的原住民。当有人想穿过大森林,却不知该走哪条路的时候,我们就充当‘引路人’来帮助他们穿过森林。倘若没有我们,那他们可能会按照自己的惯性去走。”


姚延栋在 Greenplum 效力的十年期间,最初主要从外围模块入手打造产品,后来逐步向核心迈进,打磨内核模块,直到团队驾驭整个数据库内核,他坦言这与农村包围城市的过程十分类似。在此期间,他发现行业中存在一种惯性思维,而创业就是为了打破这种惯性。


那么,这个惯性到底指的是什么?


以时序场景为例,现在业内普遍流行使用专用的时序数据库,典型的代表产品有 InfluxDBOpenTSDB 等,而与此同时,几乎所有场景都需要关系型数据库。这样一来,大家就不得不引入多个数据库产品,使得技术栈以及监控运维变得十分复杂。


虽然专用时序数据库在一定程度上满足了业务对于时序处理的需求,但也存在诸多问题,其中性能低、扩展性差的问题尤为显著。过去时序数据库大多是为数据中心的服务器监控、埋点数据处理等简单场景设计的,所以,其无法为物联网等场景下的大量数据源和大量指标提供支持。除此之外,开发效率低、需要 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 数据库打造成一个真正的一站式数据处理平台,让从业者在进行数据处理时,不再需要关心底层的数据存储以及计算的复杂性。这是四维纵横正在探索的方向,也是行业共同努力的终极目标。

2021-07-08 09:362870

评论

发布
暂无评论
发现更多内容

【web 开发基础】PHP 中数组的定义 (42)

迷彩

数据结构 数组 11月月更 数组的定义

单一职责原则详解

杨充

支持向量机-SVC的模型评估指标

烧灯续昼2002

Python 机器学习 算法 sklearn 11月月更

python版本管理工具DVC

AIWeker

人工智能 版本管理 11月月更 dvc

制造业要用龙头带动整条产业链发展,阿里云智能制造加速器首次集结

B Impact

Python 操作Excel(xlrd和XlsxWrite)

度假的小鱼

11月月更 Python xlrd读取Excel Python xlrd

详解UDS CAN诊断:什么是UDS(ISO 14229)诊断?

不脱发的程序猿

嵌入式 汽车电子 ISO 14229 CAN诊断 UDS诊断

研发管理如何度量「人效」

feijieppm

项目管理 研发效能 技术管理 文化 & 方法 效能度量

xxj-job服务端架构流程

IT巅峰技术

「Go易错集锦」正确使用defer避免代码重复

Go学堂

golang 程序员 个人成长 defer 11月月更

Linux yum 命令

梦笔生花

yum源 11月月更 Linux系统指令

一文了解 Go 标准库 strings 常用函数和方法

陈明勇

Go golang 字符串 11月月更 strings

华为云GaussDB 为企业数字化踩了一脚油门

爱科技的水月

详解UDS CAN诊断:DiagnosticSessionControl Service(SID:0X10)

不脱发的程序猿

嵌入式 汽车电子 ISO 14229 UDS诊断 诊断和通信管理功能单元

华为云大数据平台,助力企业数字化转型成效明显

路过的憨憨

华为云桌面Workspace,让云上工作更高效!

路过的憨憨

Python 操作mongodb库

度假的小鱼

mongodb 11月月更 Python 操作mongodb库

凝心聚力 开源共建 | 统信软件参与成立OpenKunlun开源固件社区

统信软件

开源 开源社区 开源技术

【web 开发基础】PHP中的数组 (41)

迷彩

php 数据结构 11月月更 关联数组 索引数组

Python 操作Mysql

度假的小鱼

pymysql 11月月更 Python操作Mysql

深度学习-浅谈keras的扩展性

AIWeker

深度学习 keras 11月月更

《2022开源大数据热力报告》发布,Flink 摘得「流处理」领域热力值 TOP1

Apache Flink

大数据 flink 实时计算

汽配行业erp系统解决方案!

优秀

低代码 ERP系统 汽配行业

融云全球社交泛娱乐洞察,老资格的「游戏社交」还有哪些想象空间

融云 RongCloud

社交 泛娱乐社交

开闭原则详细介绍

杨充

2022-11-29:查找重复的电子邮箱。以下数据中a@b.com是重复的,请写出sql语句。 DROP TABLE IF EXISTS person; CREATE TABLE person (

福大大架构师每日一题

数据库 福大大

细说值传递、引用传递和地址传递

闫同学

编程语言 计算机基础 11月月更

企业办公新模式,随时随地云上协同!

秃头也爱科技

赫夫曼树编码实验报告

我是一个茶壶

数据结构 哈夫曼树 11月月更

支持向量机-ROC曲线中的概率和阈值

烧灯续昼2002

Python 机器学习 算法 sklearn 11月月更

读《程序是怎样跑起来的》体会

听风go

读书笔记 后端 计算机 计算机原理 读书总结

将数据库性能提升100倍?大数据时代中,一位数据库老兵的创新之路_数据库_郑思宇_InfoQ精选文章