最近、いくつかのソーシャル グラフ情報をデータベースに保存したいと考えています。ユーザーは、ソーシャル グラフを持つサーバー側で発生する自動「マッピング」によって新しいソーシャル ノードを発見します。
背景: 新しいクライアントが訪問するたびに、他のソースから既存のソーシャル ノードを保存します。その 1 つの例が Facebook です。そのため、Facebook の友達のリストとそのクライアントの Facebook ID があり、それらをデータベースに保存しています。次にサーバーは、クライアントのフレンド リスト内の各項目を既存のクライアントと照合しようとします。一致する場合、このクライアントには私のサービスを使用している友人がいます。次に、サーバーは一致したリストを返し、エッジの反対側で一致をマークします。次にクライアントの友達が戻ってきたときに、マッチングが完了したという通知も受け取ります。
障害: 私の問題は、このメカニズムではサーバーがクライアントのソーシャル グラフの完全なリストを格納する必要があることです。私の例では、これはクライアントの Facebook の友人の完全なリストです。このソーシャル グラフは任意に大きくなる可能性があるため、1 つのアイテムに格納することはできませんが、クライアント ID とフレンド ID のペアを使用して、複数のアイテムまたは行にまたがります。この方法で保存すると、キーがかなり不均一に分散される可能性があり、DynamoDB を使用できなくなります。ただし、高速アクセスの利点を得るために、一部の AWS NoSQL サービスに保存する可能性を探りたいと考えています。
これらのデータを AWS NoSQL サーバーに保存する良い方法はありますか? または、効率をあまり落とさずに RDS に入れるためにできる最適化は何ですか?