Database Migration Challenges
We take a look a the top challenges to keep in mind as your organization prepares to move its databases from one platform to another.
Join the DZone community and get the full member experience.Join For Free
Today's enterprises are swimming in a deeper sea of data than at any time in history. From remotely connected devices like wearables and smart televisions to core enterprise apps such as CRMs, ERPs, or monitoring platforms, there's virtually never a shortage of data to use for insights and strategic planning.
However, for many organizations, getting any value from that data has historically been difficult. Data is frequently housed in multiple data lakes and disparate siloed on-premise and cloud databases, making it nearly impossible to employ artificial intelligence (AI) or machine learning solutions for real-time analytics and actionable insights for strategic decision making.
In those instances, and in many others, it makes sense to migrate databases from one platform to another. Organizations choose to migrate databases for a variety of reasons including trying to reduce costs by moving to cloud-based databases, seeking specific database features and functionality, or their existing systems are simply outdated and unable to keep up with the demands of the business.
Whatever the reason, database migration isn't always as straightforward or simple as it may seem. Here are the top challenges to keep in mind as your organization prepares to move its databases from one platform to another.
Top Database Migration Challenges
Identifying Disparate Databases
Over time, every company accumulates data. And if your company has been around a while, there's a good chance your data is housed in a multitude of databases created by different departments or teams. One of the biggest challenges in migrating databases is making sure to locate the various databases in your environment and deciding how you'll normalize data and convert schemas.
Devising a Migration Strategy
"A goal without a plan is a wish," as the saying goes. Database migration is a strategic process fraught with risk, and coming up with a plan for safely, securely, and efficiently migrating databases is imperative for a successful migration. For many teams, the primary obstacle to developing a database migration strategy is deciding whether to pursue a "big bang" migration, in which the migration is completed in one step, or to leverage a more methodical, incremental approach called a "trickle" or "parallel run" migration.
The migration strategy you select may be influenced by a variety of factors including: allocated budget for the initiative, timeline or time constraints, and your available human resources to execute the migration. Some research suggests enterprise database migration projects can cost up to $875,000 and experience more than $250,000 in cost overruns. Financial and time implications add another layer of complexity to the planning and strategy process.
Data Cleansing and Coding
Moving entire databases seems like a simple process. But the data in those databases might be in different formats and come from varying sources. Since the data comes from different places, it needs to be cleansed, normalized, or transformed in a way that allows you to analyze it together with data from other sources.
In those cases, you may need to adapt your data model to account for the mix of structured and unstructured data, or even any discrepancies that may occur simply by moving data from one relational database to another.
Securing Data and Systems
Moving data from one platform to another isn't just time-consuming and costly, it also has the potential for increased risk without the right protocols and plans in place. In any migration, there's a treasure trove of high-value intellectual property that may be leaked, lost, or otherwise accessed by unauthorized users (either inadvertently or with malicious intent). Each instance could mean significant damage to company reputation, customer churn, and or even potential lawsuits and punitive fines.
Essential Steps for a Successful Database Migration
Build the Schema
The schema is a blueprint of how the database is structured, and it varies based on the rules of a given database. So, the first step in moving databases from one platform to another is to convert the schemas so that the structure of the data works with the new database. This includes creating the database tables and defining any necessary programming code such as stored procedures and database triggers.
Load the Data and Copy as Necessary
After you have completed all the preliminary requirements, you'll need to actually move the data. This may involve scripting, using an ETL tool, or some other tool to move the data. During the migration, you will likely transform the data, normalize data types, and check for errors.
Depending on the database size and available system resources it may take days to perform the initial data load that could take applications offline for minutes at a time. For mission-critical applications that cannot be taken down for even a second, it may be necessary to conduct an ongoing change data capture. In this step, your team performs reporting tests within the destination system to validate performance before migrating the application over.
This incremental step can be repeated as often as needed to protect against downtime and against data incompatibility between source and target databases.
Once you've moved the data, you need to verify that the data: was moved correctly, is complete, isn't missing values, doesn't contain null values, and is valid. This step may involve user-driven random testing to ensure the destination system is in sync with the source database prior to the cutover or employing computer-driven testing for exact data accuracy analysis. Any anomalies or errors in the datasets or databases must be addressed prior to the database migration.
Published at DZone with permission of Garrett Alley, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.