今日はなにの日。

気になったこと勉強になったことのメモ。

今日は、DynamoDBのUpdateItemオペレーション用のアトミックカウンターの日。

目次

とある日

AWS SAPの勉強用の記録。

よく問題集とかで出る項目だけを調べてまとめるだけ。

UpdateItemオペレーション用のアトミックカウンター

UpdateItem

既存のアイテムの属性を編集するか、新しいアイテムがまだ存在しない場合はテーブルに追加します。属性値を配置、削除、または追加できます。既存のアイテムに対して条件付き更新を実行することもできます(存在しない場合は新しい属性の名前と値のペアを挿入し、特定の予想される属性値がある場合は既存の名前と値のペアを置き換えます)。

パラメータUpdateItem を使用して、同じ操作でアイテムの属性値を返すこともできReturnValuesます。

SQLのUpdateと同じ挙動。

アトミックカウンター

この UpdateItem オペレーションを使用して、アトミックカウンター (他の書き込みリクエストに干渉することなく無条件に増分される数値属性) を実装できます。(すべての書き込みリクエストは、受信された順に適用されます)。アトミックカウンターでは、更新はべき等ではありません。つまり、UpdateItem を呼び出すたびに数値はインクリメントされます。

使用用途

ウェブサイトの訪問者数を追跡するためにアトミックカウンターを使用できます。この場合、アプリケーションでは、現在値に関係なく、数値はインクリメントされます。UpdateItem オペレーションが失敗した場合、アプリケーションはオペレーションを再試行します。これには、カウンターを 2 度更新する恐れがありますが、ウェブサイトの訪問者数のカウントに多少の誤差があっても許容できるでしょう。

アトミックカウンターはカウントの誤差が許容されない場合にはふさわしくありません (銀行業務用のアプリケーションなど)。この場合は、アトミックカウンターの代わりに条件付き更新を使用する方が安全です。

誰がいつどのようになど他の情報ではなく回数だけを計測する際に使用する。

参考記事

[Python][Tips] DynamoDBテーブルでもアトミックカウンターを更新したい | DevelopersIO

【DynamoDB/Boto3入門】DynamoDBでアトミックカウンタを実装しつつ更新式について学ぶ。 - サーバーワークスエンジニアブログ

項目と属性を操作する - Amazon DynamoDB

わざわざDynamoDBで実装する意義があるのか疑問だがこれをトリガーとかにして処理するのかな?

ログとかから計測するのが一般的だと思ってた。