1.3.6 Use, Manage, and Maintain Data Stores

Use, Manage, and Maintain Data Stores

DynamoDB CRUD Operations

OperationMô tảLimit
PutItemTạo hoặc replace toàn bộ item400KB per item
GetItemLấy 1 item by primary key
UpdateItemUpdate specific attributes400KB per item
DeleteItemXóa 1 item by key

Batch Operations

OperationMô tảLimit
BatchWriteItemBatch put/deleteMax 25 items, 16MB total
BatchGetItemBatch readMax 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

ModeMô tảUse Case
ProvisionedSet RCU/WCU cố địnhPredictable workload
On-DemandAuto-scale, pay per requestUnpredictable/spiky workload
  • Provisioned + Auto Scaling: Target utilization (default 70%)
  • On-Demand: Tự động scale, không cần capacity planning

S3 Operations

OperationMô tả
PutObjectUpload object (max 5GB single PUT)
Multipart UploadUpload lớn (max 5TB), parallel parts
GetObjectDownload object
CopyObjectCopy within/across buckets
DeleteObjectXó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.