DataSync for Snowflake is a bi-direction (ServiceNow <> Snowflake) integration that Bulk Shares and Dynamic shares to synchronize data for the collection of ServiceNow data into a Snowflake data warehouse, and vice versa.
Set up a ServiceNow to Snowflake Integration
Prerequisites
Request the databaseConfig.json file for your meshlet by contacting Perspectium Support.
Database, Warehouse, and Schema will not be created by the meshlet and are expected to be supplied on use.
The meshlet connects to Snowflake using a JDBC driver with a specified <user> and <password>. The user must have the role of SYSADMIN or a custom role of equivalent privileges in order to create objects (tables) and write records.
See Snowflake's list of default roles here.
Related to the meshlet's minimum database user requirements, the following Snowflake access control privileges are needed by the Snowflake role/user configured in the meshlet:
Object | Privileges |
---|---|
Virtual Warehouse | USAGE |
Database | USAGE |
Schema* | USAGE, CREATE TABLE, CREATE FILE FORMAT, CREATE STAGE |
Table^ | SELECT, INSERT, UPDATE, DELETE, TRUNCATE |
Stage | WRITE |
File Format | USAGE |
*The meshlet will executed the SHOW <objects> command. As long as the role/user has one privilege on the Schema (and it needs the ones listed above), then it will have the ability to execute this command.
^The meshlet will use the ALTER TABLE command to add new columns to tables when a new column is created in ServiceNow. The INSERT privilege allows executing this command. The meshlet uses MERGE for inserting, updating and deleting records from a table and having the above privileges allows it to run this command.
To get started with ServiceNow to Snowflake integration, follow these steps:
In the Databases page in Snowflake, click Create... to create a new database. Then, fill in the Name field and click Finish.
Create a ServiceNow bulk/dynamic share for Snowflake
To enable the sharing of ITSM data from your ServiceNow instance to your Snowflake instance, you will need to create a ServiceNow bulk share and/or dynamic share. A ServiceNow bulk share is a one-time transfer of data from your ServiceNow instance. A ServiceNow dynamic share allows for real time sharing of ServiceNow records as they are created, updated, and deleted. Creating a bulk share and/or dynamic share will share out your ServiceNow data immediately as well as share out subsequent data that is collected as ServiceNow records are created, updated, and deleted.
Prerequisites
You will first need to install the Perspectium Core update set. You can request a download link for this update set by contacting Perspectium Support.
You will also need to have a ServiceNow shared queue that points to your Snowflake instance. This queue should have been created by Perspectium Support upon initial configuration of your ServiceNow instance.
Procedure
To create a bulk share, follow these steps:
Go to your ServiceNow instance. Then, navigate to Perspectium > Perspectium Core > Shares > Bulk Share.
Click the New button next to Bulk Shares. In the resulting form's Cipher dropdown, select an encryption type to be used. Then, follow the remaining steps to create a ServiceNow bulk share for DataSync for ServiceNow (DataSync).
To create a dynamic share, follow these steps:
Go to your ServiceNow instance. Then, navigate to Perspectium > Perspectium Core > Shares > Dynamic Share.
Click the New button next to Bulk Shares. In the resulting form's Cipher dropdown, select an encryption type to be used. Then, follow the remaining steps to create a ServiceNow dynamic share for DataSync for ServiceNow (DataSync).