AWS数据库:DynamoDB、Redshift与DocumentDB深度解析
立即解锁
发布时间: 2025-08-22 01:50:57 订阅数: 3 


AWS Certified Database Specialist Exam Prep
### AWS数据库:DynamoDB、Redshift与DocumentDB深度解析
#### 1. Amazon DynamoDB简介
Amazon DynamoDB是AWS推出的一款低延迟、托管式且无服务器的NoSQL数据库,能提供毫秒级的响应时间。它具有以下特点:
- **无服务器架构**:无需为工作负载指定计算资源,而是通过定义容量单位来控制数据的读写量。
- **多种运行模式**:可选择按需模式,但通常成本高于预配置模式。
- **数据存储**:数据以项目形式存储,每个项目必须有一个键来定义。
- **索引类型**:依赖全局二级索引(GSI)和本地二级索引(LSI)来控制对项目的访问。
- **备份方式**:支持手动备份和点时间恢复(PITR)备份。
- **全局表**:可在多个区域配置DynamoDB表。
- **加速缓存**:可使用DynamoDB Accelerator作为缓存,加快读取查询速度。
#### 2. DynamoDB操作示例
以下是创建全局二级索引和查询最高分数的示例代码:
```bash
# 创建全局二级索引
aws dynamodb update-table \
--table-name GameScores \
--attribute-definitions '[
{AttributeName=GameName,AttributeType=S},
{AttributeName=HighScore,AttributeType=N}
]' \
--global-secondary-index-updates '[
{"Create": {"IndexName": "GameTitleScores","KeySchema":[
{"AttributeName":"GameName","KeyType":"HASH"},
{"AttributeName":"HighScore","KeyType":"RANGE"}],
"Projection":{"ProjectionType":"ALL"}}
]'
# 查询特定游戏的最高分数
aws dynamodb query \
--table-name GameScores \
--index-name GameTitleScores \
--key-condition-expression "GameName = :game" \
--expression-attribute-values '{
":game": { "S": "Bug Hunt" }
}' \
--projection-expression "PlayerID, HighScore" \
--no-scan-index-forward \
--max-items 1
```
#### 3. DynamoDB常见问题及解答
以下是一些常见问题及答案:
|问题|选项|答案|解释|
|----|----|----|----|
|小公司DynamoDB表性能差且出现“节流错误”,最具成本效益的解决方案是什么?|A. 对时间戳属性启用TTL;B. 实施DAX;C. 开启Dynamo流;D. 开启自动缩放|D|开启自动缩放可以根据工作负载自动调整容量,避免节流错误,同时控制成本。|
|设计新的DynamoDB表,每个项目3KB,每秒最多读取100个项目,写入10个项目,使用最终一致性读取和标准写入,需要配置多少容量单位(CUs)?|A. 50 RCUs和30 WCUs;B. 100 RCUs和10 WCUs;C. 50 RCUs和30 WCUs;D. 300 RCUs和30 WCUs|A|最终一致性读取每个项目需要0.5 RCU,每秒读取100个项目需要50 RCU;标准写入每个项目需要1 WCU,每秒写入10个项目需要10 WCU,每个项目3KB,需要额外20 WCU,总共30 WCU。|
|每个AWS账户的DynamoDB免费存储量是多少?|A. 10 GB;B. 1 GB;C. 无,全部收费;D. 25 GB|C|DynamoDB没有免费存储额度,所有存储都需要收费。|
|以下哪个选项正确描述了DynamoDB表的两种索引类型?|A. GSI只能在表预配置时创建,LSI必须包含基表的分区键;B. LSI只能在表预配置时创建,GSI可以包含与基表完全不同的键;C. LSI只能在表预配置时创建,LSI可以包含与基表完全不同的键;D. GSI只能在表预配置时创建,GSI必须包含基表的分区键|B|LSI只能在表创建时定义,而GSI可以随时创建,并且可以使用与基表不同的键。|
|使用DynamoDB表时收到“ThrottlingException”错误,应采取什么措施解决?|A. 设置自动缩放;B. 从预配置模式切换到按需模式;C. 增加DAX集群中的节点数量;D. 设置全局表|A|设置自动缩放可以根
0
0
复制全文
相关推荐










