You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS Data Pipeline中清除DynamoDB旧数据并保留当日RDS快照数据

解决AWS Data Pipeline中DynamoDB旧数据清除问题

要实现每日RDS快照导入DynamoDB且仅保留当日数据,你可以在现有Data Pipeline流程中新增一个ShellCommandActivity,专门负责在导入新数据前清除旧数据。下面是具体的实现方案,分两种场景适配你的表结构:


场景1:DynamoDB表包含日期类型的属性(如record_date)

如果你的表有存储数据日期的属性(比如格式为YYYY-MM-DD的分区键或普通属性),可以精准删除前一日的旧数据,效率更高:

步骤1:在Data Pipeline中添加ShellCommandActivity

将这个Activity放在你的HiveActivity之前,确保先清旧数据再导入新数据。

步骤2:配置Shell命令

在Activity的command字段中填入以下脚本(替换占位符为你的实际信息):

# 安装jq(如果EC2实例未预装,按需添加)
yum install -y jq

# 获取昨日日期(Linux环境)
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)

# 扫描昨日的所有数据项,生成批量删除请求
aws dynamodb scan \
  --table-name YOUR_DYNAMODB_TABLE_NAME \
  --filter-expression "record_date = :target_date" \
  --expression-attribute-values '{":target_date": {"S": "'$YESTERDAY'"}}' \
  --query "Items[*]" | jq -r '.[] | {DeleteRequest: {Key: {YOUR_PRIMARY_KEY_NAME: .YOUR_PRIMARY_KEY_NAME}}}' > delete_batch.json

# 执行批量删除
if [ -s delete_batch.json ]; then
  aws dynamodb batch-write-item --request-items "{\"YOUR_DYNAMODB_TABLE_NAME\": $(cat delete_batch.json)}"
fi

# 清理临时文件
rm delete_batch.json

步骤3:配置IAM权限

确保Data Pipeline使用的IAM角色拥有以下权限:

  • dynamodb:Scan
  • dynamodb:BatchWriteItem

场景2:DynamoDB表无日期属性(需全表清空)

如果你的表没有日期标识,只能全表清除旧数据,脚本如下:

yum install -y jq

TABLE_NAME="YOUR_DYNAMODB_TABLE_NAME"
PRIMARY_KEY="YOUR_PRIMARY_KEY_NAME"

# 循环扫描并删除所有数据,直到表为空
while true; do
  # 扫描当前表的所有主键
  aws dynamodb scan \
    --table-name $TABLE_NAME \
    --attributes-to-get $PRIMARY_KEY \
    --query "Items[*]" | jq -r '.[] | {DeleteRequest: {Key: .}}' > delete_requests.json

  # 如果没有待删除项,退出循环
  if [ $(wc -l < delete_requests.json) -eq 0 ]; then
    break
  fi

  # 执行批量删除
  aws dynamodb batch-write-item --request-items "{\"$TABLE_NAME\": $(cat delete_requests.json)}"
done

rm delete_requests.json

额外注意事项

  • 如果你使用Data Pipeline的参数化配置(比如表名作为参数),可以用#{myDynamoDBTableName}这类占位符替换脚本中的硬编码值
  • 确保EC2实例所在的VPC能访问DynamoDB(要么配置VPC端点,要么允许出站访问DynamoDB服务)
  • 批量删除的单次请求最多处理25个项目,脚本中的循环会自动处理所有数据

内容的提问来源于stack exchange,提问作者Pomacanthidae

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:48:55