1

Webサービス用のnosqlデータベースの選択について調査中です。Cassandraを試し、Cassandra列ファミリーとスーパー列ファミリーを使用して元のMySQLデータをモデル化することに成功しました。とても面白い経験です。ここで、Riakを調べ始め、Riakを使用してCassandraのスーパーカラムファミリをどのようにモデル化するのか疑問に思います。

たとえば、ユーザーのすべてのフレンドを格納するスーパーカラムファミリがあり、ユーザーの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を使用する場合、上記の使用シナリオを実現するためにデータをどのようにモデル化する必要がありますか?

4

1 に答える 1

1

RiakではLinksを使用します。ユーザー情報、つまり友達のユーザー情報を保存してから、ある友達から別の友達への「リンク」を作成します。必要に応じて、これを双方向にすることができます。

Link: </riak/users/alice>; riaktag="bob"
于 2012-07-17T20:50:13.450 に答える