繁体   English   中英

如何将数据从一个表传输到另一个表(AWS 上的 DynamoDB)

[英]How to transfer data from one table to another (DynamoDB on AWS)

如何在 DynamoDB 中将数据从一个表传输到另一个表? 我很困惑,因为表和表字段看起来完全相同。

要将源表复制到新的目标表,然后按需备份和还原应该可以解决问题。 详细信息在这里: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/backuprestore_HowItWorks.html

如果您希望将数据从源 DDB 表复制到现有 DDB 表(并将 append 数据复制到其中),请考虑使用 Glue。

  • DDB 可以是 Glue ETL 的来源:“connectionType”:“dynamodb”
  • DDB 可以成为 Glue ETL 的目标,但稍微复杂一些。 您需要为 DynamoDB 使用 JDBC 驱动程序,然后将 Glue 设置为 output 到 JDBC。 这里有详细说明

如果您只想像评论中提到的那样做一次,我建议您进行备份和恢复。 还原总是转到单独的表,而不是原始表。

你怎么看待这件事:

  • 不同地区
  • Python
  • 分页
  • 错误处理和日志
import boto3


def migrate(source, target):
    dynamo_client = boto3.client('dynamodb', region_name='us-east-1')
    dynamo_target_client = boto3.client('dynamodb', region_name='us-west-2')

    dynamo_paginator = dynamo_client.get_paginator('scan')
    dynamo_response = dynamo_paginator.paginate(
        TableName=source,
        Select='ALL_ATTRIBUTES',
        ReturnConsumedCapacity='NONE',
        ConsistentRead=True
    )
    for page in dynamo_response:
        for item in page['Items']:
            dynamo_target_client.put_item(
                TableName=target,
                Item=item
            )


if __name__ == '__main__':
    migrate('awesome-v1', 'awesome-v2')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM