SQL Server databases are commonly used to store enterprise records. It is often necessary to move this data to other locations. The CData SSIS Components for Snowflake allow you to easily transfer data from SQL Server to Snowflake.
This article demonstrates how to use the CData SSIS Components for Snowflake inside of a SQL Server Integration Services workflow to export data from SQL Server to Snowflake, utilizing a lookup component to find and update any existing records or insert new records.
About Snowflake Data Integration
CData simplifies access and integration of live Snowflake data. Our customers leverage CData connectivity to:
- Reads and write Snowflake data quickly and efficiently.
- Dynamically obtain metadata for the specified Warehouse, Database, and Schema.
- Authenticate in a variety of ways, including OAuth, OKTA, Azure AD, Azure Managed Service Identity, PingFederate, private key, and more.
Many CData users use CData solutions to access Snowflake from their preferred tools and applications, and replicate data from their disparate systems into Snowflake for comprehensive warehousing and analytics.
For more information on integrating Snowflake with CData solutions, refer to our blog: https://www.cdata.com/blog/snowflake-integrations.
Getting Started
Add the Components
To get started, add a new OLE DB source, CData Snowflake lookup, and two CData Snowflake destinations (one to handle a lookup with a match and one to handle a lookup without a match) to a new data flow task.
π OLD DB Source, CData Snowflake Lookup and CData Snowflake Destinations
Configure the OLE DB Source
Follow the steps below to specify properties required to connect to the SQL Server instance.
- Open the OLE DB Source and add a new connection. Enter your server and database information here.
- In the Data access mode menu, select "Table or view" and select the table or view to export into Snowflake.
π The SQL Server table to export into Snowflake. (Salesforce is shown.)
- Close the OLE DB Source wizard and connect it to the CData Snowflake Destination.
Create a New Connection Manager for Snowflake
Follow the steps below to save connection properties in the Connection Manager.
- Create a new Connection manager: In the Connection Manager window, right-click and then click New Connection. The Add SSIS Connection Manager dialog is displayed.
- In the Connection Manager type menu, select the CData Snowflake Connection Manager.
- Configure the connection properties. A typical Snowflake connection requires:
- User
- Password
- AccessToken
π The Connection Manager. (Salesforce is shown.)
Configure the Snowflake Lookup
In the lookup component Transform Editor, define mappings from the SQL Server source table into the Snowflake lookup table.
- Double-click the Snowflake lookup to open the lookup component editor.
- In the Connection tab, select the Connection manager previously created.
- On the Connection tab, specify the Connection manager (or create a new one) and the table into which the data will be upserted. In this case, you will transfer Account records.
π The table into which the data will be exported. (Salesforce is shown.)
- On the Columns tab, configure the mapping of the primary key from the input columns to the primary key of the lookup columns.
π The mappings from SQL Server source to the SSIS lookup component. (Salesforce is shown.)
Configure the Snowflake Destinations
Using the lookup component, you know which entries from the data source already exist in Snowflake and which ones are new. Configure two Snowflake components to handle the situation where a match is found and a match is not found.
Lookup Match Destination
If the lookup component returns a match, update the existing record in Snowflake.
- Map the Lookup Match Output to a Snowflake destination component.
- Double-click the Snowflake destination to open the destination component editor.
- In the Connection Manager tab, select the Connection manager previously created.
- Specify the table which will be updated and set the Action to "Update."
π The table which will be updated. (Salesforce is shown.)
- On the Column Mappings tab, configure the mappings from the input columns to the destination columns (be sure to map the SQL Server primary key column to the Snowflake primary key column).
π The mappings from lookup component to the destination component. (Salesforce is shown.)
Lookup No Match Destination
If the lookup component does not return a match, add a new record to Snowflake.
- Map the Lookup No Match Output to a Snowflake destination component.
- Double-click the Snowflake destination to open the destination component editor.
- In the Connection Manager tab, select the Connection manager previously created.
- Specify the table into which the new record will be inserted and set the Action to "Insert."
π The table into which the new record will be inserted. (Salesforce is shown.)
- On the Column Mappings tab, configure the mappings from the input columns to the destination columns.
π The mappings from lookup component to the destination component. (Salesforce is shown.)
Run the Project
You can now run the project.
After the SSIS Task has finished executing, data from your SQL table will be exported to the chosen table.
π The completed upsert. (Salesforce is shown.)