Migrate and Replicate Data from SQL Server to Snowflake with Striim
How to use Striim to migrate schemas and data from an existing SQL Server database into Snowflake
What is Striim?
Striim is a next generation Cloud Data Integration product that offers change data capture (CDC) enabling continuous replication from popular databases such as Oracle, SQLServer, PostgreSQL and many others.
In addition to CDC connectors, Striim has hundreds of automated adapters for file-based data (logs, xml, csv), IoT data (OPCUA, MQTT), and applications such as Salesforce and SAP. Our SQL-based stream processing engine makes it easy to enrich and normalize data before it’s written to Snowflake.
In this tutorial, we’ll show you how to use Striim to migrate schemas and data from an existing SQL Server database into Snowflake.
Step 1: Prepare a Snowflake Database and Launch Striim
Before migrating your data from SQL Server, you must first create a database within Snowflake to store the migrated data. After that database has been created you can launch Striim as a Snowflake partner service directly from within Snowflake.
Follow the steps below to prepare a database and launch Striim in Snowflake:
Launch Snowflake in a web browser.
Click on Databases > Create:
Enter a unique name for the database and click Finish:
Click on Partner Connect in the top right corner of the navigation bar.
Locate and click on Striim in the list of Snowflake partners. Note: you may need to first switch your user role to ACCOUNTADMIN in order to launch Striim from Snowflake:
Activate the partner account if the account has not been previously activated:
Confirm that the database you created in steps 2 and 3 above is listed in Database(s) with USAGE privilege granted and click Connect:
Note: On subsequent launches after activation has been completed for the first time, Snowflake will just prompt you to launch:
Step 2: Create a Striim Service to Host a Data Migration App
In Striim an app will be used to migrate the data. Before you can create that app, you need to first create and configure a service to host the app.
Follow the steps below to create a new Striim service:
Click on Marketplace in the top menu.
Locate the Snowflake app and click on Create:
Enter a unique name in the Name field noting the naming requirements listed:
(Optional) Click Show advanced options and specify the Service Version and Cluster Type.
Click Create. The browser will redirect to the Services screen.
Wait for the new service to enter the Running state.
Click on Launch:
Step 3: Create a Data Migration App on the Striim Service
With the service now created and launched, you must create an app that runs on that service to perform the data migration.
Follow the steps below to create a new data migration app:
Click on Apps to display the app management screen:
Click Create app:
Click on SQL Server Database to Snowflake:
Enter a name for the new application and the namespace and click Save:
The data migration wizard is displayed:
Step 4: Prepare for Data Migration to Snowflake
In this section you will configure your app to access your source SQL Server database. As you proceed through Striim’s migration wizard, Striim will validate that it can access and fetch the metadata and data of your source SQL Server database.
Follow the steps below to migrate data using Striim’s step-by-step wizard:
Enter the details of your existing SQL Server database from which data is to be migrated and click Next:
Striim will verify that it can connect to your database and obtain metadata:
Click Next to advance to the Select Schemas screen.
Select the schemas to migrate from your SQL Server database to Snowflake and click Next:
Striim will fetch and validate metadata for each table in your database:
Click Next to advance to the Select Tables screen. Navigate through each schema on the left-hand side, and select the tables from each to migrate:
Click Next to complete the wizard. The target creation screen is displayed:
Step 5: Prepare Your Target and Migrate Your Data to Snowflake
Now that Striim can read from your source SQL Server database, you must configure Striim to write to your target Snowflake database.
Follow the steps below to prepare a Snowflake target and start the migration process:
Enter a unique name for the target in the Target Name field on the Create Snowflake Target(s) screen.
Ensure Input From is set to the stream you created using the steps in the previous sections. Note that the name will be in the form of
Prepare the URL of the target Snowflake database: copy the following URL into the Connection URL field and replace YOUR_HOST with the base host domain assigned by Snowflake to your account, and YOUR_DATABASE with the name of your database:
For example, the following URL has a base URL of xr86987.ca-central-1.aws and the database name set to RNA:
Enter your credentials corresponding to your Snowflake account into the Username and Password fields.
(Optional) Modify which tables to migrate by configuring the table name(s) listed in the Tables field. By default, the tables listed will be based on those specified in the steps from the previous section and include the % as a wildcard character:
Click Next. Striim will recreate the schema(s) in your Snowflake database:
Click Next after target creation is complete. Striim will begin migrating your data to Snowflake and will provide a detailed Application Progress popup showing how the migration is progressing:
Wrapping Up: Start Your Free Trial
Our tutorial showed you how easy it is to migrate data from SQLServer to Snowflake, a leading cloud data warehouse. Once your data has been migrated, Striim enables continuous, real-time updates via Change Data Capture.
For instances where changes continue to be made to the data in your source database, Striim enables zero-downtime, zero-data loss migrations to Snowflake.
Tools you need
Striim’s unified data integration and streaming platform connects clouds, data and applications.
PostgreSQL is an open-source relational database management system.
Snowflake is a cloud-native relational data warehouse that offers flexible and scalable architecture for storage, compute and cloud services.