2

一种实现在hbase中存储set的思路

 2 years ago
source link: https://lichuanyang.top/posts/46290/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

一种实现在hbase中存储set的思路

发表于

2017-04-10 更新于 2021-09-23

阅读次数: 248 Valine: 0

我们知道,hbase中存放的数据就是二进制的键值对,不像redis一样提供了各种各样数据结构的支持。如果我们想在hbase中存储set型的数据,该怎么做呢?当然,一种方法就是把这个set当作一个对象整体的序列化之后存到hbase上,但这样后续无论增删改查,都需要先把存储内容拿回来,做相应的修改后,再整体覆盖原有值。这么做显然不太合理。

我们希望的效果至少要包括这么几个特点:
1. 元素自动去重,这是一个set的基本要求;
2. 增删改这些对集合单个元素的操作,无须处理其他元素;
3. 方便查询,包括查询整个集合,和判断某一特定元素是否存在

这里提供一种思路实现这种效果,就是把元素的值存放在hbase的qualifier中,作为一个键,而value则随便塞一个值,不实际使用。

这样,由于hbase本身会对qualifier判重,所以元素不会重复,所有对单个元素的操作,都只需要操作这个qualifier, 需要获取整个集合时,也可以通过直接查这一行来实现。

欢迎关注我的其它发布渠道


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK