网站大量收购闲置独家精品文档,联系QQ:2885784924

HBASE数据库.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
HBASE数据库要点

HBASE数据库简介base 是 bigtable 的开源 java 版本。是建立在 hdfs 之上,提供高可靠性、高性能、列存储、可伸缩、实时读写 nosql 的数据库系统。它介于 nosql 和 RDBMS 之间,仅能通过主键(row key)和主键的 range 来检索数据,仅支持单行事务(可通过 hive 支持来实现多表 join 等复杂操作)。主要用来存储结构化和半结构化的松散数据。结构化:数据结构字段含义确定,清晰,典型的如数据库中的表结构.半结构化:具有一定结构,但语义不够确定,典型的如 HTML 网页,有些字段是确定的(title),有些不确定(table)非结构化:杂乱无章的数据,很难按照一个概念去进行抽取,无规律性Hbase 查询数据功能很简单,不支持 join 等复杂操作,不支持复杂的事务(行级的事务)Hbase 中支持的数据类型: byte[]与 hadoop 一样, Hbase 目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。HBase 中的表一般有这样的特点:1、 大:一个表可以有上十亿行,上百万列2、 面向列:面向列(族)的存储和权限控制,列(族)独立检索。3、 稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。表结构逻辑视图Rowkey访问 hbase table 中的行,只有三种方式:1、 通过单个 row key 访问2、 通过 row key 的 range3、 全表扫描Row key 行键 (Row key)可以是任意字符串(最大长度是 64KB,实际应用中长度一般为10-100bytes,在 hbase 内部, row key 保存为字节数组。 Hbase 会对表中的数据按照 rowkey排序(字典顺序)[推荐8或者16位]存储时,数据按照 Row key 的字典序(byte order)排序存储。设计 key 时,要充分排序存储这个特性,将经常一起读取的行存储放到一起。 (位置相关性) 行的一次读写是原子操作 (不论一次读写多少列)。列簇( Column Family)hbase 表中的每个列,都归属与某个列族。列族是表的 schema 的一部分(而列不是),必须在使用表之前定义。列名都以列族作为前缀。例如 courses:history , courses:math 都属于 courses 这个列族。访问控制、磁盘和内存的使用统计都是在列族层面进行的。[不要设置很多的列簇]时间戳HBase 中通过 row 和 columns 确定的为一个存贮单元称为 cell。每个 cell 都保存着同一份数据的多个版本。版本通过时间戳来索引。时间戳的类型是 64 位整型。时间戳可以由 hbase(在数据写入时自动 )赋值,此时时间戳是精确到毫秒的当前系统时间。时间戳也可以由客户显式赋值。如果应用程序要避免数据版本冲突,就必须自己生成具有唯一性的时间戳。每个 cell中,不同版本的数据按照时间倒序排序,即必威体育精装版的数据排在最前面。为了避免数据存在过多版本造成的的管理 (包括存贮和索引)负担, hbase 提供了两种数据版本回收方式:保存数据的最后 n 个版本保存最近一段时间内的版本(设置数据的生命周期 TTL)。用户可以针对每个列族进行设置。Cell由{row key, column( =family + label), version} 唯一确定的单元。cell 中的数据是没有类型的,全部是字节码形式存Hbase集群结构Hbase基本概念RowKey:是Byte array,是表中每条记录的“主键”,方便快速查找,Rowkey的设计非常重要。Column Family:列族,拥有一个名称(string),包含一个或者多个相关列Column:属于某一个columnfamily,familyName:columnName,每条记录可动态添加Version Number:类型为Long,默认值是系统时间戳,可由用户自定义Value(Cell):Byte arraHbase物理模型每个column family存储在HDFS上的一个单独文件中,空值不会被保存。Key 和 Version number在每个 column family中均有一份;HBase 为每个值维护了多级索引,即:key, column family, column name, timestamp物理存储:1、Table中所有行都按照row key的字典序排列;2、Table在行的方向上分割为多个Region;3、Region按大小分割的,每个表开始只有一个region,随着数据增多,region不断增大,当增大到一个阀值的时候,region就会等分会两个新的region,之后会有越来

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档