2016-12-14 12 views
0

私の使用例は、私のDynamoDBテーブルの1つにUUIDを主キーとして持つ必要があるということです。 @DynamoDBAutoGeneratedKeyを同じものに使用していて、UUIDを使用することができます。また、ダイナモdbに格納した直後にダイナモdbに書き込まれたエンティティから自動生成されたキーを取得できることも理解しています。しかし、私の懸念は、アプリケーション内の任意の場所に自動生成されたキーを取得するためのクリーンな方法があるのか​​、または自動生成されたキーをメモリに保存する必要があるということです。または、自動生成されたキーを取得するためにセカンダリインデックスを実装する必要がありますか?DynamoDBのUUIDを自動生成する

+0

自動生成されたキーは、意味的に使用例に合っている場合(たとえば、アイテムのキーが別のテーブルや別のシステムなどの別の場所に保持される場合など)、またはそれを使用する技術的理由がある場合(例えば、GSIを追加することは意味をなさないかもしれません)ホットキーからの保護などです。しかし、どちらもあなたのためのケースではない場合は、あなたのプライマリキーのためのより自然なキーを検討する必要があります。 –

答えて

0

注: - OPには、プライマリキーでデータを取得するためにユースケースが必要な情報はありません。私は最終的な主張がUUIDを取得することではないかもしれないと推測します。むしろ、UUIDを使用して項目を取得することができます。あなたが得るためにUUIDを生成し自動でハッシュキー、

1)スキャンテーブルがわからない場合は

自動生成 - 次のように

いくつかの一般的なオプション

がありますキー。これは、コストのかかる操作である完全なテーブルスキャンであることに注意してください。

2)はい、グローバルセカンダリインデックスを使用して、メインテーブルのハッシュキーとして定義されたUUIDフィールド以外の異なる属性でテーブルをクエリできます。メインテーブルのハッシュキーが不明な場合、これはより効率的なオプションです。

3)完全な使用についてはわかりません。ただし、同じHTTPリクエストまたはプロセスが新しく挿入されたUUIDのデータを後で取得する場合は、UUIDのメモリ内(Javaコレクションを使用)を後で使用することができます。この場合、実際にはメモリ内に先に挿入されたオブジェクト全体を保持することができます。