首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HBase中的rowName和id有什么区别?

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

Stack Overflow用户
提问于 2019-01-22 01:53:12
回答 1查看 243关注 0票数 0

比方说,我有这样一个实体,我想要持久化到HBase中

代码语言:javascript
复制
public class Message {

    private final String id;

    private final String chatId;

    private final String from;

    private final String to;

    private final long when;

}

我是应该删除id字段而只是生成用作idrowName,还是应该生成比id更多的rowName

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-22 07:07:57

我认为,您将row key称为row name

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

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

HBase会计算出记录在移动过程中会转到哪个区域。

而作为示例一部分的ID是记录类型Message的一部分。它可以作为列存储在柱族中。但它不会对决定记录应该写入哪个区域起到作用。

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

代码语言:javascript
复制
<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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54295407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档