HBase中的rowName和id之间有什么区别?
比方说,我有这样一个实体,我想坚持到HBaseHBase中的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的 行键设
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
,时间戳
,时间戳
您可以阅读更多关于它的信息: