Kopieren von DynamoDB Elementen

Während dem Entwicklungsprozess oder auch für die Durchführung von diversen Programmtests, haben wir immer wieder DynamoDB zurückgesetzt, eine Datensicherung wiederhergestellt oder die PITR (Point-in-time-recovery) genutzt.

Allerdings führte das oft dazu, dass wir Zeit verloren haben.

Mit ein paar wenigen Zeilen Python-Code kann dies einfach und unkomplizert durchgeführt werden:

import boto3

region = 'eu-central-1'
sourcetable = 'original'
targettable = 'copy'

old_table = boto3.resource('dynamodb', region_name=region).Table(sourcetable)
new_table = boto3.resource('dynamodb', region_name=region).Table(targettable)

# load all data 
items = old_table.scan()['Items']

# add the data to new table
for item in items:
    response = new_table.put_item(Item=item)

Bevor wir bspw. ein Update unserer Backend-Systeme durchführen, die auf DynamoDB basieren, kopieren wir damit alle Elemente in eine temporäre Datenbank, testen unser Update und prüfen die Änderungen.