即使回顾十年以前,对于将企业级数据库管理系统跑在主内存上都是不可想象的。但随着时间的推移,RAM的价格稳步下降,这使得要做到这一点不再需要付出极为昂贵的代价。内存价格要比过去便宜得多,价格的暴跌也使利用主内存配置数据库系统成为可能。
内存数据库用来支撑高性能处理需求已经不再是那些小厂商的游戏,主流数据库厂商,如IBM、Oracle、Microsoft、SAP等都已经推出了各自的内存数据库产品,并且投入了大量的研发资金。因为许多大型企业客户也在考虑将内存数据库整合进IT系统。
内存数据库从两个方面加速了应用的性能。首先,也是最重要的,维护数据的介质从传统磁盘转向了更快的内存,如此便优化甚至是消除了与数据库查询相关的数据延迟。其次,可选数据库架构能够更有效的使用可用内存。例如,很多内存技术会在表中使用列式存储,而不是基于行的存储格式。而按列存储的表更适于压缩,并能够快速扫描所有字段来加快查询执行速度。
内存技术能否带来成功?
从理论上讲,加速应用和优化企业数据都是非常具有吸引力的。但是在现实世界中,IT和数据管理人员在保证已有的技术、资源和新产品投入的基础上,把交易流程和业务分析过渡到内存架构的时机并不是很好确定。
这个问题所涉及的方面包括权衡对提高数据库性能的需求和获取并部署内存平台的相关成本。尽管RAM成本已经大幅下降,但是拥有大规模内存配置的系统仍然要比只有磁盘存储的数据库服务器在价格方面高出一截。企业高管和CFO在看到采购的账单时还是会吓一跳。因此要让内存数据库物有所值,你需要找到特性相适的应用。
在这个问题上,就要具体情况具体分析了。要看企业对增长的数据规模处理能力的需求,和数据库响应延迟会给业务带来多大的影响。比如如果将内存数据库应用到供应链管理,那么多种数据流都能够得到实时的分析,包括仓库和零售店的库存数据、车辆运输过程中产品的信息、交通和天气情况的更新数据,这样决策者在规划路线、分发产品时就能做出更快更好的决策,保证产品在合适的时间、合适的地点到达。如果能够实现这一点,内存技术产生的回报也足以盖过它的成本了。
采用内存技术需三思后行
将企业的总体特征纳入考量也是必须的。如果以下列出的几条中有一项或多项可以用来描述你所在的工作环境,那么就值得考虑采用内存数据库。
愿意在IT上投入。 即便扩展系统以支持内存计算所带来的成本要高于购买磁盘数据库服务器的成本,公司管理层也必须在硬件上愿意花钱以拥有足够的内存来满足业务应用程序的处理需求。
灵活快速的分析。内存系统可以增强报表和分析应用的性能,以协助改善业务流程,这一切都是通过使终端用户在一个较短的周期内做出明智选择来实现的。例如,销售预测从每周过渡到每小时就可以创建实时的产品价格模型并由此增加盈利能力,同时定价决策也能够迅速传达并执行。
支持混合开发。允许事务和分析应用同时访问同一数据库是提供实时分析功能的另外一条途径。但是资源冲突会在一个传统关系型数据库中引起性能问题,这主要是由于查找和访问存储在磁盘上的数据记录引起的延时。而配置了内存数据库,延时就可以忽略不计了。
数据感知。当海量数据访问调用只涉及数据库的一小部分时,内存技术也就有了用武之地。根据Teradata最新发布的白皮书,43%针对数据仓库的查询只访问了可用信息的1%,而92%的查询只使用了20%的数据。识别频繁访问的热点数据并将其保留在内存中会大大减少查询响应时间。
总之,企业的业务流程可以从数据实时可用,混合应用的并发性以及明显加快的报表和分析中得以体现,这些情况都非常适于部署内存数据库。某些场景下所要做的决策是显而易见的。但是在大多数情况下,内存软件的考量必须符合IT支出优先级和公司业务目标,包括一个显而易见的论据,即通过更快的事务处理和报表访问以及随机查询结果可以让公司业绩的关键领域获得怎样的改善,而这些都是内存技术的用武之地。
本文首发于TechTarget电子杂志《数据库工程师》,如有对内存数据库技术感兴趣的朋友,可以免费下载本期电子杂志。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
翻译
相关推荐
-
OpenWorld18大会:Ellison宣布数据库的搜寻和破坏任务
在旧金山举行的甲骨文OpenWorld 2018大会中,甲骨文首席技术官(CTO)兼创始人Larry Elli […]
-
ObjectRocket着力发展Azure MongoDB服务
MongoDB吸引了微软公司的注意力,微软公司计划针对运行于该公司2017年发布的Azure Cosmos D […]
-
数据库和数据仓库的区别在哪儿?
目前,大部分数据仓库还是用数据库进行管理。数据库是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。
-
如何使用服务来平衡Oracle RAC 数据库工作负载
为不同的应用程序配置不同的服务,DBA可以更有效地平衡集群工作负载,在Oracle RAC数据库环境下实现更好的应用程序性能。