美文网首页
第四课 HTable基本概念

第四课 HTable基本概念

作者: Arroganter | 来源:发表于2018-09-27 18:47 被阅读9次

从一个示例说起

传统的关系型数据库想必大家都不陌生,我们将以一个简单的例子来说明使用RDBMS和HBase各自的解决方式及优缺点。

以博文为例,RDBMS的表设计如下:


image.png

为了方便理解,我们以一些数据示例下

image.png

上面的例子,我们用HBase可以按以下方式设计

image.png

同样为了方便理解,我们以一些数据示例下,同时用红色标出了一些关键概念,后面会解释

image.png

HTable一些基本概念

  • Row key

行主键, HBase不支持条件查询和Order by等查询,读取记录只能按Row key(及其range)或全表扫描,因此Row key需要根据业务来设计以利用其存储排序特性(Table按Row key字典序排序如1,10,100,11,2)提高性能。

  • Column Family(列族)

在表创建时声明,每个Column Family为一个存储单元。在上例中设计了一个HBase表blog,该表有两个列族:article和author。

  • Column(列)

HBase的每个列都属于一个列族,以列族名为前缀,如列article:title和article:content属于article列族,author:name和author:nickname属于author列族。
Column不用创建表时定义即可以动态新增,同一Column Family的Columns会群聚在一个存储单元上,并依Column key排序,因此设计时应将具有相同I/O特性的Column设计在一个Column Family上以提高性能。

  • Timestamp

HBase通过row和column确定一份数据,这份数据的值可能有多个版本,不同版本的值按照时间倒序排序,即最新的数据排在最前面,查询时默认返回最新版本。如上例中row key=1的author:nickname值有两个版本,分别为1317180070811对应的“一叶渡江”和1317180718830对应的“yedu”(对应到实际业务可以理解为在某时刻修改了nickname为yedu,但旧值仍然存在)。Timestamp默认为系统当前时间(精确到毫秒),也可以在写入数据时指定该值。

  • Value

每个值通过4个键唯一索引,tableName+RowKey+ColumnKey+Timestamp=>value,例如上例中{tableName=’blog’,RowKey=’1’,ColumnName=’author:nickname’,Timestamp=’ 1317180718830’}索引到的唯一值是“yedu”。

  • 存储类型

TableName 是字符串
RowKey 和 ColumnName 是二进制值(Java 类型 byte[])
Timestamp 是一个 64 位整数(Java 类型 long)
value 是一个字节数组(Java类型 byte[])。

谢谢

相关文章

  • 第四课 HTable基本概念

    从一个示例说起 传统的关系型数据库想必大家都不陌生,我们将以一个简单的例子来说明使用RDBMS和HBase各自的解...

  • HTable基本概念

    从一个示例说起 传统的关系型数据库想必大家都不陌生,我们将以一个简单的例子来说明使用RDBMS和HBase各自的解...

  • HTable基本概念

    从一个示例说起 传统的关系型数据库想必大家都不陌生,我们将以一个简单的例子来说明使用RDBMS和HBase各自的解...

  • HTable基本概念

    从一个示例说起 传统的关系型数据库想必大家都不陌生,我们将以一个简单的例子来说明使用RDBMS和HBase各自的解...

  • HTable基本概念

    从一个示例说起 传统的关系型数据库想必大家都不陌生,我们将以一个简单的例子来说明使用RDBMS和HBase各自的解...

  • Hbase性能调优

    client端 HTable.setAutoFlush(false) 关闭客户端自动刷新 HTable.setWr...

  • HTable和HTablePool使用注意事项

    HTable和HTablePool使用注意事项 HTable和HTablePool都是HBase客户端API的一部...

  • HBase优化四——HTable优化

    HTable是HBase客户端与HBase服务端通讯的Java API对象,客户端可以通过HTable对象与服务端...

  • hbase(一) : HTable

    hbase1.3HTable 是我们对数据读取,操作的入口, implements HTableInterface...

  • Hbase客户端API(1)

    Hbase的主要客户端接口通过org.apache.hadoop.hbase.client包中的HTable类来实...

网友评论

      本文标题:第四课 HTable基本概念

      本文链接:https://www.haomeiwen.com/subject/aohyoftx.html