题外话,今天无意中查看以前写的blog,发现好多blog的呈现只有一堆乱码,正文不见了。可是点击编辑正文又出现了... 我这算是给CSDN报bug了。
最近看了好些文章,将bigtable/hbase等归入column store(列存储)。甚至,将column store做为了NOSQL的一部分。这样的观点是不对的。
首先需要解释一下什么是column store。举个简单例子(现摘自wiki,我是懒人...):
这是database中的一张table。对于传统的DBMS,它在Disk上大概是这样排列数据的:
1 Smith Joe 40000 ;
2 Jones Mary 50000 ;
3 Johnson Cathy 44000 ;
table中的每一行(即每一条记录)在Disk上是紧密排列的,也就是raw-oriented store。一般最常用的Database,比如MySQL,Oracle等等,都属于此类。
而colum store则不同,它在Disk是这样的:
1,2,3;
Smith,Jones,Johnson;
Joe,Mary,Cathy;
40000,50000,44000;
它将table中的每一列的数据项放在了一起。(必须得说,这只是一个基本的概念,实际中的colum store会更复杂一