云数据库:基础软件皇冠上的明珠,下一个风口中的焦点

2024-06-16
来源:网络整理

作为基础软件皇冠上的明珠,数据库技术一直以来都是开发者关注的焦点。这种关注度如此之高,几乎自然而然地打破了学术界和工业界之间的壁垒,以至于每一篇关于数据库技术的重要论文都可能催生一批价值数十亿美元的公司。

近年来,云数据库逐渐成为整个数据库行业关注的焦点。据.Inc预测,到2022年,所有数据库中75%将部署或迁移到云平台,仅有5%考虑回归本地。IDC认为,到2025年,全球超过50%的数据库将部署在公有云上;在中国市场,这个数字更加夸张,达到70%以上。

那么问题来了,如果云数据库,或者说云原生数据库无疑是下一个热点,那么它的主要技术和发展方向是什么?我们又该如何看待云原生数据库的发展趋势?2020年亚马逊网络服务发布的新内容或许能给我们一些启发。

一部被低估的重磅大片

该解决方案在 2020 年 re: 大会上发布,由亚马逊网络服务首席执行官安迪宣布。

简单来说,它是云数据库的一个插件,可以兼容用SQL编写的应用程序。

发布刚一发布,网上就有很多工程师拍视频表达自己的困惑。自从云数据库出现以来,相关的迁移服务在业界随处可见,几乎每个公有云公司都可以提供相关的迁移服务,但大多都是有针对性的,美国有一家叫DB的公司专门提供从到的迁移服务,相关的代理层、SQL语言转换工具更是层出不穷。

其实 Web 有自己相关的迁移服务,比如架构迁移、存储迁移的工具。

那么,存在的意义是什么?增加一层代理是否会增加后端处理成本?

实际上只迁移架构和存储是不完整的,基于数据库构建的应用也还没有完成迁移。在业务场景中,基于 SQL 构建的应用使用 T-SQL 与数据库交互,与 SQL 完全不同,如果要同步迁移应用,就得重写这部分。

这也让数据库迁移成为业界一个非常罕见的动作,不是大家不想做(毕竟谁也无法保证最初的架构选择永远正确),而是成本实在是太高了。

我们可以通过一组比较常见的迁移方案来体验一下这个迁移成本:

相比这种繁重的迁移,如果数据库天然就兼容的话,岂不是方便很多?这也是存在的主要意义。

很多人低估了它,或许是只看到了它的商业意义,却没有注意到它的技术难度。

和SQL 之间的转换比较困难,它们有很多共同的特征,而切换到T-SQL和SQL 就更加复杂了,数据库的同步转换需要注意很多极其复杂的细节,包括查询语言、存储过程、静态游标、触发器等的转换。

亚马逊网络服务的 Sé 在一篇博文中指出,在 T-SQL 中, 类型有四位小数的精度,而 则只有两位小数的精度。这种细微的差异可能会导致舍入误差,并对下游流程(如财务报告)产生重大影响。

“在这种情况下,我们确保 SQL 数据类型和 T-SQL 功能的语义得到保留:我们创建了一种按照 SQL 应用程序期望的方式运行的数据类型,”他说。

解决方案是使用(hook)方法在内置引擎中实现,将自身暴露为不同的数据库(否​​则只能修改很多核心地方的代码)。架构图如下:

精妙之处在于,通过对数据库内核执行器层面的扩展和开发,实现了T-SQL与SQL之间的相互调用。也就是说,新写的代码可以调用之前应用程序编写的SQL代码。对于写​​过存储过程的朋友来说,这个功能和它的名字一样带有“科幻”色彩。即便用了最硬核的实现方式,也没有做到完全兼容,一些功能和语法如ADD也没有实现。亚马逊官方工程师表示:“SQL已经发展了30多年,我们并不想立刻支持所有的功能,而是专注于最常用的T-SQL命令,返回正确的响应或错误信息。”

这也说明了开发类似迁移加速器的难度,也证实了为什么开源路线是最适合开发的,因为开源可以让足够多的开发者参与到产品的迭代中。

同样,如此规模的开发项目也不太可能无关紧要。相反,它可能是 2020 年亚马逊 Web 服务最重要的版本之一。

数据库碎片化的时代真的到来了吗?

亚马逊在云计算领域的发布屡屡引导着整个行业的发展方向,例如 2012 年 Web 的发布引导了云原生数据仓库的发展方向,2014 年 Web 的发布引导了云原生数据库的发展方向(直到 2019 年才被确认为未来的趋势),也是云原生数据库的先驱产品。

如果这也代表着一种方向的话,那么或许数据库碎片化的时代真的到来了。

由于数据库产品本身的开发难度太大,长期以来一直被少数几家公司所控制,其中最牛的几家正以极快的速度提高商业数据库的开发门槛。

然而,数据库“垄断”发展带来的高价格、高绑定风险,已逐渐成为很多企业难以承受的负担。目前各类数据库层出不穷,关系型、key-、时序、图数据库等层出不穷,让人难以选择。还有一个重要现象是,大部分云原生数据库都是以研发为主,但后续很多研发力度并没有投入到高性能、高扩展等传统技术理念上。

数据库兼容性,这个开发难度大、与性能无关的特性,成为了亚马逊网络服务的研发重点。某种意义上,也说明遍地开花的各类数据库还会在行业内长期存在。人们习惯认为行业长期的发展趋势是从单一到多元,最终经过市场筛选,回归单一。但这一次,“单极”时代或许真的一去不复返了。

此外,在2020年的魔力象限报告中,云数据库领域有几家领先公司,亚马逊、微软等位列前三。

2019年,前三名仍然是微软,亚马逊,前三名在打架,第二名没了……

如今,云数据库之间的壁垒正在逐渐崩塌,而传统商业数据库之间的竞争也愈发激烈。

借助碎片化的时代潮流,顺理成章地成为了云数据库市场新的领头羊。

最后的想法

数据库行业还远没有走到尽头,也永远不会有所谓的尽头。但云原生数据库能获得的优势并不局限于数据库本身,比如提供的弹性伸缩服务提升了全局数据同步能力和业务连续性,Guru 将机器学习引入应用管理,这是一次“合力”,将云上的数据库体验延伸到了一个全新的维度。

在云数据库领域,这股“合力”将主宰后续的市场格局。

2021年11月30日Re:又要来了,Adam将以亚马逊网络服务新任CEO的身份亮相,相信云数据库市场的走势会更加明朗。

分享