Migrating Data from Microsoft SQL Server to Snowflake

Microsoft SQL Server

Microsoft SQL Server is an all-round tool for most data-based workloads and SME requirements. However, there are several things that SQL Server will be better at and somewhere Snowflake will be more efficient giving rise to the need to migrate data SQL Server to Snowflake. The biggest challenge, however, is to choose the right tools for migration. But first, a quick look at the two databases will be in order. 

Microsoft SQL Server

Microsoft is primarily a database server for storing and retrieving data and an execution of both the Structured Query Language (SQL) and the Relational Database Management System (RDMS). There are many versions of the SQL Server available today, each catering to various demands and workloads. For applications that require limited support and scale, Microsoft SQL Server offers a smaller version available as freeware. On the other hand, for more complex and large applications, there is the data center version. 


Snowflake, on the other hand, is a cloud-based analytics database delivered as a Data Warehouse-as-a-Service (DWaaS). It runs AWS, the most popular cloud provider in the world. As in other databases, it is possible to migrate and query structured relational data in Snowflake tables through SQL data types like NUMBER, BOOLEAN, VARCHAR, TIMESTAMPS, and more.  

The advantage of Snowflake over Microsoft SQL Server is that it has a very user-friendly database. Being cloud-based, it has unlimited storage capacity, an area where SQL Server falls short. Snowflake also has water-tight control and security features. Multiple workgroups can work simultaneously on multiple workloads without any drop in performance or resource contention. 

Most critically, Snowflake has separate storage and computing facilities, and users can scale up and down in them independently, paying only for the quantum of resources used. Also, both structured and unstructured data can be optimized and migrated natively to Snowflake. These include JSON, AVRO, XML, and PARQUET data.

This data warehousing solution is therefore ideal for big data needs and large organizations would want to migrate data SQL Server to Snowflake

Migrating Data from Microsoft SQL Server to Snowflake 

There are several steps to be followed to migrate data SQL Server to Snowflake

Mining data from SQL Server – First, the data has to be extracted from the SQL Server. The most preferred option is through queries for extraction with select statements being used to sort, filter, and limit data during mining. For extracting bulk data and large databases in CSV, text, or SQL queries formats, Microsoft SQL Server Management Studio tool is used. 

Processing the mined data – The extracted data has to be processed and prepared before it can be migrated to Snowflake. The Snowflake architecture supports specific data types and the data to be migrated should match them. If not, the data has to be processed and made suitable for migration. This is not required for JSON or XML data.

Loading data in a temporary location – The processed data cannot be migrated directly into Snowflake. It has to be first stored in a temporary location which can either be an internal or an external stage. An internal stage is created with SQL statements specifically. There is a great deal of flexibility for users to allot file formats and other options to name the stages. For the external stage, Snowflake currently supports only Amazon S3 and Microsoft Azure, and the respective cloud interfaces are used to upload the data. 

In cases where performance is all-important and neither S3 nor Azure is applicable, custom scripts such as Panda or Python frameworks may be used. These are useful for breaking down large datasets into smaller manageable subsets before migration. 

Migrating data to Snowflake – The final stage is to migrate data SQL Server to Snowflake from the temporary stages where it is located to the intended tables. The process can be done for small databases by applying the data loading wizard of Snowflake. For bulk data and large databases, the Data Loading Overview is used and the following steps have to be gone through. 

Command PUT to stage files

Command COPY INTO table to migrate the processed data into an intended table. 

Even though the migration process stops here, provision should be made to continually migrate incremental data that is data where changes or modifications have been made. A script has to be created to identify new data in the source database and continually update that in the target database.  

With the right tools and skill sets, migrating SQL Server database to Snowflake is not complex or complicated.    

I am an international Digital Marketing SEO and content expert, helping brands and publishers grow through search engines. I am Outbrain's former SEO and Content Director and previously worked in the gaming, B2C and B2B industries for more than a decade.