【导读】本文介绍了列式存储和OLAP(联机分析),以及列式存储与OLAP的契合点,探讨了如何根据OLAP特点选择数据平台。
过去的历史阶段,IT行业对于数据库的选择相对比较单元化,基于行式存储的关系型数据库基本一统江湖。因此OLTP & OLAP业务均以关系型数据库理论为基础来设计数据视图以及数据模型。随着数据量的爆发式发展,人们逐渐发现传统行式存储在处理特殊业务场景时候的不足,尤其是面对海量数据的处理性能问题。于是,过去曾不为人知的一些列式数据库逐渐走上历史舞台。而且在应用的过程当中,人们基于特殊的场景进行一版又一版的修改和优化,使得某些列式存储越来越适合今天的一些OLAP业务场景。今天我们就来分析分析这二者之间的内在缘由。
1. 列式存储的特点
说起列式存储或者列式数据库,大家可能最想知道它是何方妖魔?具有何种武艺?
关于列式存储或者列式数据库,我们在专门的文章《NOSQL DB:Hbase 列式数据库七问》当中曾经以Hbase为例对其基本概念、数据结构、数据存取特点、底层存储结构、性能优势等方面进行过详细的介绍。当然列式存储还有很多种产品,比如Bigtable,Cassandra,Druid,Hypertable,MariaDB,ClickHouse。每一种产品虽然都具备列式存储的特点,但是在数据模型、存取特点、支持特性等各方面都各有千秋。本次文章当中,我们 仅从几个与OLAP业务类型相关的方面来分析。
1.1 海量数据的单维度处理与精准定位数据的多维度处理
首先,我们对比行式存储,其最大的区别就在于物理存储结构的不同,具体如下所示: