智能进销存软件:革新现代库存管理
121
2023-11-13
【摘要】 本书摘自《OpenStack 云平台-部署与高可用实战》一书中第7.1.3节,肖睿 雷宇飞主编。
7.1.3.HBase 数据模型
(1)数据模型
HBase 数据模型由表组成,表由行和列组成。但是HBase 数据库中的行和列的概念 和关系数据库中不同。下面介绍 HBase 数据模型中的概念。
● 表 (Table):HBase 会将数据组织成表,表是稀疏表 (NULL 类型的数据不被存 储),表的索引是行关键字、列关键字和时间戳。需要注意,表名必须是能用在文件路径 里的合法名字,因为HBase 的表将映射成 HDFS 中的文件。
● 行 (Row): 在表里面,每一行代表一个数据对象,每一行都是以一个行关键字 (Row Key) 来唯一标识的。
● 行关键字 (Row Key): 行的主键,唯一标识一行数据,也被称为行键。表中的 行根据行键的字典顺序进行排序,管理员在设计行键时要充分利用排序存储的特性,将 经常一起读取的行存储在相邻位置。行键在添加数据时首次被确定,所有对表的数据操 作都必须通过表的行键进行。
● 列族(Column Family):HBase 表中的每一列都归属于某个列族,列族是表的模 式的一部分,而列不是。在定义HBase 表时需要提前设置好列族,列族一旦确定,不能 轻易修改。列族名称不能包含 ASCⅡ 控制字符 (ASCⅡ 码在0~31 间外加127)和冒号 (:)。
● 列关键字(Column Key):也称列键。列族中的数据通过列键进行映射,格式为:● 存储单元格 (Cell): 行键、列族和列关键字共同组成一个单元格,在该单元格 中存储数据。
● 时间戳 (Timestamp): 向 HBase 表中插入数据时都会使用时间戳进行版本标识, 作为单元格数据的版本号。每一个列族的单元格数据的版本数量都被 HBase 单独维护。 默认情况下, HBase 保留最近三个版本的数据。
下面结合 HBase 的概念视图来体会这些术语。
(2)概念视图
HBase 中的表可以看成是一个大的映射关系,通过行键、时间戳、列(family:qualifier) 可以定位到单元格中的数据。在 HBase 中,如果表格中的单元为空,将不占用空间资源。 表的概念视图如图7.4所示。
从图7.4可以看出,表由两个列族组成,分别是 Personal 和 Office, 每个列族包含两 个列,包含数据的实体称为单元格。每一个单元格可以有多个版本,通常插入数据时间 戳来表示不同版本。行数据会基于行键进行排序。
为了方便理解,可以将HBase 数据模型理解为多维映射,如图7.4中第一行数据的 多维映射如图7.5所示。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~