1内存计算概述
在2011年SAP“全球技术研发者大会”上,“内存计算”这一名词突然出现在我们的视野中,引起了广泛的关注。SAP高调的推广与宣传,使很多人误以为内存计算是由其提出的。其实不然,内存计算的概念很早就被提出,并且一直有人在研究。除了SAP的内存技术外,相关产品还有sqllite、Altibase、eXtremeDB等。
所谓内存计算,就是使用内存数据库将大量的数据直接装载到内存中,并进行计算。内存计算技术大大减少了从硬盘读写数据的时间,从而使计算速度更快。内存计算技术融合了硬件与软件技术创新。硬件创新包括具有多核架构和以TB计的内存容量的刀片服务器,可实现大规模并行扩展。软件创新包括内存数据库,它采用了为最大限度发挥内存计算技术的潜力而专门设计的行、列存储,并行处理在数据库层进行,而不是我们所熟知的客户端-服务器架构中的应用程序层。使用内存计算,在理想状态下可以使数据处理速度提高1000倍以上。例如,农夫山泉一个销售表就有上亿条记录,原本系统计算一次运费就要一天的时间,但使用了内存计算技术后,可以做到数据的实时观测。内存计算对于内存的开销比传统方式大得多,但是随着内存价格的不断下降,使该技术的广泛应用成为可能。
使用内存计算需要注意以下问题:①可靠性。由于内存数据库所有的数据都放在内存中,所以各种原因所引起的服务器宕机造成的损失要远远超过传统的数据库。为了防止数据的丢失,在系统运行时要做好日志记录,在每次数据提交时,将日志更新到硬盘,以便出现数据丢失时能及时恢复。同时保证电源的持续供应和做好散热工作。②临时内存的清理。在内存计算会产生大量的临时内存,这些缓存信息对内存的占用不仅浪费存储空间还严重影响系统的运行速度。因此,及时清理临时内存非常重要。③信息安全。大多数病毒针对内存展开攻击,为了保证信息的安全,就需要有完善的数据访问控制机制和加密机制作为保证。
我们说内存计算解决了从硬盘读写数据的瓶颈,更好体现多核CPU的强大处理能力。
2列存储概述
数据的存储方式主要有行存储和列存储两种,其中行存储是指属性在物理上是按行记录顺序存储;而列存储则是按列的顺序连续存储。
列存储的实现方式主要有三种:①使用行存储模拟,保留存储管理器和执行引擎。②修改存储管理器,但为了和并列,保留面向行查询执行器部分。③修改存储管理器和查询执行引擎。
两种存储方式各有优点,如果对数据库经常进行整条记录的查询,那么行存储的方式是很好的选择,因为该记录的所有信息都在一起;相反,如果查找的是表中某个属性值或对某列属性进行计算,采用列存储效率更高,不必读到不相关的属性。
因此列存储方式有两大显著优点:①提高查询属性列值的吞吐量,减少I/O操作。表数据基于列存储,能够快速地定位到需要的数据列,同时不会读取无关的列数据,减少无效磁盘读写操作。当表有较多的数据列时,效果提升更加明显。②列存储有利于数据压缩。相对于行存储,列存储更加适合数据压缩。因为数据列属性有相同的数据类型,数据相似度较大;而行存储,属性是以记录方式连续存储的,一条记录中各属性具有不同的数据类型,因此,很难为不同的数据类型数据采用统一的压缩算法。然而,列存储不足之处主要表现在将列重构成行和插入、删除数据效率比较低。所以列存储适用于更新操作很少的环境中。
3内存计算和列存储在商务智能中的应用
商务智能(BusinessIntelligence,BI)是通过运用数据仓库、联机分析和数据挖掘技术处理和分析业务数据,解决商务活动中的复杂问题,辅助管理者决策,从而改善企业的经营、管理能力的系统。商务智能适用企业规模大、顾客规模大、产品线规模大、市场规模大、信息规模大的企业以及政府部门等。
商务智能主要包括数据预处理、建立数据仓库、数据分析和展示结果四个环节。数据预处理阶段负责将海量数据进行抽取、转换后装载到数据仓库;数据仓库是数据处理的基础,其功能既包括传统的联机事务处理,也包括决策支持和联机分析处理功能,实现了数据的提取、净化、过滤和数据标准化;数据分析采用联机分析处理和数据挖掘技术,对数据进行多维分析,挖掘其背后的知识,是商务智能的关键。
内存计算技术在商务智能中应用带来的优势:
①帮助简化IT布局并降低总拥有成本(TotalCostofOwnership,TCO)。②通过运营数据的实时分析与报告使用户能够更迅速地对业务活动做出响应。③分析、运营和绩效管理等工作合并在一个系统中,使硬件资源更集中,同时可以减少数据冗余。
内存计算技术以较低的总成本将联机事务处理与联机分析处理融合在一起,以此实现实时计算。
基于内存计算的分析还有助于降低新架构和现有架构的总拥有成本。IT所能获得的某些巨大成本优势包括:
更低的硬件成本、更高的性能与业务灵活性、更快的部署、以增量方式实施的机会以及与现有架构的兼容性。内存计算技术提供了硬件的可扩展性和灵活性,以实现更高性能。动态汇总功能将IT员工从手动查询调整和数据汇总任务中解脱出来。比较而言,在传统的数据仓库环境中,更高的性能和功能需求意味着需要获得额外的硬件、软件,并要执行更多性能调优任务。在高度异构的环境中,多个商务智能解决方案集需要各自独立的生命周期管理,从而增加解决方案的维护负担。
列存储技术在商务智能中的应用:①列存储方式适合压缩数据,其数据压缩率能达到10倍,对于拥有海量数据的商务智能系统来说能节省大量存储空间。②在数据仓库环境中,通常都是定期的装载数据,然后在很长一段时间针对大量数据的聚合进行查询操作,同时很少进行更新操作,因此,使用列存储方式更有效率。
通过分析发现,内存计算和列存储技术对于商务智能中提高数据处理速度和优化存储有着重要意义。
4结束语
商务智能是信息时代商业与信息技术相结合的产物,它可以帮助企业更进一步挖掘业务数据的价值。但是,随着现代商业节奏的不断加快,企业在系统能够支持决策和发现知识的基础上,对数据的实时要求也越来越高。由此,为了解决该问题,内存计算和列存储技术出现并不断发展、完善,相信这将成为新的研究热点。