横看成岭侧成峰 列数据库也有自己的春天
列数据库是什么?它究竟有什么样的作用?这些问题可以说是质疑者们经常谈到的。虽然列数据库默默无闻,但是它们的能力与优势,却是不容抹杀的,列数据库也会有自己的春天。
列数据库的定义
列存储数据库就是以关系数据库中的属性或列为单位进行存储,数据表记录中的同一属性值被存储在一起,而一条记录中不同属性值则分别存放于不同的文件中。有列存储数据库就应该存在行存储数据库,传统以记录或行数据位单位进行存储的数据库成为行存储数据库或行数据库。
列数据库的应用
最出名的列数据库自然是Sybase IQ。由于列存储中查询的选择规则是通过列来定义的,所以整个列数据库其实就是自动化索引的。在数据压缩方面,Sybase IQ较传统的关系型数据库更加有效,甚至能达到五倍的效果。
Sybase IQ
其实各位对于列存储数据库的理解,可以借用Excel。我们一般都是按照时间顺序,以行为单位储备信息。但是在很多时候,我们要做的加减乘除却是在列里面完成,所以列存储数据库在精确分析,找寻合适数据量方面有其优势。
列数据库主要用于数据挖掘、决策支持和地理信息系统等查询密集型系统中,因为一次查询就要得出结果,而不能每次都要遍历所有的数据库。所以彭凡在某国内数据库厂商发布会上看到的列存储数据库案例,大多都是应用在人口统计调查、医疗分析等行业中。这种行业需要处理大量的数据统计分析,假如采用行数据库,势必消耗时间会无限放大。
列数据库不是关系型数据库的“终结者”
谈到了这么多列数据库的好处,大家肯定在想:为什么不能利用这些NoSQL取代关系型数据库?关系型数据库不是已经日薄西山了吗?在这里我们还要从普通企业的商业模式谈起。
对于目前大多数企业的模式来说,还是习惯把用户的数据记录在一行当中,数据库中的一行就是一个“帐户”,这种固定思维可以说还是一种一对多的思想在作怪。以这种思想建立起来的行数据库当然是数据库市场上的强者,Oracle、微软和IBM等企业的数据库也几乎全是行存储数据库。列存储数据库,在市场上占据的份额可以说是微乎其微。
如果不是NoSQL的兴起,很多人怕是还不会注意到列数据库。虽说列数据库历史久远,但是曝光度可能还不及Cassandra等后来者,主要知名的也就是Sybase IQ、Infobright等国外品牌。不过这可能是因为之前列数据库厂商还只是一门心思想着如何对抗行数据库,没有想到共生共赢的思路。比如目前NoSQL运动都改为Not Only SQL,意图不再是取代关系型数据库,而是要为了更好的数据库性能共同合作。NoSQL不再是关系型数据库的终结者了。
有的厂家在推出新的列数据库产品时,可以是附加在原有关系型数据库上的产品,提供的服务主要是基于数据挖掘和决策支持系统。通过这种形式提升用户的数据库利用效率,达到自身发展的目的。这种模式可以说为列数据库的发展开辟了新的途径,让更多的DBA接触到列数据库,了解列数据库,这样才能促进列数据库的发展。
横看成岭侧成峰,远近高低各不同。关系型数据库在数据库市场一家独大的历史正被翻过去,变化多端的市场决定了需要多样化的技术实现手段。可以预见到,列数据库的春天正在到来。