2016-08-23 2 views
0

日々の情報をDynamoDBに保存する必要があります。基本的に、私はユーザーのアクションを格納する必要があります:ユーザーID、StoreID、ActionIDとタイムスタンプ。 毎晩、その日に生成された情報を処理し、集計を行い、いくつかのレポートを作成し、そのレコードを安全に削除することができます。 これはどのようにモデル化すればよいですか?私はハッシュキーとソートキーを意味します...レポートの各アクションの完全なタイムスタンプを持つ必要がありますが、DynamoDBを照会するには、日付だけを保存する方が簡単だと思います。 私はいくつかのPKをUserIDとStoreIDとして持っていますが、とにかく私は毎晩すべてのデータを処理する必要があり、1人のユーザーまたは1つのストアに関連するデータではありません。 ありがとう! Patricio毎晩毎日のレコードを処理して削除する必要がある場合、DynamoDBでモデルを作成する方法は?

答えて

1

RabbitMQを使用すると、ジョブを非同期にスケジュールできます。これは、複数のDBクエリより高速です。基本的に、このツールでは、従業員が(必要に応じて深夜に)削除してレポートを作成できるジョブキュー(Containing UserID、StoreID &タイムスタンプ)を作成することができます。

これにより、ノード間でシステムを水平方向に拡大することもできます。あなたのワーカーは、これらのタスクを実行する異なるマシンになることができます。 DBがクラッシュしても安全です(RabbitMQサービスを実行しているマシンの冗長性を設計する必要があるかもしれませんが)。

DBは永続ストレージとして使用する必要があり、処理のキューとしては使用しないでください。

+0

あなたのデータが複雑でなく、待ち行列にも簡単に格納できるという点で、キューイングを使用する必要があります。AWSに行く場合は、SQSで見ることもできます。 –

関連する問題