1.1.1 行业痛点
由于数据库类型的数量在不断增多,开发人员不得不花更多的时间来学习软件开发工具包(software development kit,SDK)和SQL方言,给开发留下的时间也就更少了。对企业来说,由于技术栈更复杂了,并且选择的技术必须与企业使用的应用框架匹配,因此对技术做出选择变得困难,而这可能导致架构过于庞大。
接下来介绍一些著名的行业痛点,再说说给DBMS带来了新机会的行业新需求。
1.低效的数据库管理
DBA需要将大量时间用于研究和使用新数据库,以便知道其协作和监控方法有何不同,并搞明白如何优化性能。
外部服务和使用体验因数据库而异,这增加了在生产环境中使用和维护数据库的开销。企业部署的数据库类型越多,需要的投资也越多。出现新场景时,如果企业根据其需求不看具体情况就采用新数据库,投资迟早会呈几何级数增长。
2.新需求和日益频繁的迭代
为满足看起来类似的需求,需要编写不同的代码,而这些代码唯一的差别在于支持的数据库类型不同。在本书编写期间,ShardingSphere社区期望的代码迭代频率已急剧提高,但开发人员的响应速度降低了,因为响应速度与使用的数据类型的数量成反比。相同的需求和数据类型的数量都呈几何级数增长,这极大地降低了迭代速度。数据库数量越多,迭代的步伐越慢,同时迭代的性能水平也越低。
如果目标是同时对所有敏感数据加密,但无法在一对多数据库中这样做,那么唯一的解决方案是在业务应用端修改代码。大型企业通常运营着数十乃至数百个系统,要对所有系统的数据加密,开发人员将面临严峻的挑战。
数据加密只是开发人员可能面临的众多类似挑战之一,在异构数据库中,其他常见的通用需求还包括权限控制、审计等。
3.数据库间兼容性缺失
众所周知,当前的现状是异构数据库共存,这种情况还将持续很长时间。然而,没有统一的标准,就无法以协调一致的方式使用这些数据库。这里统一的标准,指的是普遍接受(至少是大都接受)的技术参考,如针对外部硬件设备的USB 2.0和USB-C;在软件方面,一个技术参考的例子是,为帮助创建iOS或Android应用而发布的SDK。
在数据库方面,ShardingSphere社区提出了Database Plus。简单地说,Database Plus指的是让用户能够管理和改善任何类型的数据库,甚至能够在同一个系统中集成不同的数据库类型。
在数据计算方面,对跨异构数据库的协作查询引擎和事务管理计划的需求在日益增长,但就目前而言,开发人员只能在业务应用端编写相关的代码,难以涉足基础设施。