2017-04-25 8 views
0

私はmongodbからdynamodbにデータベースを移行しており、特にセカンダリローカルインデックスとソートキーを使用して、ベストプラクティスを理解しようとしています。DynamoDBでセカンダリインデックスまたは個別IDルックアップテーブルを使用する必要がありますか?

私のアプリケーションは、Webからhtmlデータを取得し、いくつかのテーブル/コレクションにデータを読み込みます。抽出時に、各​​項目にはextracted_idという、それが引かれたウェブサイトに固有のものが与えられます。アイテムをロードする前に、各アイテムにプライマリ/パーティションキーとしてのUUIDを与えます。エンティティは、既存のentity_uuidを持っているかどうかを確認するために、私は、DBを照会同じextracted_idに異なるUUIDを割り当てる避けるために:

問題。

現在の解決策:現在、mongodbには、2組のテーブル/コレクションがあります。すべてのアイテムを格納するためのものと、エンティティの格納用のものとを含む。extracted_id(キーとして)/entity_uuid(値として)ルックアップテーブル。

よりよい解決策?:私はDynamoDBのに移動すると、重複するデータを保存しないようにと、唯一のローカルセカンダリインデックスとしてextracted_idで1つのデータベースを作成する方がよいでしょうか?私は、ドキュメントがuse indexes sparingly.と言うときは確信していますextracted_idは、指定されたサイトに対してuuidのアイテムを提供する以外の目的では使用しません。

うまくいけば、私はAWS/DynamoDBの初心者であり、言及されているもののヒント/より良い解決策に感謝したいと思います。

答えて

0

extracted_idを新しいDynamoDBテーブルのパーティションキーとし、ConditionExpression attribute_not_exists(extracted_id)を使用してアプリケーションで重複エントリが書き込まれないようにするのはなぜでしょうか?

関連する問題