To integrate with Snowflake, you will need to access your Snowflake console.
For this self-service integration, we also have some data requirements:
- All of your events must be unified into one singular table as opposed to having separate tables for each event type.
- By definition, an event must have a user_id, event_name, and timestamp field. The fields do not have to be named as such, and any additional fields will be treated as event properties.
- There can only be a maximum of one authenticatedID and one unauthenticatedID for aliasing.
- The event timestamp must be in UTC
- JSON fields must be pre-parsed and flattened into their own fields.
- All joins must be done beforehand.
For any advanced enrichments or modeling such as creating custom user aliasing logic, please contact us
Adding a Data Source In Indicative
In Indicative, click on Settings and select Data Sources
Click on New Data Source
- Select Connect via Data Warehouse or Lake
- Select Snowflake as your data connection and Define your own schema as the connection schema and click Connect
- You should see this Snowflake Overview screen. Click Next
- Log in to your Snowflake account.
- Enter the Account Info into Indicative. Account Info is everything to the left of .gcp.snowflakecomputing.com/...
- Enter the Warehouse name.
- Enter the Database name.
- Click into Warehouses and copy the Schema.
- Enter the Table name.
- For Auto-Generated Password, we randomly generate a password for you to use. If you would like to create your own password, please replace the autofilled value in that field.
- You will need to copy and paste these code snippets into your Snowflake worksheet.
- Navigate to the Worksheets tab and paste the snippets into the SQL runner, and hit Run All.
- The last snippet needs to be applied in Admin -> Security -> + Network Policy.
- Click Next to test your connection
- Load Timestamp Field
Select the field used to identify new data. We recommend using a timestamp that denotes when the event was published, not the actual event timestamp to allow for late data to be collected. This will not impact your analyses since we reference the event timestamp for our queries. If you select to load data every 3, 6, or 12 hours, make sure to select a load timestamp field with at least hour precision (not a date only field).
For example, if an event with an event timestamp of 12/1 was published to the table on 12/3, this will not be collected unless we use the publishing timestamp since every daily extract would look for events that occurred on 12/3. Using the publishing timestamp will allow us to extract all new data that was published to the table on a nightly basis.
- Start Date
Select the date from where Indicative should load your data from.
If your data history exceeds 1 billion events, a Solutions Engineer will contact you to assist with the integration.
- Schedule Interval
Select the frequency to make new data available in Indicative.
- Processing Delay
Select when we should start extracting your data in UTC. This time should be when all of your previous day's data is fully available in your table for extraction.
- In the Events Field section, input the field that should be used to derive Indicative event names.
- For Timestamp, input the field that represents the time that the event was performed.
- Click Next
After this step, we will perform a few checks on your data with the model that you provided. The checks are:
- Valid event field (Do at least 80% of your records have a value for the event field?
- Valid timestamp field (Do at least 80% of your records have a value for the timestamp field?
- Total number of unique events. We recommend 20-300 unique events and limit it to 2000.
After some basic checks, we can define your users within your data. For more information on User Identification (Aliasing), please refer to this article.
- If you choose to enable Aliasing:
- Unauthenticated ID - Input the field used to identify anonymous users.
- Authenticated ID - Input the field used to identify known users.
- I you choose to disable Aliasing, press Disabled:
- Unauthenticated ID - Enter the field used to identify your users. All users must have a value for this field.
If you have a non-null value that represents null UserID values, please click on the Show Advanced button. In this field, please enter these non-null values.
After this step, we will perform additional checks on your data with the user model that you provided. The checks are:
- User Hotspot (Is there a single UserID that represents over 40% of your records?)
- Anti-Hotspot (Does your data have too many unique userIDs? A good events table contains multiple events per user)
- Too many unauthenticated IDs for a single authenticated userID
- Too many authenticated IDs for a single anonymous ID
You should see a summary of your data based on the last 7 days in two main blocks.
You should only be concerned if the margin of error is significant. If so, please reach out to a product specialist:
- Events Summary
You should see a daily breakdown of your Total Event Count, and the number of Unique Event Names. If there are certain events to exclude, please click on the Exclude checkbox for those events.
If you would like to exclude any events by regex or property value, please contact a product specialist.
- Properties Summary
Here you will see the number of Unique Property Names. If there are certain properties to exclude, please click on the Exclude checkbox for those events.
If you require more advanced configurations such as parsing out JSON fields, creating derived properties, or excluding properties based on regex, please contact a product specialist.
- Users Summary
This section lists the number of Unique users seen. If the numbers do not look correct, please go back to the User Modeling section to confirm that the correct ID was chosen.
Waiting for Data
If you see this screen, you're all done! You should see your data in Indicative within 48-72 hours and will be notified by email.
For additional advanced settings such as excluding certain events and properties, please refer to this page