数据库必须面对的九条挑战 - thenewstack


当今的数据库面临着前所未有的挑战。他们必须处理大量不同的数据,眨眼间就能得到结果,并应对极其复杂的技术环境,同时又要易于使用且高度可用。为了应对这些挑战,现代数据库平台必须具备以下九个关键特征:

1.即时表现
现代数据库必须在不到一毫秒的时间内做出响应,以避免成为当今应用程序的性能瓶颈。在磁盘上运行的数据库已经根本无法跟上。DRAM中的缓存层可以帮助加快常见请求以减慢数据库速度,但是这增加了复杂性,并且不能总是足够快地满足每个请求。越来越多的公司开始转向内存数据库,这种数据库可以在不到一毫秒的时间内做出响应,而无需单独的缓存层。

2.可扩展性
现代应用程序可以处理越来越大的数据集。公司必须计划以经济有效的方式扩展其数据平台,以满足整体增长(这是一个好问题!),同时还要应对季节性的激增和需求的意外高峰。线性扩展对于在无需大量基础架构投资的情况下实现这一目标至关重要。

3.高可用性
如果无法从数据库故障中快速恢复可能会导致数据丢失,这是从财务交易事务到在线订单的所有问题都无法接受的问题。这就是为什么选择具有高可用性且正常运行时间为 five-nines(99.999%)的数据库的原因。

4.分层内存支持
数据库设计人员正在转向分层存储方案,将最热点的数据存储在DRAM中,而稍热的数据则驻留在诸如基于闪存的固态磁盘之类的持久性内存选项上,这些选项比旋转磁盘快,但比DRAM便宜。他们以更低的成本获得了60-70%的DRAM性能。

5.简单性和可扩展性
由于没有单一的数据模型可以很好地处理所有类型的数据,因此您最终可能会在同一组织中甚至在同一应用程序中部署多个数据库。那么解决方案是什么?多模型数据库在同一数据库中提供了多个数据结构,通过减少为每个所需数据模型提供和维护不同数据库的需求,从而减少了复杂性和开销。

6.高级开发人员工具
除了简单和通用之外,数据库还必须易于开发人员使用。尽管命令行界面(CLI)仍然是与数据库平台一起使用的最常用方法,但对图形用户界面的需求却在不断增长,以简化系统管理并支持希望以可视方式探索其数据并与之交互的分析人员。

7. Cloud Native(包括混合云和多云)
云计算的兴起意味着您不再需要管理所使用数据库的内部工作。但这不仅仅涉及购买数据库即服务(DBaaS)—为了最大程度地利用云,您技术堆栈中的每个元素都必须与通过云交付的各种资源一起使用。您的数据库必须与微服务体系结构以及容器和容器编排系统(例如Docker和Kubernetes)良好配合,并且可以在多云和混合云环境中工作。

8.开源DNA
现在,即使是最保守的企业也意识到没有理由不依赖开源解决方案来处理几乎任何数据库用例。拥有开源DNA是必不可少的:这是确保技术尽可能地可扩展并尽快更新的唯一方法。另外,扎根于开源意味着开发人员可以解决社区真正需要的东西,而不是供应商可以做什么或想要做什么。

9.未来的NoSQL
如今,您的大多数数据可能都没有结构化,很难像传统的SQL数据库一样在表中进行组织。现在,NoSQL数据库将非结构化数据放入文档中,并使用键值数据存储和搜索功能来查找所需内容。SQL数据库将永远不会消失,但NoSQL就是未来-这是解决最有价值的用例的地方。