2013-04-09 7 views
8

ダイナモオブジェクトを照会する最も効率的な方法は何ですか?10億のオブジェクトのdynamodbでdistictカウントを取得するには?

私のオブジェクトには10​​個のプロパティがあり、3つのプロパティに基づいて異なるカウントを取得したいとします。

+0

これらのプロパティは変更されますか?カウントを取得する頻度と速さが必要ですか? –

+0

彼らは変化します...彼らは静的なログデータではありません –

+0

カウントを求める頻度とレイテンシはどうですか?このタイプのアグリゲーションは、一般的な、速やかに必要な操作ですか?リアルタイムデータでこれを必要とするのか、データのアーカイブ/コピーでそれを実行できますか? –

答えて

4

カウンタが必要な場合は、AtomicCounters(http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithDDItems.html)を使用することをお勧めします。あなたのケースでは、DynamoDBは3つの属性から構成されたボックスキーを連結していない限りサポートしていませんので、キーはこれら3つの属性の連結であり、それぞれのキーを管理する冗長テーブルを作成することですオブジェクトも、AtomicCounterを更新します(追加、削除、更新 - 実際は必要ありません)。

次に、カウンタを照会し、スキャンを回避します。したがって、データの検索速度を上げるためには、空間の複雑さがあります。

+0

これまで英国で働くことを考えました。 Linkingin.com/in/rifaterdemsahin/をPingしてください –

1

適切なScanFilter(この場合は3つのプロパティはnot_null)でスキャンを実行し、withCount(true)を使用して、レコード自体の代わりに一致するレコードの数だけを返します。

See the documentationいくつかのコード例です。

+0

Scanは他のDynamoDB操作と比較してかなり遅い操作であるため、おそらくこれを処理するには非効率的な方法であることに注意してください。しかし、あなたが説明したことを考えると、私はより良い答えはありません。 –

+3

この10億の検索操作は、SQLのためのジョブではないと思います。ありがとうございます。 –

関連する問題