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を使用する場合、上記の使用シナリオを実現するためにデータをどのようにモデル化する必要がありますか?