[转]BigTable/HBase基本概念解读 & Hbase shell常用命令

转自:http://ptsolmyr.com/2010/12/03/bigtable_hbase/ & http://blog.csdn.net/hongbinchen/article/details/6289279

 

BigTable是Key/Value数据库的元老之一。作为Google平台的主要部件,它相对于其他的K-V store较为复杂。在BigTable论文中,是这样定义的:

A Bigtable is a sparse, distributed, persistent multidimensional sorted map.

进一步解释如下:

The map is indexed by a row key, column key, and a timestamp; each value in the map is an uninterpreted array of bytes.

HBase则是Apache的一个模仿BigTable的项目,它在自我介绍时也毫不掩饰这一点:

HBase uses a data model very similar to that of Bigtable. Users store data rows in labelled tables. A data row has a sortable key and an arbitrary number of columns. The table is stored sparsely, so that rows in the same table can have crazily-varying columns, if the user likes.

这几句话看起来还是有些抽象,下面按下面几个关键字逐个解释一下:map, persistent, distributed, sorted, multi-dimentional, sparse

阅读更多

用shell将时间字符串与时间戳互转

在shell中,字符串转换为时间戳可以这样做:

date -d "2010-10-18 00:00:00" +%s

不需要指定时、分、秒的话,直接写日期就可以了:

date -d "2010-10-18" +%s

输出形如:

1287331200

其中,-d参数表示显示指定的字符串所表示的时间,+%s表示输出时间戳。

 

而时间戳转换为字符串可以这样做:

date -d @1287331200

输出形如:

Mon Oct 18 00:00:00 CST 2010

文章来源:http://www.codelast.com/

如果要转换成“2010-10-18 00:00:00”这种形式的日期时间字符串,则这样做:

date -d "1970-01-01 UTC 1287331200 seconds" "+%F %T"

输出形如:

2010-10-18 00:00:10

 

再多废话一句,如果只要输出日期,不要时间,则去掉 %T 就可以了:

date -d "1970-01-01 UTC 1287331200 seconds" +%F

输出形如:

2010-10-18

文章来源:http://www.codelast.com/

顺便再记一下取昨天日期的方法:

date -d "yesterday" +"%Y-%m-%d"

输出形如:
2010-08-22