web-dev-qa-db-fra.com

Exporter des données à partir de DynamoDB

Est-il possible d'exporter des données de la table DynamoDB dans un format quelconque?

Le cas concret est que je souhaite exporter les données de ma base de données de production dynamodb et les importer dans mon instance locale dynamodb afin que mon application puisse utiliser une copie locale des données plutôt que des données de production.

J'utilise link en tant qu'instance locale de DynamoDB.

11
Kristian Ačkar

Il existe un outil nommé DynamoDBtoCSV

qui peut être utilisé pour exporter toutes les données dans un fichier CSV. Cependant, dans le cas contraire, vous devrez créer votre propre outil. Ma suggestion est que vous ajoutiez cette fonctionnalité à l'outil et que vous la contribuiez au référentiel Git.


Vous pouvez également utiliser AWS Data Pipeline pour cette tâche (vous éviterez ainsi tous les coûts de lecture des données en dehors de l'infrastructure AWS). L'approche est similaire:

  1. Construire le pipeline pour la sortie
  2. Téléchargez le fichier.
  3. Analyser avec un lecteur personnalisé.
15
Dani C.

Exportez-le depuis l'interface DynamoDB vers S3.

Puis convertissez-le en Json en utilisant sed:

sed -e 's/$/}/' -e $'s/\x02/,"/g' -e $'s/\x03/":/g' -e 's/^/{"/' <exported_table> > <exported_table>.json

La source

8
nostromo

Essayez mon simple script node.js dynamo-archive . Il exporte et importe au format JSON.

2
yegor256

J'ai trouvé le meilleur outil actuel pour les importations/exportations simples (y compris les allers-retours dans DynamoDB Local): ce script Python:

https://github.com/bchew/dynamodump

Ce script prend en charge l'exportation/importation de schéma ainsi que l'importation/exportation de données. Il utilise également les API de lot pour des opérations efficaces.

Je l'ai utilisé avec succès pour transférer des données d'une table DynamoDB vers DynamoDB local à des fins de développement et cela a très bien fonctionné pour mes besoins.

1
Jimmy S

J'ai créé une classe utilitaire pour aider les développeurs à exporter. Cela peut être utilisé si vous ne souhaitez pas utiliser la fonctionnalité de pipeline de données d'AWS. Le lien vers le référentiel git hub est - ici

1
SarveshKaushal

Pour ceux d’entre vous qui préfèrent utiliser Java, il existe DynamodbToCSV4j .

JSONObject config = new JSONObject();
config.put("accessKeyId","REPLACE");
config.put("secretAccessKey","REPLACE");
config.put("region","eu-west-1");
config.put("tableName","testtable");
d2csv d = new d2csv(config);
1
quodlibet