- 1、本文档共32页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第5章Hadoop分布式数据库HBASE;;5.1.1HBase简介;5.1.2HBase数据模型;5.1.2HBase数据模型;5.1.2HBase数据模型;5.1.2HBase数据模型;(3)RowKey(行键)
RowKey是用来唯一确定一行的标识,不同的行键代表不同的行,是检索记录的主键,必须在设计上保证其唯一性。访问表中的行只有三种方式:通过单个行键访问;通过一个行键的范围来访问;全表扫描。行键可以是任意字符串,数据按照行键的字母顺序存储在表中,因此行键的设计非常重要,需要将经常一起读取的行存储在一起。数据的存储目标是相近的数据存储到一起。比如,若行键格式是网站域名,则可以将域名进行反转(org.apache.www,org.apache.mail,org.apache.jira)再存储。这样的话,所有Apache域名将会存储在一起。;(4)ColumnFamily(列族)
Hbase表中的每个列,都归属于某个列族。列族是表模式的一部分,必须在表使用前定义,每个表至少有一个列族。一个列族的所有列具有相同的前缀,列可以表示为列族:列限定符,例如列class:name,class:sno都属于class这个列族。
(5)Cell(单元)
HBase中值是作为一个单元存储在系统中,是由行键、列族、列限定符和时间戳唯一确定的单元。Cell中的数据全部是字节数组,以二进制形式存储。;(6)Timestamp(时间戳)
时间戳是写在值旁边的一个用于区分值的版本的数据。默认情况下,时间戳表示的是当数据写入HRegionSever时系统自动赋值的时间点,也可以在写入数据时指定一个不同的时间戳。但为避免数据版本冲突,必须保证时间戳的唯一性。时间戳的类型一般是64位整型。每个Cell中,不同版本的数据按照时间倒序排序,即必威体育精装版的数据排在最前面,可以被最先读取。;接下来用一个实例来解释HBase的数据模型,如下图5-1所示。;2、概念视图
若在关系型数据库中有一张客户表Customer,主要包括客户编号(cid)、姓名(name)、所在城市(city)、电话(tel)四个字段,主键为cid。如下表5-1所示:
;主键可以唯一标识一行记录,所以很容易通过客户编号找到其电话号码,但如果碰到以下问题该如何处理?
(1)如果新增客户编号为“101”的客户属性性别为“女”,能否不修改表结构的情况下保存???性别信息?
(2)如果客户编号为“101”的客户有了新的电话号码,能否保存新旧两个电话号码?
(3)如果某个客户只有客户编号、姓名和电话信息,而没有所在城市的信息,能否只存储客户编号、姓名和电话信息而节省存储空间呢?;而对于HBase,以上需求可以完美解决。下表5-2将客户表Customer转为HBase中的概念视图。;(1)新增客户编号为“101”的客户属性性别为“女”,不需要修改表结构(列族结构不变)保存其性别信息,只需插入数据,列attach:xb赋值为“女”即可。如下表所示:;(2)客户编号为“101”的客户有了新的电话号码,可以保存新旧两个电话号码,只需插入数据列attach:tel赋值为即可,如下表所示。因为数据是以时间戳降序排列,所以如果读取行键为“101”的电话默认是必威体育精装版电话。;3、物理视图
从概念视图层面看,HBase中每个表是由许多行组成,但在物理层面,HBase并不像关系型数据库采用基于行的存储方式,而是采用了基于列的存储方式。;5.1.3HBase体系结构;5.1.3HBase体系结构;5.1.3HBase体系结构;5.1.3HBase体系结构;5.1.3HBase体系结构;5.1.3HBase体系结构;5.1.3HBase体系结构;5.1.3HBase体系结构;5.1.3HBase体系结构;5.1.3HBase体系结构;5.2.2HBaseShell命令;disable;list;5.2.3HBase编程;谢谢
文档评论(0)