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

AWS DynamoDB Java SDK是否支持通过PITR恢复创建新表

关于AWS DynamoDB Java SDK通过PITR创建新表的问题解答

该需求完全可以实现,AWS DynamoDB Java SDK原生支持通过Point in Time Restore(PITR)接口恢复创建新表,无需手动在控制台执行操作,完全可以集成到Lambda或者Java业务应用流程中。

前提要求

  • 源DynamoDB表已经开启PITR功能,且待恢复的时间点处于PITR的保留窗口期(默认最长保留35天)
  • 执行操作的身份(Lambda执行角色/Java应用关联的IAM身份)需要具备以下权限:
    • dynamodb:RestoreTableToPointInTime:核心恢复操作权限
    • dynamodb:DescribeContinuousBackups:查询源表PITR配置的权限
    • 目标表对应的dynamodb:CreateTable、dynamodb:DescribeTable等基础表操作权限
    • 如果源表/目标表使用了自定义KMS密钥加密,还需要对应KMS密钥的加密/解密权限

核心实现代码示例(基于AWS Java SDK 2.x)

import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.services.dynamodb.model.RestoreTableToPointInTimeRequest;
import software.amazon.awssdk.services.dynamodb.model.RestoreTableToPointInTimeResponse;
import java.time.Instant;

public class PitrRestoreDemo {
    public static void main(String[] args) {
        // 初始化DynamoDB客户端
        DynamoDbClient dynamoDbClient = DynamoDbClient.builder()
                .region(Region.of("你的AWS区域编码,例如cn-north-1"))
                .build();

        // 构建PITR恢复请求
        RestoreTableToPointInTimeRequest request = RestoreTableToPointInTimeRequest.builder()
                // 可替换为.sourceTableName("源表名")
                .sourceTableArn("arn:aws-cn:dynamodb:cn-north-1:账号ID:table/源表名")
                .targetTableName("恢复后生成的新表名称")
                // 若要恢复到最新可用时间点,替换为.useLatestRestorableTime(true)
                .restoreDateTime(Instant.ofEpochMilli(待恢复的时间戳毫秒数))
                // 可选参数:自定义目标表配置,比如调整为按需付费模式
                // .billingModeOverride(BillingMode.PAY_PER_REQUEST)
                .build();

        // 提交恢复任务
        RestoreTableToPointInTimeResponse response = dynamoDbClient.restoreTableToPointInTime(request);
    }
}

如果使用AWS Java SDK 1.x版本,核心接口逻辑类似,仅类名和参数构造方式存在差异

注意事项

  • PITR恢复是异步操作,调用接口成功仅代表恢复任务提交成功,新表需要一定时间才会进入ACTIVE可用状态,你可以通过describeTable接口轮询表状态,或者配置DynamoDB表事件通知到EventBridge触发后续流程
  • 新表默认会继承源表的索引配置、容量配置、加密配置等属性,你可以在请求中通过对应的Override参数自定义目标表配置
  • 恢复操作不会影响源表的正常读写

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 06:15:04