目次
とある日
AWS SAPの勉強用の記録。
よく問題集とかで出る項目だけを調べてまとめるだけ。
UpdateItemオペレーション用のアトミックカウンター
UpdateItem
既存のアイテムの属性を編集するか、新しいアイテムがまだ存在しない場合はテーブルに追加します。属性値を配置、削除、または追加できます。既存のアイテムに対して条件付き更新を実行することもできます(存在しない場合は新しい属性の名前と値のペアを挿入し、特定の予想される属性値がある場合は既存の名前と値のペアを置き換えます)。
パラメータ
UpdateItem
を使用して、同じ操作でアイテムの属性値を返すこともできReturnValues
ます。
SQLのUpdateと同じ挙動。
アトミックカウンター
この
UpdateItem
オペレーションを使用して、アトミックカウンター (他の書き込みリクエストに干渉することなく無条件に増分される数値属性) を実装できます。(すべての書き込みリクエストは、受信された順に適用されます)。アトミックカウンターでは、更新はべき等ではありません。つまり、UpdateItem
を呼び出すたびに数値はインクリメントされます。
使用用途
ウェブサイトの訪問者数を追跡するためにアトミックカウンターを使用できます。この場合、アプリケーションでは、現在値に関係なく、数値はインクリメントされます。
UpdateItem
オペレーションが失敗した場合、アプリケーションはオペレーションを再試行します。これには、カウンターを 2 度更新する恐れがありますが、ウェブサイトの訪問者数のカウントに多少の誤差があっても許容できるでしょう。アトミックカウンターはカウントの誤差が許容されない場合にはふさわしくありません (銀行業務用のアプリケーションなど)。この場合は、アトミックカウンターの代わりに条件付き更新を使用する方が安全です。
誰がいつどのようになど他の情報ではなく回数だけを計測する際に使用する。
参考記事
[Python][Tips] DynamoDBテーブルでもアトミックカウンターを更新したい | DevelopersIO
【DynamoDB/Boto3入門】DynamoDBでアトミックカウンタを実装しつつ更新式について学ぶ。 - サーバーワークスエンジニアブログ
〆
わざわざDynamoDBで実装する意義があるのか疑問だがこれをトリガーとかにして処理するのかな?
ログとかから計測するのが一般的だと思ってた。