tag 标签: 开发者工具

相关博文
  • 热度 7
    2022-9-27 10:47
    917 次阅读|
    0 个评论
    数据库的九大关键功能介绍
    为了跟上现代企业不断发展的需求,企业的数据库必须完成更多的工作—而完成这些工作的前提需要从数据库的功能开始。 在过去的30年里,大范围的变革性趋势不断地重塑和加速了数据库行业的发展,也改变了数据库的本质。 企业技术堆栈中的数据库。从相对呆板的大型机程序—只处理精心构建的数据,到现代微服务架构—处理各种非结构化数据,数据库技术持续蜕变并可以利用新技术解决越来越难的问题,同时还能为更多的关键任务用例提供动力。 如今的数据库面临着前所未有的挑战。 它们必须处理堆积如山的数据、需要瞬间返回结果,同时还要应对极其复杂的技术环境并保持易操作性和高可用性 。目前许多数据库只具备这些关键功能中的一个或者几个,如果能够同时拥有九个关键功能,将对企业解决数据挑战带来极大便利。下面介绍数据库九个关键功能的具体内容。 1.实时性能 实时性能是指现代数据库必须在不到1毫秒的时间内做出反应,以避免成为性能瓶颈。 在今天的数字经济中,应用程序的性能就是业务性能。企业的客户需要应用程序的实时响应,如果客户得不到响应,他们很可能就会转向选择竞品。 “实时响应"的真正含义是什么呢? 从用户的角度来看,实时被定义为事情发生的实际时间,意味着必须没有可感知的延迟 。从人类反应的研究可知,应用程序大约有100毫秒(ms)—相当于眨眼时间的三分之一—用户才会感到他们在等待响应。从用户提出请求到他们收到反馈的往返时间很容易达到100毫秒,因此这只给数据库留下了0ms到1ms的响应时间。 对于传统企业数据库而言,其运行在老式的旋转磁盘上,可能需要长达100ms的时间来响应。 如果企业的数据团队可以通过添加一个缓存层(如开源的Redis),就可以大大降低延迟,但添加缓存层也会增加架构的复杂性 。目前的一些现代数据库运行速度很快,但仍需要一个缓存,如果没有缓存这些数据库仍然需要10-100ms的时间来提供结果。 为了获得既能够提供实时性能、构架又简单的数据库,越来越多的公司开始转向内存数据库,如 Redis Enterprise,它可以在1毫秒内做出响应,且不需要单独的缓存层 (虽然Redis Enterprise经常被用于其他数据库的缓存)。 2.线性扩展 线性扩展对于处理整体增长和季节性激增问题至关重要,因为它不需要大规模的基础设施投资。 现代应用的分布越来越广,企业必须规划出经济有效的方法来扩展企业的数据库,以满足整体的增长,同时还要应对季节性的激增和意外的需求高峰。数据库性能的线性扩展(性能增长与增加的基础设施容量成正比)对于在没有大规模基础设施投资的情况下实现这一目标至关重要。虽然许多云和企业内部的数据库声称有能力进行线性扩展,但他们往往难以用可靠的基准来证明。 Redis Enterprise通过简单地增加分片和节点实现了无限的线性扩展 。2019年, Redis展示了Redis Enterprise扩展其行业领先的线性可扩展性,在40个AWS实例上以不到1ms的延迟实现了2亿次/秒。 3.高可用性 不能从数据库故障中快速恢复,会对企业及其声誉产生极大的负面影响。 目前,企业在关键任务的使用案例中越来越依赖应用程序,为了保障关键任务的执行,这些应用程序和它们背后的数据库必须在任何时候都是可用的。然而,无论企业的系统和软件多么可靠,都可能发生问题。例如 停机会减少收入,提高成本,降低客户体验 ,但这只是问题的一部分。无法从数据库故障中快速恢复可能会导致数据丢失和以及错失数百万次的操作,这对于任务关键型的用例(如在线订单或金融交易),是难以接受的。 Redis Enterprise提供不间断的高可用性,正常运行时间为5个9 (99.999%) 。通过使用无盘复制、即时故障检测和跨机架、区域和地域的秒级故障切换等技术, RedisEnterprise提供了高可用性,同时比类型产品更具有成本效益。 4.云原生 在企业的部署选项中拥有最大的灵活性和选择。 对于传统的数据库,企业只是进行购买、安装、运行等操作,即企业购买数据库,然后让数据库管理团队来进行安装、运行及支持等操作。然而,云计算的兴起改变了一切。现在,许多企业的数据库都是在云中配置的,企业不再需要进行内部管理工作。 通过云计算提供的完全管理的数据库服务(数据库即服务,或DBaaS),企业得到了一个终端,可以根据需要发送和检索数据,而其他人则负责处理其他的事情 。 但是,想要充分利用云的优势,不仅仅是购买一个DBaaS。为了获得最大的云效益,企业技术栈中的每一个元素都必须与云提供的各种资源一起工作。企业的数据库必须与微服务架构以及容器和容器协调系统(如Docker和Kubernetes)合作。 与单一云供应商开展合作只是一个开始,未来企业的数据库还需要能够在多云及混合云的环境中工作。 云计算使应用程序的全球分布更加简化,但这也给数据库带来了额外的挑战。对于全球分布的数据库,如何实现远程数据一致性是一个重要问题。Redis企业版的“Active-Active(主备双活模式)地理分布式架构”使全球应用在本地延迟的情况下可实现实时一致性。 Redis企业版的Active-Active允许企业将Redis数据库复制放在靠近用户的地方,并通过无冲突的复制数据类型来达到最终的一致性 。 Redis企业云在AWS、谷歌云和微软Azure上提供完全管理的无服务器云数据库服务,因此 Redis企业云能够在任何地方、任何规模上实现实时数据。 5.Tiered-Memory(内存分层)支持 数据库设计者正在转向分层存储方法,将热数据放在DRAM中,而温数据则留在成本较低的内存中 。 随着规模化实时性能需求的日益增长,许多公司正在寻找能够将其数据存储在更快的内存数据库架构中的方法。考虑到DRAM的成本和数据集的大小,企业可以采用下述解决方案。 一个解决方案是将数据分层到替代性内存中,这些替代性内存技术可以提供类似内存的性能,而成本却大大低于DRAM,但更关键要求是自动和智能分层能够保留亚毫秒级的延迟。另外一个解决方案是将热数据保存在内存中,而温数据则驻留在持久性内存中,如闪存或英特尔Optane NVMe,采用这种方法企业可以获得超过70%的成本节约。同时这也极大的扩展了内存数据库的使用范围,例如Redis企业版,通过智能分层可以解决各种用例,如管理游戏用户的大幅增长、扩大应用程序的个性化等。 长期以来,Redis一直是分层数据库存储的领导者,自2016年以来支持Redis on Flash。2019年, Redis Enterprise 宣布支持英特尔Optane DC持久性内存,它在DRAM和SSD之间提供了一个新的持久性内存层 。这两种技术的结合使Redis Enterpris在使用实时服务和分析巨大的数据集方面具有很高的成本效益。 6.简单性和可扩展性 开发人员和运营团队越来越追求数据库的操作简单性。但是没有一个数据模型能够很好地处理所有类型的数据,因而企业可能会在内部部署多个数据库,甚至针对同一个应用部署多个数据库。这是企业不愿意接受的情形。 作为一个真正的多模型数据库, Redis Enterprise在同一个数据库中提供了多种数据结构,包括将10种不同的数据结构(包括键值、文档、图和时间序列数据模型)纳入一个高度通用的多模型数据库,这样可以减少数据模型及数据维护的需要,由此削减了数据库操作的复杂性以及成本开销 。 这种多功能性大部分来自Redis企业版的模块, 如RediSearch、RedisGraph、RedisJSON、RedisTimeSeries、RedisBloom和其他模块 。Redis企业软件模块提供了终极的灵活性和可扩展性,可以毫不费力地支持概率数据结构、综合搜索功能、流处理、深度学习、人工智能等。 对于开发人员而言,喜欢Redis的关键原因之一是Redis的易用性,Redis企业软件模块可以帮助开发人员创建强大的新应用程序。 7.面向未来的NoSQL SQL数据库将永远不会消失,但NoSQL才是未来的趋势—NoSQL正被用于解决企业创新和最有价值的用例。 传统的SQL数据库在表中建立高度结构化的数据模型。随着互联网的兴起和新类型数据的爆炸,传统的SQL数据库已经不太适用了。如今,企业数据库中的大多数数据可能都不是结构化的,而且很难组织在一个表中。此外,SQL数据库缺乏灵活性和高延迟意味着它无法在满足在线应用要求时也满足用户的期望。 为了解决这一问题,现代NoSQL数据库将非结构化数据放在文档中,然后使用键值数据存储和强大的搜索功能来寻找正确的文档和文档中的正确项目。 这是否意味着SQL已经死亡?当然不是!总会有一些情况下,SQL数据库是订购数据的最佳方式,而且传统的解决方案可能需要几十年的时间才能退出巿场。当然, NoSQL才是大势所趋—尤其是云原生NoSQL 。根据Redis的2021年数字转型指数报告,每种类型的NoSQL数据库使用量都在上升,而关系型(SQL)的使用则停滞不前。 8.开发者工具 人们对图形用户界面的需求越来越大,通过图形用户界面管理数据库,开发人员可以更直观地探索并与他们的数据互动 。 除了简单和多功能之外,企业的数据库还必须便于开发者使用。为了让数据发挥最大化价值,企业的数据库必须让数据易于快速分析。 虽然命令行界面(CLI)仍然是最常见的数据库使用方式,但人们对图形用户界面的需求越来越大,尤其是那些希望以视觉方式探索和与数据互动的分析人员,更喜欢采用图形用户界面管理数据系统。 9.开放的源代码DNA 即使是最保守的企业现在也在开始使用开源的商业解决方案—数据库。 在2021年,开源的商业解决方案被认为尚无法解决企业的关键任务运行问题。然而,现在的情况看,只要是有良好支持的好产品,即便是观念保守的企业也愿意依靠开源的解决方案来解决数据问题。 最具创新性和最强大的技术都来自于开放的源代码DNA。 拥有开源的DNA非常关键:这是唯一的方法来确保一项技术能够尽可能的可扩展并尽快完成更新 。扎根于开源意味着开发者要解决社区的真正需求,而不是数据库供应商能做什么或想做什么。 Redis Enterprise是一个DBaaS(数据库即服务),旨在提供最好的Redis体验,它不仅保持了开源Redis的简单性和高性能,还增加了企业级功能 。Redis Enterprise可以在云、本地和混合部署中提供无与伦比的性能、可扩展性、创新性和高成本效益,能够为关键业务应用程序提供高性能缓存、以亚毫秒级的大规模性能和99.999%的高可用性扩展数据、使用现代数据模型构建本地和云应用程序并轻松迁移到云端实现跨区域部署。