卡桑德拉数据模型

时间:2011-12-11 18:56:51

标签: nosql cassandra

我正在研究POC来展示Cassandra的工作原理。我以Digg为例。我想创建一个让我来的数据模型:

1)添加链接 2)添加指向用户收藏列表的链接。 3)将预定标签附加到链接

我提出了两个专栏系列:

  1. 链接

    • url是关键
      • id(生成的uuid)
      • 用户(添加了它)
      • favCount(没有收藏该链接的用户)
      • upCount(不喜欢它的用户)
      • downCount(不喜欢它的用户)
  2. UserFavs

    • 用户是关键
      • id(与用户一样多的ID)
  3. 这适用于上面的#1和#2要求,但是当我来到#3时它变得更加棘手。我可以在Links列系列中添加像'java','languages','architecture'这样的标签作为列名,空值。但是查询将需要很长时间,让我们说如果我要查找在“java”下标记的所有链接。

    任何人都可以提出一些如何实现这一点的想法。

    如果我不清楚这个问题,请告诉我。

    谢谢Kumar

1 个答案:

答案 0 :(得分:3)

您可以创建辅助索引,即键入标记的列族。每行包含该特定标记的所有链接。注意,这可能导致非常宽的行(即,具有许多列),每个行将存储在单个cassandra节点上。如果它们变得非常大,你可能想要一个方案来拆分它们。

请参阅http://www.datastax.com/docs/0.7/data_model/cfs_as_indexes

http://pkghosh.wordpress.com/2011/03/02/cassandra-secondary-index-patterns/

或google cassandra secondary index