比方说,我有这样一个实体,我想要持久化到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,还是应该生成比id更多的rowName
发布于 2019-01-22 07:07:57
我认为,您将row key称为row name。
行键设计是HBase表设计的关键部分。
行键用于索引HBase表。HBase中的行按行键按字典顺序排序。这种设计优化了扫描,允许您将相关行存储在同一区域中,或者将一起读取的行存储在彼此附近。
HBase会计算出记录在移动过程中会转到哪个区域。
而作为示例一部分的ID是记录类型Message的一部分。它可以作为列存储在柱族中。但它不会对决定记录应该写入哪个区域起到作用。
此外,如果您有多个具有相同消息类型但in不同的列族,则可以将所有内容存储在一行中(使用一个行键)。每行都有一个与列族和列限定符相关的时间戳。
<Row1, CF1<ID:1,Chat:abc,To:A1,From:B1>>,timestamp
<Row1, CF2<ID:1,Chat:abc,To:A1,From:B1>>,timestamp您可以阅读更多相关内容:http://hbase.apache.org/0.94/book/rowkey.design.html
https://stackoverflow.com/questions/54295407
复制相似问题