2b. Connect Your Data [Managed Snowflake Deployment]
How to connect your Snowflake instance to your Managed Simon Deployment
Overview
To begin using Simon, you must connect your Managed application to your Snowflake instance and allow us access in a few places.
We deploy snowflake infrastructure into a Simon-owned Snowflake subaccount co-located in your Snowflake region. From there, we leverage secure Snowflake sharing to leverage that data in your Managed deployment of the Simon application. Secure shares ensure that we're we don't need to do any data replication, so our app sits on top of the live data that you share with us. They also enable your team to have full control over the data accessible by the Simon application.
The instructions below will walk you through the process of setting up a secure Snowflake share from your Snowflake instance to ours.
Create a Snowflake share
- Create a
share
using theACCOUNTADMIN
role:
USE ROLE ACCOUNTADMIN;
CREATE SHARE {client name}_SIMONDATA;
- Add
objects
to the share by granting privileges:
GRANT USAGE ON DATABASE {name of database containing data for Simon} TO SHARE {client name}_SIMONDATA;
GRANT USAGE ON SCHEMA {name of schema containing data for Simon} TO SHARE {client name}_SIMONDATA;
GRANT SELECT ON TABLE {name of table containing data for Simon} {client name}_SIMONDATA;
-- Repeat line 5 for all tables and views to be shared with Simon
You can find alternative ways of adding objects to the share in the Snowflake documentation.
Add each table explicitly
You need to add each table explicitly to the share and make sure your ETL maintains access for the share.
You MUST materialize all data powering your Simon application
Our application leverages the data you make available "as is" in an effort to use the freshest data possible. If that data isn't materialized and involves complex transformation and aggregation, it will reduce the performance of the application, as we need to compute those transformations and aggregations whenever the application uses customer data (which, as a customer data platform, is quite a lot!).
If you have questions about how to do this most effectively, we'd love to provide guidance! We typically recommend using Snowflake's dynamic tables.
- Add Simon's Snowflake account to the newly created share:
ALTER SHARE {client name}_SIMONDATA ADD ACCOUNTS={Simon Account ID for your region, see below};
Simon maintains multiple Snowflake subaccounts in different regions. In order to minimize data replication and the resulting data latency, we deploy your Simon application in a Simon subaccount co-located in your Snowflake region. We can support any Snowflake region, even if it's not listed below.
Cloud Provider | Region | Simon Account ID |
---|---|---|
AWS | US-East-1 | EM41824 |
AWS | US-East-2 | PT87176 |
AWS | US-West-2 | simondatawest |
AWS | EU-West-1* | FL08809 |
AWS | EU-Central-1* | RN51556 |
Azure | CentralUS | HC30331 |
Azure | EastUS2 | MS56134 |
GCP | US-Central1 | WW33587 |
GCP | US-East4 | NT51978 |
*Simon supports fully-EU deployed instances, where all infrastructure is run from within the EU. Speak to your account manager to learn more.
If you don't see your cloud provider listed here, please speak to your account manager to request it.
Updated about 17 hours ago