如何使用 Riak 对卡桑德拉的超级色谱柱系列进行建模?



我们正在研究为我们的web服务选择nosql数据库。我们已经尝试过Cassandra,并使用Cassandra列族和超级列族成功地对我们的原始MySQL数据进行了建模。这是一次非常有趣的经历。现在,我们开始研究Riak,并想知道如何使用Riak来建模Cassandra的超级柱族。

例如,我们有一个超级列族来存储用户的所有好友,其中用户的id是key,好友连接时的时间戳是secondary key,以及节点列族中好友的键值对。

uid1 ---- t1 ---- key1 : value11
                  key2 : value12
          t2 ---- key1 : value21
                  key2 : value22
          ...     ...    ...
uid2 ---- tm ---- key1 : valuem1
                  key2 : valuem2
          tn ---- key1 : valuen1
                  key2 : valuen2
          ...     ...    ...

uidx ---- .... 

通过以上数据建模,一种用法是我们可以进行范围查询,以获取在给定时间范围内连接的用户(例如uid1)的所有朋友(或给定数量的朋友)。

对于Riak,应该如何对数据进行建模以实现上述使用场景?

在Riak中,您将使用链接。你可以存储用户信息,朋友的用户信息,然后创建一个从一个朋友到另一个朋友的"链接"。如果您愿意,这可以是双向的。

Link: </riak/users/alice>; riaktag="bob"

最新更新