HBase_HBase 中表的组织格式

    由于我对HBase 中的表 ,存在非常多的疑惑。所以现在我对 HTable 的组织形式做一个整理。

先上一个表 官腔一点的描述:

HBase 是按照 BigTable 模式实现的,是一个稀疏的,分布式的,持久化的,多维的映射,由行键,列键和时间戳索引。

    HBase 中的表 存在 行键,列族, 列, 时间戳(版本) 各种各样的概念。

    那么它们之间是一个什么样的关系呢?

其实简单的来说它们是如下的一种方式

(Table, RowKey,Family,Column,Timestamp)-> Value

其实更像Java中这样的一个结构

SortedMap<
    RowKey, List<
        SortedMap<
            Column, List<
                Value,    Timestamp
            >
        >
    >
>

或者用这样的Java数据结构来表示
SortedMap<RowKey,List<SortedMap<Column,List<Value,Timestamp>>>>

 

 

一个简单的样例

HBase_HBase 中表的组织格式

 

 

列族

这里,我先大家可能对列族这个概念还是不是很了解。

我的理解 :

   一行由若干列组成,若干列又构成一个列族 (column family),这不仅有助于构建数据的语义边界 或者 局部边界。还有助于给它们设置某些特性(如压缩),或者指示它们存在内存中。

     一个列族的所有列 存储在 同一个底层的存储文件中,这个存储文件叫做 HFile

列族更像是一种数据组织的形式,来对列进行组织的 !!!