DB2的列式存储技术在db210.5版本中被引进如db2内核之中。该技术是为了应对数据仓库及数据集市在数据量暴涨的时代提高数据处理的效率。其借鉴了NoSQL即时处理海量数据的思想。该技术的内部代号为BLU但它并不是首字母缩的略词,它其实是一个内部项目名称不过我们可以使用Big Data、Lightning Fast和Ultra Easy来代表BLU的缩写。企业通过利用DB2 BLU及其创新性压缩技术可以实现的存储成本节约。BLU基于评估、联接和分组等复杂操作会尽可能多地处理压缩数据,尽可能晚地解压缩可实现有效的查询执行和有效的内存利用率,从而通过各种工作负载产生10倍到25倍甚至更多的性能收益。该技术结合了分析工作负载的前所未有的存储节约和性能加速的易用性。本文将着重介绍BLU技术背后的创新性内存、CPU和I/O优化的实现原理、方法论及最佳实践。
一、构成BLU Acceleration技术的核心理念包括:
1.易用性:BLU Acceleration被设计为非常简单易用。根据DBA的观点,您只需装入并执行即可,不需要创建二级对象(比如索引或MQTs)来提高查询性能。BLU Acceleration为分析工作负载提供很好的开箱即用性能。
2.按列组织的表(column-organized table):按列组织的表将会存储磁盘上单独一组页面的每一列。在磁盘上按照列组织数据可以减少处理查询所需的I/O数量,因为只需要访问查询中引用的列。柱状构造(columnar organization)支持从列子集中访问大量值,并频繁地使用聚合和联接(join)的分析查询。只有处理查询所需的列数据才会从磁盘加载到内存中。通过尽可能晚地实现列的具体化,BLU可以充分利用根据谓词执行的筛选,产生大量的I/O节约。最后,与其他供应商不一样,在可以开始执行SQL之前,BLU并不需要将所有活动数据都加载到内存中。
3.可行性压缩:使