前言
逻辑上,HBase的数据模型和关系型数据库类似,数据存储在一张表中,有行有列。
注意,这个结构为逻辑结构,并非真正的存储格式。是用来理解hbase。
通过Excel表格来理解HBase的数据模型
personal_info | office_info | |||||
Row Key | name | city | phone | telephone | address | |
row_key1 | 张三 | 北京 | 131 | 010 | 北京市 | |
row_key11 | 李四 | 上海 | 132 | 021 | 上海市 | |
row_key2 | 王五 | 广州 | 133 | 020 | 广州市 | |
row_key3 | 赵六 | 黑龙江 | 134 | 0451 | 哈尔滨市 | |
row_key4 | 孙七 | 吉林 | 135 | 0431 | 长春市 | |
row_key5 | 周八 | 辽宁 | 136 | 024 | 沈阳市 | |
row_key6 | 吴九 | 浙江 | 137 | 0571 | 杭州市 | |
row_key7 | 郑十 | 天津 | 138 | 022 | 天津市 |
在表格中,可以提取出一下概念:
- name、city、phone、telephone、address 称为 列
- row_key1、row_key11、row_key2等 称为 Row Key(行键)
- personal_info、office_info称为 列族
- 表格中的该区域 称为 Region
row_key3 | 赵六 | 黑龙江 | 134 | 0451 | 哈尔滨市 | |
row_key4 | 孙七 | 吉林 | 135 | 0431 | 长春市 | |
row_key5 | 周八 | 辽宁 | 136 | 024 | 沈阳市 |
- 表格中的该区域称为 store
row_key1 | 张三 | 北京 | 131 |
row_key11 | 李四 | 上海 | 132 |
row_key2 | 王五 | 广州 | 133 |
各个概念详解
Row Key
在表中必须是唯一的而且必须存在的。Row Key是 按照字典序有序排列的。例如Excel中的排序:row_key11 排列在row_key1和row_ley2之间。
列族
不同列族放在hdfs不同文件夹中存储,列族中的列可以动态增加
Region
Region为一张表的切片,Region按照数据量和Row key进行切分。
整个Excel为一张表。整张表会按照垂直方向按列族切割,水平方向按照Row Key切割。
Store
Store为HBase真正存储的文件,store最终存储到hdfs中