Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HBase中的rowName和id之间有什么区别?_Hbase - Fatal编程技术网

HBase中的rowName和id之间有什么区别?

HBase中的rowName和id之间有什么区别?,hbase,Hbase,比方说,我有这样一个实体,我想坚持到HBase public class Message { private final String id; private final String chatId; private final String from; private final String to; private final long when; } 我是否应该删除id字段并简单地生成将用作id的rowName或rowName的 行键设

比方说,我有这样一个实体,我想坚持到HBase

public class Message {

    private final String id;

    private final String chatId;

    private final String from;

    private final String to;

    private final long when;

}

我是否应该删除
id
字段并简单地生成将用作
id
rowName
rowName

行键设计是HBase表设计的关键部分

行键用于索引HBase表。HBase中的行按行键按字典顺序排序。此设计优化了扫描,允许您将相关行存储在同一区域中,或将一起读取的行彼此相邻

HBase会计算出记录将进入哪个区域

而示例中的
ID
是记录类型
消息的一部分。它可以作为列存储在列族中。但这无助于决定将记录写入哪个地区

此外,如果有多个具有相同消息类型但ID不同的列族,则可以将所有列族存储在一行中(使用一个行键)。每行都有一个与列族和列限定符相关联的时间戳

<Row1, CF1<ID:1,Chat:abc,To:A1,From:B1>>,timestamp
<Row1, CF2<ID:1,Chat:abc,To:A1,From:B1>>,timestamp
,时间戳
,时间戳
您可以阅读更多关于它的信息: