1.3.6 Use, Manage, and Maintain Data Stores
Use, Manage, and Maintain Data Stores
DynamoDB CRUD Operations
| Operation | Mô tả | Limit |
|---|
| PutItem | Tạo hoặc replace toàn bộ item | 400KB per item |
| GetItem | Lấy 1 item by primary key | — |
| UpdateItem | Update specific attributes | 400KB per item |
| DeleteItem | Xóa 1 item by key | — |
Batch Operations
| Operation | Mô tả | Limit |
|---|
| BatchWriteItem | Batch put/delete | Max 25 items, 16MB total |
| BatchGetItem | Batch read | Max 100 items, 16MB total |
import boto3
table = boto3.resource('dynamodb').Table('Orders')
# Batch write
with table.batch_writer() as batch:
for item in items:
batch.put_item(Item=item)
# Auto handles batching + unprocessed items retry
UnprocessedItems / UnprocessedKeys: Items chưa xử lý do throttling- SDK tự retry unprocessed items với exponential backoff
Conditional Writes
# Chỉ update nếu version match (Optimistic Locking)
table.update_item(
Key={'id': 'order-123'},
UpdateExpression='SET #s = :new_status, version = version + :inc',
ConditionExpression='version = :current_version',
ExpressionAttributeNames={'#s': 'status'},
ExpressionAttributeValues={
':new_status': 'shipped',
':current_version': 5,
':inc': 1
}
)
- Prevent concurrent overwrites
ConditionExpression fail → ConditionalCheckFailedException
DynamoDB Capacity Modes
| Mode | Mô tả | Use Case |
|---|
| Provisioned | Set RCU/WCU cố định | Predictable workload |
| On-Demand | Auto-scale, pay per request | Unpredictable/spiky workload |
- Provisioned + Auto Scaling: Target utilization (default 70%)
- On-Demand: Tự động scale, không cần capacity planning
S3 Operations
| Operation | Mô tả |
|---|
| PutObject | Upload object (max 5GB single PUT) |
| Multipart Upload | Upload lớn (max 5TB), parallel parts |
| GetObject | Download object |
| CopyObject | Copy within/across buckets |
| DeleteObject | Xóa object |
- Multipart Upload: Bắt buộc cho objects > 5GB, khuyến nghị > 100MB
Exam Tip: BatchWriteItem max 25 items. Conditional writes cho optimistic locking. On-Demand cho unpredictable workloads. Multipart Upload cho large files.