Search code examples
mysqlamazon-web-servicesdata-transfer

What's the most efficient way to transfer data from one AWS RDS instance to another


I am working for a client who uses multiple RDS (MySQL) instances on AWS and wants me to consolidate data from there and other sources into a single instance and do reporting off that.

What would be the most efficient way to transfer selective data from other AWS RDS MySQL instances to mine?

I don't want to migrate the entire DB, rather just a few columns and rows based on which have relevant data and what was last created/updated.

One option would be to use a PHP script that'd read from one DB and insert it into another, but it'd be very inefficient. Unlike SQL Server or ORACLE, MySQL also does not have the ability to write queries across servers, else I'd have just used that in a stored procedure.

I'd appreciate any inputs regarding this.


Solution

  • If your overall objective is reporting and analytics, the standard practice is to move your transactional data from RDS to Redshift which will become your data warehouse. This blog article by AWS provides an approach to do it.

    For the consolidation operation, you can use AWS Data Migration Service which will allow you to migrate data column wise with following options.

    • Migrate existing data
    • Migrate existing data & replicate ongoing changes
    • Replicate data changes only

    For more details read this whitepaper.

    Note: If you need to process the data while moving, use AWS Data Pipeline.