HBase Shell建表与数据操作

1、    创建表的时候只需定义表名和列族名,每个表至少有一个列族,表的任意选项设置后续都可以修改

2、    建表语法:create 'tablename', {NAME => 'colfam'}

例子:create 'move', {NAME => 'desc', NAME => 'media'}

简写形式:create, 'move', 'desc', 'media'

3、    Get/Scan用于检索数据。Get需要根据具体的row key进行检索,查询单行数据。

格式:hbase> get 'table_name', 'row_key'[,timestamp]

例子:hbase> get 'movie', 'row1'

           hbase> get 'movie', 'row1',{COLUMN =>'desc:title'}

           hbase> get 'movie', 'row1',{COLUMN =>'desc:title', VERSIONS => 2}

           hbase> get 'movie', 'row1',{COLUMN => 'desc'}

4、    无法精准确认取哪行数据,需要扫描一批而非一行数据时使用Scan,用于扫描检索所有行

1)  Scan可以检索start row key 和end row key范围内的所有行信息。start row key会包含在查询结果里,end row key信息不包含在查询信息里,检索直到结束行健停止

2)  不指定起始和结束行,默认扫描全表

3)  scan同样支持过滤器,减少返回给客户端的行数量

格式:hbase> scan 'table_name'[, options]

例子:hbase> scan 'movie'

          hbase> scan 'movie', {LIMIT => 10}

          hbase> scan 'movie', {STARTROW => 'row1', STOP=> 'row5'}

5、    Put用于插入数据

1)         Put实现插入由行键确定的一个新行,向表中插入一行表中没有的新行

2)         可以多次调用Put,实现插入不同行键的多行内容

3)         如果插入的行表中已经存在,put操作将会更新对应的值以及对应的时间戳,未被修改的列不变

4)         如果列族的定义中只保留一个版本,则只有这个新值会存在。如果列族中的每个列定义了保留N个版本,则之前的N个版本的内容都会保留下来

格式:hbase> put 'table_name', 'row_key','colfam:col', 'value'[, options]

例子:hbase> put 'movie', 'row1', 'desc:title','ellen'

          hbase> put 'movie', 'row1', 'desc:title', 'ellen2', 234343242342

6、    Delete标记已被删除的数据

1)         Delete用于删除行键对应的行信息,被删除的行在HBase上并没有被删除,只是被标记成列删除,随后才真正删除这些数据

2)         数据在HDFS上被标记为删除但并不会物理删除,后续会对HDFS上标记为删除的数据进行物理删除        

3)         使用deleteall删除整行数据                  

hbase> deleteall 'table_name','rowKey'

4)         使用truncate删除所有数据                  

hbase> truncate 'table_name'

你可能感兴趣的:(HBase)