如何使用Riak为Cassandra的超级列族建模?

时间:2012-07-16 04:27:05

标签: cassandra data-modeling riak

我们正在研究为我们的Web服务选择一个nosql数据库。我们尝试过使用Cassandra色谱柱系列和超级色谱柱系列的Cassandra并成功建模我们原始的MySQL数据。这是一次非常有趣的经历。现在,我们开始研究Riak并想知道Cassandra的超级列系列是如何使用Riak建模的。

例如,我们有一个超级列系列来存储用户的所有朋友,用户的id是密钥,朋友作为辅助密钥连接时的时间戳,以及节点列中朋友的键值对家庭。

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,如何建模数据以实现上述使用场景?

1 个答案:

答案 0 :(得分:1)

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

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