DynamoDB AWS CLIコマンド

 

■テーブルの作成

aws dynamodb create-table \

--table-name テーブル名 \

--attribute-definitions \

AttributeName=カラム名1,AttributeType=S \

AttributeName=カラム名2,AttributeType=S \

--key-schema AttributeName=カラム名1,KeyType=HASH AttributeName=カラム名2,KeyType=RANGE \

--provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1

 

 

AttributeType

 

S

文字列

N

数値

B

バイナリ

 

テーブル名をtestとし、プライマリーパーティションキー=c1, プライマリーソートキー=c2とした。

 

■レコード追加

aws dynamodb put-item \

--table-name test  \

--item \

    '{"c1": {"S": "文字1"}, "c2": {"S": "文字2"}, "数値": {"N": "9999"}}' \

--return-consumed-capacity TOTAL 

 

■スキャン

aws dynamodb query --table-name

 

■クエリー

aws dynamodb query --table-name test --key-conditions '{"c1": { "AttributeValueList": [ { "S" : "文字1" } ] , "ComparisonOperator": "EQ" } }'

 

aws dynamodb query --table-name test --key-conditions '{"c2": { "AttributeValueList": [ { "S" : "" } ] , "ComparisonOperator": "BEGINS_WITH" }, "c1": { "AttributeValueList": [ { "S" : "文字1" } ] , "ComparisonOperator": "EQ" }}'

 

https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Conditions.html

 

Windows版のCLIではうまく動かなかったので、StoreのUbuntuで実行

 

キー

 

詳細

EQ

=

属性が値と等しい場合

NE

<> 

属性が値に等しくない場合

LE

<=

属性が値以下の場合

LT

属性が値より小さい場合

GE

>=

属性が値以上の場合

GT

属性が値よりも大きい場合

CONTAINS

 

値がセットに含まれる場合、または値が別の値を含む場合

NOT_CONTAINS

 

値がセットに含まれない場合、または値が別の値を含まない場合

BEGINS_WITH

 

属性の先頭からの数文字が指定した値と一致した場合

https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/Tools.CLI.html

https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/SQLtoNoSQL.ReadData.Query.html