{"id":410,"date":"2022-05-22T06:00:08","date_gmt":"2022-05-22T13:00:08","guid":{"rendered":"https:\/\/vinodsr.com\/myblog\/?p=410"},"modified":"2022-05-22T06:02:57","modified_gmt":"2022-05-22T13:02:57","slug":"dynamoman-the-perfect-import-export-utility-for-aws-dynamodb-administration","status":"publish","type":"post","link":"https:\/\/vinodsr.com\/myblog\/2022\/05\/dynamoman-the-perfect-import-export-utility-for-aws-dynamodb-administration\/","title":{"rendered":"dynamoman &#8211; the perfect import-export utility for AWS DynamoDB administration"},"content":{"rendered":"\n<p>It is quite surprising that AWS didn&#8217;t provide an import export support for its popular database DynamoDB. When I started using DynamoDB for my project, I found the unavailability of import export feature hounding me during data migration or copying data between environments. <\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>This made me to start looking for options for exporting the tables of DynamoDB. I found there are some options must most of them are more than 1 year old and lacks intuitive features. This made me to think about creating a cli which will handle the import export of tables, thus created a new cli &#8211; <a href=\"https:\/\/www.npmjs.com\/package\/dynamoman\" target=\"_blank\" rel=\"noreferrer noopener\">dynamoman<\/a> (<a href=\"https:\/\/www.npmjs.com\/package\/dynamoman\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.npmjs.com\/package\/dynamoman<\/a>)<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Features<\/h1>\n\n\n\n<ul class=\"wp-block-list\"><li>Easily export the dynamoDB table as JSON<\/li><li>Imports the data into any dynamoDB table<\/li><li>Export from one region and import in to another<\/li><li>Supports batch import (chunks of 25 records)<\/li><li>Supports Windows \/ Linux \/ Mac<\/li><\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">Installation<\/h1>\n\n\n\n<p>You can use npm \/ yarn to install the cli<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">  npm install -g  dynamoman<\/code><\/pre>\n\n\n\n<p>To verify the Installation<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">  dynamoman --help<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">Getting started<\/h1>\n\n\n\n<p>For importing the data use the import command and for exporting use the export command<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">dynamoman import --file table_dump.json --table &lt;mytable&gt;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">dynamoman export --file output.json --table &lt;mytable&gt;<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p>More feature are there in the pipeline including<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Export all tables to a zip<\/li><li>Import all tables from a zip<\/li><\/ul>\n<\/div><\/div>\n\n\n\n<p><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>If you like to contribute to this project, please feel free to submit a pull request @ <a href=\"https:\/\/github.com\/vinodsr\/dynamoman\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"https:\/\/github.com\/vinodsr\/dynamoman\">https:\/\/github.com\/vinodsr\/dynamoman<\/a><\/p><\/blockquote>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>It is quite surprising that AWS didn&#8217;t provide an import export support for its popular database DynamoDB. When I started using DynamoDB for my project,&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[120,3,62],"tags":[70,121,122,124,123,63],"class_list":["post-410","post","type-post","status-publish","format-standard","hentry","category-aws","category-general","category-nodejs","tag-aws","tag-aws-dynamodb","tag-cli","tag-export","tag-import","tag-nodejs"],"aioseo_notices":[],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/vinodsr.com\/myblog\/wp-json\/wp\/v2\/posts\/410","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vinodsr.com\/myblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vinodsr.com\/myblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vinodsr.com\/myblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vinodsr.com\/myblog\/wp-json\/wp\/v2\/comments?post=410"}],"version-history":[{"count":5,"href":"https:\/\/vinodsr.com\/myblog\/wp-json\/wp\/v2\/posts\/410\/revisions"}],"predecessor-version":[{"id":426,"href":"https:\/\/vinodsr.com\/myblog\/wp-json\/wp\/v2\/posts\/410\/revisions\/426"}],"wp:attachment":[{"href":"https:\/\/vinodsr.com\/myblog\/wp-json\/wp\/v2\/media?parent=410"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vinodsr.com\/myblog\/wp-json\/wp\/v2\/categories?post=410"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vinodsr.com\/myblog\/wp-json\/wp\/v2\/tags?post=410"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}