第三章 Hbase
01 Hbase数据模型
逻辑模型

HBase相关概念
1 | (1)表(table):HBase采用表来组织数据; |
物理模型
1 | 关系型数据库特点: |
1 | HBase特点: |


实际存储方式



02 Hbase数据定义
HBase Shell
1 | HBase Shell:HBase的命令行工具,最简单的接口,适合HBase管理使用; |
1 | [root@localhost bin]# hbase shell |
数据定义

创建表
1 | 语法:creat‘表名’,‘列族名’ |

表相关操作
exsit
1 | exsit:查看某个表是否存在 |

List
1 | List:查看当前所有的表名 |

describe
1 | describe:查看选定表的列族及其参数 |

Alter
1 | Alter:修改表结构 |

drop
1 | drop:删除表 |

truncate
1 | truncate:删除表中所有数据,想到于对表完成禁用、删除,按原结构重新建立表结构的过程 |

03 Hbase数据操作

1 | 在HBase中对数据的增删改查命令如表所示,由put命令向表中添加和修改数据,get和scan命令用来查询数据,delete删除列族或列的数据。接下来详细介绍这几个命令的具体用法。 |
put
为单元格插入数据
1 | 语法:put ‘表名’,‘行键’,‘列族:列限定符’,‘单元格值’,时间戳 |

1 | 在HBase中,更新数据时,不管是添加新的数据还是修改数据都使用put命令,它的语法结构如ppt所示,put命令所带的第一个参数为表名,指定某一张表,第二参数为行键的名称,用来指定某一行,第三个参数是为列族和列的名称,中间用冒号隔开,列族名必须是已经创建的,否则HBase会报错;列名是临时定义的,所以列族里的列是可以随意扩展的。第四个参数为单元格的值,在HBase里,所有数据都是字符串的形式。最后一个参数为时间戳,如果不设置时间戳,系统会自动插入当前时间为时间戳。 |
更新单元格数据
1 | 描述: |

1 | 另外如果由‘表名’,‘行键’,‘列族:列限定符’指定的单元格已经存在表中,则执行put命令为数据更新操作, |
delete
1 | 语法:delete ‘表名’,‘行键’,‘列族<:列限定符>’,<时间戳> |
1 | HBase中删除数据采用delete命令,其语法与put命令类似,必须指定表名,行键,和列族。而列限定符和时间戳是可选的 |
1 | delete操作并不会马上删除数据,只是将对应的数据打上删除标记(tombstone),只有在数据产生合并时,数据才会被删除。 |
数据查询
get
1 | get:根据行键获取一条数据 |

1 | 第三条命令指定了列族和时间戳范围, |

scan
1 | 语法:scan ‘表名’,{< ‘列族:列限定符’,时间戳>} |

1 | 另外一种数据查询方式使用scan命令进行全表扫描,scan命令必须带的参数是表名,其他参数都可选,还可以指定输出行键范围,以及使用过滤器来对全表数据进行过滤显示。 |

1 | 第五条命令指定输出行的范围;显示结果输出起始行和结束行但不包括结束行的数据,如图的命令只显示了001行的数据,并没有显示003行。 |