作者:刘自传,新炬网络高级技术专家。
在这个大数据时代,各个行业的业务和IT领导者都在寻求用方便和经济高效的方法释放驻留在事务处理和数据仓库系统中各种企业数据的价值。
他们正试图快速实施新的解决方案,从这些数据获得额外的洞察,以改善所有业务领域的成果,同时优化资源利用率并降低成本。
IBMDB2 for Linux, UNIX and Windows是专门针对这些挑战而构建的多工作负载数据库管理解决方案。DB2 V10.5 BLU提供全新的创新功能,以满足苛刻的数据处理需求,它帮助、确保数据系统保持快速、始终可用、可扩展和灵活。
DB2V10.5 BLU新增的以下主要功能,可以帮助应对大数据所提出的挑战:
• 以人类思考的速度进行分析,包括新的BLU Acceleration
• 始终可用的事务
• 前所未有的实惠
一、以人类思考的速度进行分析
DB2 V10.5 BLU具有以下几点新特性:
• 动态的内存中列式处理,将未使用的数据动态移动到存储
• 可操作的压缩,以保持顺序,这样无需解压缩就可以使用数据
• 并行矢量处理,可以交付多核与单指令多数据(SingleInstruction Multiple Data,SIMD)
• 数据跳过,绕过对不相关数据的不必要处理
BLUAcceleration增加了一个额外的存储引擎,并将运行时直接集成到核心DB2引擎中,以支持对按列式组织的表进行存储和分析。
该处理与基于行的传统表处理可并行运行,使DB2可以在同一系统中处理基于行和基于列的表(参见图1)。
潜在的结果包括显著提高的性能、大量节省的存储空间,以及可轻松地对事务性和分析性这两种数据工作负载进行实施和管理。
DB2V10.5 BLU使用动态内存中处理提高性能,不是内存中数据库处理环境(如 SAP 的 HANA),它采用动态内存管理缓存技术,将一些数据卸载到距离较近的快速存储,并且不会增加成本:
1) 最有用的数据被放到内存中
数据保持压缩状态,以便能够将更多的数据放到内存中,同时从缓存的角度来看,存储中的数据是扫描友好的;
2) 更少的数据被放到内存中
这是使用列式数据、延迟物化和数据跳过技术的结果;
3) 针对扫描、联接和聚合优化了内存延迟
DB2 V10.5 BLU可以使用基于行或基于列的数据。在列模式中,速度比传统基于行的关系型数据库快 10-50倍。
DB2 V10.5 BLU压缩可以比Oracle 或SAP 更有效地缩小各种大数据数据库的大小。
BLU Acceleration 可以读取内存中的已压缩数据,无需将其解压(IBM 的 BLU Acceleration 采用先进的数据跳过技术,SAP 的 HANA和 Oracle 的 Exadata 都不能读取内存中的已压缩数据)。
内存中、列式和压缩技术在DB2 V10.5 BLU中的结合实现更快的查询速度,先进的编码实现了最大限度的压缩,同时保留编码的顺序,以便能够快速分析压缩后的数据,并且没有解压缩的开销。这样可高效使用CPU和RAM,并且减少了I/O。
DB2 V10.5 BLU在硬件中融入了最新的发展(如SIMD),只需一个指令就可以执行多个任务,从而有助于提高处理效率。可以将工作分布在多个处理器核心上,这极大地加快了性能。
DB2 V10.5 BLU自动检测并跳过大段不符合查询条件的数据,从而消除了不必要的处理。这实现了更高效的数据处理和更高的性能。
二、利用DB2 pureScale的可靠性,实现始终可用的事务
DB2 pureScale技术利用以IBM DB2for z/OS为基础的内置数据库集群技术来降低此风险,并充分利用IBM System zSysplex的专业知识。
如果使用在UNIX(IBMAIX)和Linux(x86)上运行的共享磁盘集群架构,DB2 pureScale技术让您无需更改应用程序就可以扩展数据库。
DB2 pureScale始终可用,帮助确保事务性工作负载(包括在线事务、查询和其他任务)在计划内停机或意外停机的情况下可以不间断地继续执行。
DB2 pureScale完整集成了DB2高可用性灾难恢复(HADR)功能。这让您可以将主pureScale集群的数据镜像到第二个本地或远程的备用pureScale集群(参见图2)。在发生故障时,备用集群可在数秒内接管工作,确保对业务的影响最小。
在线补丁包更新可让您在pureScale集群中运行的每个成员上执行补丁包维护操作,将对用户的影响降到最低。您还可以从pureScale备份和还原到单台服务器。
三、前所未有的实惠
拥有大量数据的企业都知道数据存储会有多么昂贵。全方位的特性让DB2可以提高存储效率、提高性能和简化事务性以及仓库数据库的管理,从而帮助降低管理数据的成本。
1、利用深度压缩和自适应压缩提高存储效率和成本效益
DB2利用业界领先的深度压缩技术可以大幅降低存储成本,该技术压缩表、索引、归档日志、临时空间、LOB、XML和备份数据。
压缩允许DB2在内存中保留更多数据,从而避免为获得高性能而大量占用磁盘I/O。通过将压缩与多温度数据管理相结合,DB2提供了理想的功能集,可经济高效地优化和分配数据存储环境。
DB2自适应压缩(Adaptive Compression)特性进一步提高了存储效率,结合经典的行压缩与其他技术(如全表压缩和页级压缩),可对用户产生最大的影响。自适应压缩为多个用户提供了不低于7倍的整体空间节省,有些表实现了10倍的空间节省。
2、利用列式和编码的数据压缩,优化计算资源
计算友好的列式和编码的数据压缩提供了海量的存储空间节省、更少的I/O、更高的内存利用率,以及更为高效的CPU使用。
测试表明,相比于使用全压缩的DB2 10.1,使用DB2 with BLU Acceleration 可以获得1.6倍到2.6倍的存储空间节省,并且用户反馈,与未压缩的表相比,DB2 with BLU Acceleration的压缩率是10倍。
四、案例:DB2 V10.5 BLU亚秒级完成10TB数据扫描
如上图所示:
1、原始表数据为10TB,在DB2 V10.5 BLU中,利用业界领先的深度压缩技术可以大幅降低存储成本为1TB;
2、再使用列式存储,负载查询SQL只需访问某一列的数据,这使得要处理的数据又降低为10G(简单假设表有10个字段,且字段长度是均衡的);
3、DB2 V10.5 BLU使用数据跳过技术,只访问2014年10月的数据(简单假设保留了2014年1月到10的数据),要处理的数据再降为1G;
4、再充分利用处理器级的并行向量处理,每处理核心只要处理32M的数据(假设共32核);
5、再利用多核和SIMD(单指令多道数据流)并行性,最终实现亚秒级完成对10TB级数据的扫描。
五、DB2 BLU、SAP HANA与Oracle Exadata比较
IBM 的 DB2 BLU Accelerator 和 SAP 的 HANA 使用列式方法来为处理准备数据(IBM 也可以使用行式数据)。列式处理的速度远远超过行式处理(Oracle 仅使用行式处理方法);
IBM 的 DB2 BLU Accelerator 与 SAP 的 HANA 和 Oracle 的 Exadata 相比具有明显的优势,它可以分析内存中的已压缩数据。这意味着可以更快地读取更多数据;
对于需要实时结果的综合 OLAP/OLTP 环境来说,SAP 的 HANA 在内存中处理大量数据的能力非常优秀。然而,但担心随着查询的复杂性或数量(并发用户)的增加,性能会明显下降,因为每个查询都争夺资源;
Oracle 的 Exadata Database Machine 在 Oracle 社区一直深受欢迎,因为它提供了良好的开箱即用性能,并且具有出色的扩展能力。但是,该设备是一个通用的分析处理器,没有针对特定分析工作负载进行调优。其他的缺点是,它是基于行的,并且无法读取内存中的已压缩数据。
鉴于IBM 的系统设计优势(更快的处理器、更多线程、SIMD、均衡的 I/O 处理、可靠的内存管理),在分别处理复杂的和中等复杂的工作负载时,基于 IBMPOWER 的 Power Systems 都应该能够轻松地击败 Exadata 系统。