Migrate an on-premises Microsoft SQL Server database to Amazon Redshift using AWS DMS


Let’s answer the very fundamental question — Why is there a need to migrate from Microsoft SQL Server

In sum: MS SQL Server isn’t a data warehouse

By separating your data warehouse from your database, you also minimize the risk of anything happening to your real-time business data.

What are the challenges when planning a migration?

      1. SQL Compatibility: Translating SQL Server queries and stored procedures to Redshift’s SQL dialect can be challenging due to differences in syntax, functions, and supported features. You may need to rewrite and optimize your SQL code.

      1. Query Optimization: Ensuring that your SQL queries are optimized for Redshift’s distributed architecture is crucial. Understanding Redshift’s query performance considerations and making appropriate adjustments can be challenging.

      1. ETL Scripting: Developing and maintaining complex ETL scripts to transform and load data from SQL Server to Redshift can be challenging. It requires expertise in data transformation, data validation, and error handling.

      1. Data Type Mapping: Accurately mapping data types from SQL Server to Redshift and handling data type conversions and compatibility issues can be complex. Mismatches can lead to data corruption or performance problems.

      1. Data Validation and Verification: Writing code to validate and verify data integrity during and after migration is important but can be challenging due to the complexity of data transformations.

    High Level Data Migration Architecture from SQL Server to Redshift


    Image Credits — AWS

    Methods to Migrate SQL Server to Redshift

    Migrating data from SQL Server to Redshift is a crucial step for businesses that want to take advantage of cloud-based data warehousing. Fortunately, there are multiple ways to migrate SQL Server to Redshift, each with its own set of advantages and disadvantages. In this guide, we will focus on the most popular and easy methods to migrate your data from SQL Server to Redshift.

    Method 1: Using the AWS Database Migration Service (DMS)

    Method 2: Using custom ETL scripting

    Method 3: Using SaaS Alternatives

    For the sake of simplicity and avoiding any context switching we will only talk about Method 1 in this blog!

    Method 1: Using the AWS Database Migration Service (DMS)

    AWS Database Migration Service (DMS) is a fully managed service that enables you to migrate data from one database to another. You can use DMS to migrate data from SQL Server to Redshift quickly and efficiently.



    Image Credits — AWS

    Here’s an overview of the process of migrating data from SQL Server to Redshift using AWS Database Migration Service:

    Set up an AWS DMS replication instance: First, you need to create a replication instance within AWS DMS. A replication instance is a server instance that acts as a communication channel between SQL Server and Redshift. This replication instance is responsible for reading data from the SQL Server, applying any necessary transformations, and writing the data to the Redshift.

    Create source and target endpoints: Once the replication instance is up and running, you’ll need to create endpoints to connect to your SQL Server source database and Redshift target database.

    Configure replication settings: AWS DMS provides a number of settings that allow you to fine-tune the replication process to meet your specific needs. You’ll need to configure these settings to ensure that the migration process goes smoothly.

    Start the replication process: Once everything is configured correctly, you can start the replication process. AWS DMS will begin copying data from your SQL Server source database to your Redshift target database.

    Monitor the migration: During the migration process, it’s important to monitor and ensure that everything is running smoothly. AWS DMS provides several tools to help you monitor the migration process, including cloud watch logs and metrics.

    Verify the data: Once the migration is complete, verifying that all data was successfully migrated is important. You should perform a thorough test to ensure that everything is working as expected.

    The process of migrating data from SQL Server to Redshift using AWS Database Migration Service (DMS) is relatively straightforward and can be completed in a matter of hours or days, depending on the size of your data set.


    For detailed steps to migrating data using AWS Database Migration Service (DMS), please refer to the official AWS documentation.

    Pros of using DMS:

        • DMS is a fully managed service, so you don’t need to worry about managing the infrastructure or software.

        • DMS supports one-time and ongoing migrations to migrate your data to Redshift at your own pace.

        • DMS can replicate data changes in real time, so you can keep your Redshift database up-to-date with your SQL Server database.

        • DMS supports heterogeneous migrations so that you can migrate data from different database platforms to Redshift.

      Cons of using DMS:

          • DMS only supports a subset of SQL Server features. So some advanced features such as SQL Server Agent jobs, change data capture, FILESTREAM, and Full-Text Search are not supported.

          • DMS can be complex to set up and configure, especially for complex migrations with many source and target endpoints.