我想将我的 Amazon DynamoDB 表的备份还原到其他区域。
解决方法
要将 DynamoDB 表还原到其他区域,您可以使用以下任一方法。
使用 DynamoDB 将 DynamoDB 表还原到其他区域
- 打开 DynamoDB 控制台。
- 在导航窗格中,选择 Backups(备份)。
- 在显示的列表中,选择要从中还原表的备份。
- 选择 Restore(还原)。
- 在 Name of restored table(已还原表的名称)中,输入新的表名。
- 对于 Secondary indexes(二级索引),选择所需的选项。
- 对于 Destination AWS Region(目标 AWS 区域),选择 Cross-Region(跨区域)。
- 对于 Select the destination AWS Region(选择目标 AWS 区域),选择您选择的区域。
- 对于 Encryption key management(加密密钥管理),选择所需的选项。
- 选择 Restore(还原)。
使用 AWS Glue 将 DynamoDB 表还原到其他区域
您可以使用 AWS Glue 任务将 DynamoDB 表还原到另一个区域。AWS Glue 为还原过程提供了更大的灵活性。如果您不想将所有属性或字段还原到新区域中的目标表,则可以选择此方法。此方法仅适用于导出到 Amazon Simple Storage Service(Amazon S3)的表。
1. 使用**导出到 S3** 功能将 DynamoDB 表导出到 Amazon S3 后,创建一个 AWS Glue 任务。请务必在 Script(脚本)选项卡中指定以下信息:
datasource0 = glueContext.create_dynamic_frame.from_options(
connection_type="dynamodb",
connection_options={
"dynamodb.export": "ddb",
"dynamodb.tableArn": "arn:aws:dynamodb:source-region:account-number:table/TableName",
"dynamodb.unnestDDBJson": True,
"dynamodb.s3.bucket": "example-bucket",
"dynamodb.s3.prefix": "dynamodb",
"dynamodb.s3.bucketOwner": "account-number",
}
)
**注意:**请务必使用转换节点 ApplyMapping,并指定目标表中必须存在的字段。此设置会根据提供的输入自动生成 PySpark 代码。
示例:
applymapping1 = ApplyMapping.apply(frame = datasource0, mappings = [("resource_id", "string", "resource_id", "string")], transformation_ctx = "applymapping1")
2. 指定接收器操作以直接写入目标区域中的目标表。
示例:
glueContext.write_dynamic_frame_from_options (frame = MappedFrame, connection_type = "dynamodb", connection_options = { "dynamodb.region": "example-region", "dynamodb.output.tableName": "example_table", "dynamodb.throughput.write.percent": "1.0" })
3. 从 AWS Glue 控制台运行任务,将数据从当前区域加载到目标区域。
相关信息
从备份中还原 DynamoDB 表
适用于 DynamoDB 的时间点故障恢复
在 AWS Glue 控制台上使用任务