写点什么

Dynamodb 常见命令操作

用户头像
麦迪文
关注
发布于: 2020 年 08 月 21 日
Dynamodb 常见命令操作

1 创建表



创建表 foo, 分区键为字符串类型的 id:

aws dynamodb create-table \
--table-name foo \
--attribute-definitions AttributeName=id,AttributeType=S \
--key-schema AttributeName=id,KeyType=HASH \
--provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1



如果想指定数据库地址,加上如下选项:

--endpoint-url <endpoint_url>



注意: --endpoint-url 选项几乎可以用于所有其他命令.



2 创建索引



为表 foo 中 region 和 created 字段建立全局二级索引:

aws dynamodb update-table \
--table-name foo \
--attribute-definitions AttributeName=region,AttributeType=S AttributeName=created,AttributeType=N \
--global-secondary-index-updates \
"[{\"Create\":{\"IndexName\":\"region_and_created\", \"KeySchema\":[{\"AttributeName\":\"region\",\"KeyType\":\"HASH\"},{\"AttributeName\":\"created\",\"KeyType\":\"RANGE\"}], \"ProvisionedThroughput\":{\"ReadCapacityUnits\":10,\"WriteCapacityUnits\":5},\"Projection\":{\"ProjectionType\":\"ALL\"}}}]"



上面 --global-secondary-index-updates 选项值反转义展开为:

[
{
"Create":{
"IndexName":"region_and_created",
"KeySchema":[
{
"AttributeName":"region",
"KeyType":"HASH"
},
{
"AttributeName":"created",
"KeyType":"RANGE"
}
],
"ProvisionedThroughput":{
"ReadCapacityUnits":10,
"WriteCapacityUnits":5
},
"Projection":{
"ProjectionType":"ALL"
}
}
}
]



提示: 可使用 https://json.cn/ 方便的进行 JSON 格式数据转义和反转义操作.

3 删除表



删除表 foo:

aws dynamodb delete-table --table-name foo

4 查看表



查看所有表:

aws dynamodb list-tables



查看单一表 foo:

aws dynamodb describe-table --table-name foo



5 数据操作



给 foo 表添加一条记录:

aws dynamodb put-item --table-name foo \
--item '{ "id": {"S": "1" },"name":{"S":"Tom"},"age":{"N":"10"}}' \
--return-consumed-capacity TOTAL



删除 foo 表 id = 1 的记录:

aws dynamodb delete-item --table-name foo \
--key "{\"id\":{\"S\":\"1\"}}"



扫描 foo 所有记录:

aws dynamodb scan --table-name foo



查询 foo 表 id = 1 的记录:

aws dynamodb query --table-name foo \
--key-conditions "{\"id\":{\"AttributeValueList\":[{\"S\":\"1\"}],\"ComparisonOperator\":\"EQ\"}}"



发布于: 2020 年 08 月 21 日阅读数: 59
用户头像

麦迪文

关注

道法自然 2018.01.13 加入

Go 语言从业者,崇尚领域驱动开发

评论

发布
暂无评论
Dynamodb 常见命令操作