使用HBASE讨论线程

使用HBASE讨论线程,hbase,Hbase,我是Hbase的新手 我需要使用hbase实现讨论线程 每个讨论都有一个新行键 从hbase获取讨论的顺序与创建的行键相同(带有时间戳) 但每当讨论中添加新评论时, 我想向用户显示出现在列表顶部的讨论 但根据我目前的场景,当我在列表中对一个线程进行注释时,它不会出现,因为discusison线程的rowkey是基于时间戳的 我想用一个过滤器来实现这一点,但这将是一个昂贵的操作 有没有其他更好的方法来实现这一点 提前感谢。您可以同时写入第二个“索引”表(在引号中,因为与RDBMS不同,HBase没

我是Hbase的新手

我需要使用hbase实现讨论线程

每个讨论都有一个新行键

从hbase获取讨论的顺序与创建的行键相同(带有时间戳)

但每当讨论中添加新评论时, 我想向用户显示出现在列表顶部的讨论

但根据我目前的场景,当我在列表中对一个线程进行注释时,它不会出现,因为discusison线程的rowkey是基于时间戳的

我想用一个过滤器来实现这一点,但这将是一个昂贵的操作

有没有其他更好的方法来实现这一点


提前感谢。

您可以同时写入第二个“索引”表(在引号中,因为与RDBMS不同,HBase没有维护的自动声明性索引,您必须自己维护)。该表可以基于行键中的修改日期,并包含刚好足够的信息以在主表中查找记录(例如,它可以在行键中包含修改日期,然后在列值中包含创建日期)。然后,您的操作是在此“索引”表中进行线性扫描,以查找最近修改的记录,然后在主表中执行N个操作,每个要显示的记录对应一个操作

另一种完全不同的设计是,您可以在HBase中为每个用户存储一行,其中包含两个列族:一个用于用户的消息(每列都是一条消息,存储方式与您上面描述的类似,只是每个讨论都有一个列,而不是一行);然后,在另一个专栏系列中,您可以存储用户的“收件箱”,它只是按修改日期排序的前N条邮件的缓存,用于显示收件箱。作为列而不是行进行这些操作的优点是,在这种情况下,每用户的整个行都受到事务性保护,因此您可以执行更复杂的操作,如检查和设置,并且可以保证收件箱视图始终与最新消息一致