Deploying CARTO using Snowflake Container Services
Last updated
Last updated
CARTO can be fully deployed within Snowflake as a Native App, using Snowpark Container Services.
With this deployment method, all the components of CARTO will be hosted, managed, deployed and maintained inside your Snowflake account, and data will never be consumed outside of your Snowflake account, which can be a huge security benefit for some organizations.
An additional benefit of this deployment is that you get a performant deployment of CARTO using resources automatically managed and scaled by Snowflake, by simply following the steps in this guide. This minimizes the amount of IT resources necessary to host and maintain your own CARTO instance.
This deployment method is in Beta.
In order to deploy CARTO as a Snowflake Native App + Container Services, you'll need:
A valid, non-trial Snowflake account in a region compatible with Snowpark Container Services
Your Snowflake account must be ready to install and use listings from the Snowflake Marketplace
Your Snowflake account must be ready to use Snowpark Container Services
A valid CARTO subscription
During the Beta period for this deployment method, some features will be disabled, but organizations can already start scaling their geospatial analytics with Builder and Workflows, fully powered by Snowflake.
Current functionalities
CARTO Builder: including support for large-scale vector and raster datasets, as well as spatial-indexes (H3) based visualizations. Widgets, tooltips, popups and other functionalities are also available. Learn more about Builder.
CARTO Workflows: including support for more than 100 components for low-code geospatial analytics, as well as the ability to schedule workflows. Learn more about Workflows.
SSO, Groups and Sharing
Custom Basemaps
CARTO Data Observatory: more than 10,000 public and premium geospatial datasets available, directly from Snowflake. Learn more about the Data Observatory
Current limitations
LDS: Geocoding, Isolines, Routing
Public maps, custom markers and custom branding
CARTO for Developers, including all APIs
Imports/Exports
Workflow components: SEND_BY_EMAIL and HTTP_REQUEST
To get started, get in touch with the team through your CARTO representative. If you do not have one, please contact support@carto.com. Our team will grant you access to a private share containing the CARTO Native App for Snowflake Containers, and your CARTO license key.
To begin with the installation, simply open the CARTO private share and click on Get. You'll be asked which warehouse the app will use.
Once you click on Configure, the Snowflake control panel of the app will open. There are some steps that you need to complete before launching CARTO for the first time:
Grant Account Privileges: the app needs certain privileges to run in your Snowflake Account.
CARTO Network integration: the app will need access to query resources and URLs hosted by CARTO outside of Snowflake.
Secrets access: the app will need access to the license secret stored in Snowflake.
Snowflake Network integration: the app will need access to query resources and URLs hosted in Snowflake.
CARTO license key: the license corresponding to your CARTO organization, plan, and quotas, as shared by our team.
Once these steps have been completed, you can click on "Launch App"
Once the app launches, you're now inside the CARTO Native App
The first thing all users will see when opening the app is the control panel. This control panel contains the following pages:
Installation: in this page you can review the status of your installation
Restart: to start or stop the containers used by CARTO
SSO: to add the SSO configuration as provided by CARTO in Configuring SSO.
Monitor: containing a list of all the containers used by CARTO and their last known status.
Help and Support: easy access to all learning and support resources.
Each page will display different content depending on the permissions for each user and the status of the app.
The first time you open the control panel you'll notice there are 4 additional steps you need to take:
Create an Snowflake OAuth integration: CARTO uses an OAuth-based connection so that each user leverages their own credentials, roles and permissions inside CARTO. To learn more, check Integrating Snowflake OAuth.
Learn how to install the CARTO Analytics Toolbox: the preferred mechanism to install the CARTO Analytics Toolbox is through a Snowflake Native App.
Configure your admin password
Learn how to add more users: as explained in Adding more users.
Those are your last steps! Once you're done, CARTO is ready to be launched.
When you start CARTO, the containers may take up to 5 or 10 minutes to get started.
To access the app, all users must authenticate first with their Snowflake credentials and then, with their CARTO credentials.
Login with your Snowflake credentials. Then, use your admin credentials as defined previously to access CARTO and start with the onboarding.
To finish the onboarding, simply configure your Snowflake OAuth connection. You will be required to login again with Snowflake, and then confirm your Snowflake connection settings.
Congrats! Click on "Connect" and you'll be taken to CARTO Workspace where you can start using CARTO fully deployed inside Snowflake 🎉
To add more users to the app you'll need:
Give them access to use the Snowflake app, by using roles and permissions in Snowflake.
Finish your SSO configuration in CARTO.
To configure SSO, get in touch with the CARTO team. Our team will request specific information about your Identity Provider (IdP) and will complete the configuration with you.
At the end of the process, you'll be handed an Organization ID
that you will need to input in the CARTO Manager.
CARTO as a Snowflake Native App + Container Services does not require active or scheduled maintenance. Watch the Monitor page in the CARTO Manager to check the container status.
Do not uninstall the app. If you uninstall the app you'll need to repeat the onboarding process, including obtaining a new CARTO license, and you will lose your maps, workflows and assets.
Nov 21st: v0.1.0-beta released