DynamoDB MongoDB Migrate
Data migration module for migrating dynamodb tables to mongodb db collections
Installing
npm install dynamodb-mongodb-migrate
Quick Usage
const MigrationJob = ; let sourceConnectionOptions = region: <AWS_REGION> accessKeyId: <AWS_ACCESS_KEY_ID> secretAccessKey: <AWS_SECRET_ACCESS_KEY>;let targetConnectionOptions = host: <MONGODB_ENDPOINT> user: <MONGODB_USERNAME> password: <MONGODB_PASSWORD>; const migrationJob = 'DYNAMODB_TABLE_NAME' 'MONGODB_COLLECTION_NAME' 'MONGODB_DATABASE_NAME' sourceConnectionOptions targetConnectionOptions DYNAMODB_SCAN_LIMIT DYNAMODB_READ_THROUGHPUT; migrationJob
Adavance Usage
Initialize
const MigrationJob = ; let sourceConnectionOptions = region: <AWS_REGION> accessKeyId: <AWS_ACCESS_KEY_ID> secretAccessKey: <AWS_SECRET_ACCESS_KEY>;let targetConnectionOptions = host: <MONGODB_ENDPOINT> user: <MONGODB_USERNAME> password: <MONGODB_PASSWORD>; const migrationJob = 'DYNAMODB_TABLE_NAME' 'MONGODB_COLLECTION_NAME' 'MONGODB_DATABASE_NAME' sourceConnectionOptions targetConnectionOptions DYNAMODB_SCAN_LIMIT DYNAMODB_READ_THROUGHPUT;
Set dynamodb filter expression - filter when scanning dynamodb
const filterExpression = '#attr1 = :val1';const expressionAttributeNames = '#attr1':'attribute1';const expressionAttributeValues = ':val1':'value1'migrationJob;
Set data filter function - filter after scan result - similar to lodash filter
const filterFunction = { return itemattr1 !== null;} migrationJob;
Set data mapper function - similar to lodash map
const mapperFunction = { return mappedAttr1 : itemattr1 mappedAttr2 : itemattr2 } migrationJob;
Run
migrationJob
Testing
npm test