HBase笔记整理(一)

HBASE 体系结构

表(table)
      划分数据集合的概念,和传统的db中的表的概念是一样的。

行键(RowKey):
  一行数据的唯一标示,要想操作(read/write)一条数据,必须通过行键,其在hbase底层都是使用字节数组进行存放,
    所以方便我们使用rk进行排序,
   行键是字节数组, 任何字符串都可以作为行键;表中的行根据行键进行排序,数据按照Row key的字节序(byte order)排序存储;
     所有对表的访问都要通过行键 (单个RowKey访问,或RowKey范围访问,或全表扫描)。

列族(columnFamily)
   简单的认为是一系列“列”的集合。列族是以单独的文件进行存储。

列限定符(column Qualifier)
   或者叫列。列里面的数据定位通过列限定符 每个CF可以有一个或多个列成员(ColumnQualifier),
   列成员不需要在表定义时给出,新的列族成员可以随后按需、动态加入。时间戳(version)
   在单元格中可以存放多个版本的数据。

单元格(cell)
   Cell 由行键,列族:限定符,时间戳唯一决定,Cell中的数据是没有类型的,全部以字节码形式存贮,主要用来存储数据。

 

HBase数据模型术语

表(Table)

HBase 会将数据组织进一张张的表里面,一个 HBase 表由多行组成。

行(Row)

HBase 中的一行包含一个行键和一个或多个与其相关的值的列。在存储行时,行按字母顺序排序。出于这个原因,行键的设计非常重要。目标是以相关行相互靠近的方式存储数据。常用的行键模式是网站域。如果你的行键是域名,则你可能应该将它们存储在相反的位置(org.apache.www,org.apache.mail,org.apache.jira)。这样,表中的所有 Apache 域都彼此靠近,而不是根据子域的第一个字母分布。

列(Column)

HBase 中的列由一个列族和一个列限定符组成,它们由:(冒号)字符分隔。

列族(Column Family)

出于性能原因,列族在物理上共同存在一组列和它们的值。在 HBase 中每个列族都有一组存储属性,例如其值是否应缓存在内存中,数据如何压缩或其行编码是如何编码的等等。表中的每一行都有相同的列族,但给定的行可能不会在给定的列族中存储任何内容。

列族一旦确定后,就不能轻易修改,因为它会影响到 HBase 真实的物理存储结构,但是列族中的列标识(Column Qualifier)以及其对应的值可以动态增删。

列限定符(Column Qualifier)

列限定符被添加到列族中,以提供给定数据段的索引。鉴于列族的content,列限定符可能是content:html,而另一个可能是content:pdf。虽然列族在创建表时是固定的,但列限定符是可变的,并且在行之间可能差别很大。

单元格(Cell)

单元格是行、列族和列限定符的组合,并且包含值和时间戳,它表示值的版本。

时间戳(Timestamp)

时间戳与每个值一起编写,并且是给定版本的值的标识符。默认情况下,时间戳表示写入数据时 RegionServer 上的时间,但可以在将数据放入单元格时指定不同的时间戳值。

二、实例

本节的示例是根据  BigTable 论文进行稍微修改后的示例。在本节的示例中有一个名为表 webtable,其中包含两行(com.cnn.www 和 com.example.www)以及名为 contents、anchor 和 people 的三个列族。在本例中,对于第一行(com.cnn.www), anchor 包含两列(anchor:cssnsi.com,anchor:my.look.ca),并且 contents 包含一列(contents:html)。本示例包含具有行键 com.cnn.www 的行的5个版本,以及具有行键 com.example.www 的行的一个版本。contents:html 列限定符包含给定网站的整个 HTML。锚(anchor)列族的限定符每个包含与该行所表示的站点链接的外部站点以及它在其链接的锚点(anchor)中使用的文本。people 列族代表与该网站相关的人员。

列名称:按照约定,列名由其列族前缀和限定符组成。例如,列内容: html 由列族contentshtml限定符组成。冒号字符(:)从列族限定符分隔列族。

 webtable 表如下所示:

此表中显示为空的单元格在 HBase 中不占用空间或实际上存在。这正是使 HBase “稀疏”的原因。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值