- クラウド技術
AWS CLI DynamoDBのレコード操作
- #AWS
AWS CLI のDynamoDBのレコード操作について、ご紹介します。
登録(put-item)
【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc. 詳細はこちらから>
登録のCLIは以下となります。
–table-name : 対象のテーブル名
–item : 登録したいレコードの値を入れる
1 |
aws dynamodb put-item --table-name UserInfomation --item '{"id":{"S":"A01"}, "name":{"S":"大野"}} |
削除(delete-item)
削除のCLIは以下となります。
削除する際は対象のレコードを1件ずつ指定しなければなりません。
–table-name : 対象のテーブル名
–key : 削除したいレコードのパーティションキー
1 |
aws dynamodb delete-item --table-name UserInfomation --key '{"id":{"S":"A01"}}' |
ソートキーが設定されているテーブルについては、ソートキーも設定しないとエラーとなります。
パーティションキー → id、ソートキー → itemのテーブルの場合
1 |
aws dynamodb delete-item --table-name GoodsInfomation --key '{"id":{"S":"A01"}, "item":{"S":"tops"}}' |
更新(update-item)
更新のCLIは以下となります。
キーを指定し、1レコードの更新を行います。
複数レコード更新する場合は、該当レコード数分コマンドが必要です。
–table-name : 対象のテーブル名
–key : 更新したいレコードのパーティションキー(※ソートキーがある場合は、ソートキーも指定する)
–update-expression : 更新式(SET, REMOVE, ADD, DELETE)
例の場合はSETのため、項目の更新を行う
1 |
aws dynamodb update-item --table-name UserInfomation --key '{"id":{"S":"A01"}}' --update-expression "SET #key = :val" --expression-attribute-names '{"#key":"status"}' --expression-attribute-values '{":val":{"S":"2"}}' |
取得(get-item, query, scan)
取得のCLIには3種類あり、違いがあります。
get-item
パーティションキーとソートキーの指定が必須となります。
(ソートキーが設定されている場合はソートキー必須)
1件の取得となります。
–table-name : 対象のテーブル名
–key : 取得したいレコードの情報
1 |
aws dynamodb get-item --table-name GoodsInfomation --key '{"id":{"S":"A01"}, "item":{"S":"tops"}}' |
query
こちらはパーティションキーのみの指定で取得が可能です。
同じパーティションキーで異なるソートキーの複数レコードを取得可能です。
–table-name : 対象のテーブル名
–key : 取得したいレコードの情報
1 |
aws dynamodb query --table-name GoodsInfomation --key '{"id":{"S":"A01"}}' |
scan
条件式を設定することにより、複数レコードを取得することができます。
上記二つと異なり、検索条件が設定できるため自由度が高いと考えられますが、全体スキャンしているため実行時間が長くなるようです。
莫大なデータを取得する場合は、DynamoDBの読み込みキャパシティなど気にする必要がありそうです。
例文では、更新日時(UpdateDate)が2023-01-01以降のレコードをすべて取得するコマンドになります。
–table-name : 対象のテーブル名
–filter-expression : 取得条件
1 |
aws dynamodb scan --table-name GoodsInfomation --filter-expression "UpdateDate >= :vl" --expression-attribute-values '{":vl":{"S":"2023010100000"}}' --select COUNT |
また、–select に「COUNT」を設定すると、取得した総件数がわかります。
まとめ
AWS CLIでのDynamoDBの操作は縛りも多い反面、単純で分かりやすいかと思います。
コンソール画面からでは大変なDB操作の作業も、Excelなどで大量のコマンドを作成して流しておくこともできます。
取得のコマンドについては種類があり、調査に時間がかかることもありましたが、うまく有効活用していきたいと思います。
【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>