A migration solution must have the following characteristics:
Robust and resilient
Manage all aspects of the data extraction, transformation, cleansing, validation and loading into the target — and manage high volumes of data, errors in source and target connections, and disk space and memory problems.
Execute efficiently and take advantage of existing source or target facilities to enable rapid processing.
Provide progress indicators during migration and reconcile the completed process.
Recover from the point of failure when necessary.
Ability to reuse components of the migration in other projects, including transformation functions, error handling and data cleansing routines.