Migrate and Replicate Data from PostgreSQL to Snowflake with Striim
How to use Striim to migrate data from an existing PostgreSQL database into Snowflake
- Tools you need
- Step 1: Prepare a Snowflake Database and Launch Striim
- Step 2: Create a Striim Service to Host a Data Migration app
- Step 3: Create a Data Migration app on the Striim Service
- Step 4: Prepare for Data Migration to Snowflake
- Step 5: Prepare Your Target and Migrate Your Data to Snowflake
- Wrapping Up
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 PostgreSQL database into Snowflake.
Before migrating your data from PostgreSQL, 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:
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:
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:
In this section you will configure your app to access your source PostgreSQL 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 PostgreSQL database.
Follow the steps below to migrate data using Striim’s step-by-step wizard:
- Enter the details of your existing PostgreSQL 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 PostgreSQL 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:
Now that Striim can read from your source PostgreSQL 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:jdbc:snowflake://YOUR_HOST.snowflakecomputing.com/?db=YOUR_DATABASE_NAME&schema=public
- 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: The amount of time required for migration will vary depending on how much data is being migrated from your source PostgreSQL database and on your internet connection speed.
Our tutorial showed you how easy it is to migrate data from PostgreSQL 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.