簡體   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