Snowflake and ArcGIS integrations

Snowflake offers a set of data management and analytics products built around a centralized, cloud-based data warehousing capability. Organizations use Snowflake products in different ways, as both analytical and transactional systems to support various business applications. ArcGIS offers a variety of integration points with Snowflake, enabling different workflows for data access, analysis, and visualization.

These methods can be categorized into four groups:

  • Direct connect
  • ETL
  • Big data analytics
  • Snowflake Native

For optimal performance when integrating ArcGIS to Snowflake, it is recommended that both your ArcGIS clients and your Snowflake environment be deployed within the same cloud platform and region. This minimizes latency and data transfer costs, and provides the best performance for interactions between ArcGIS clients and Snowflake services and endpoints.

Direct connect and query layers

Direct connect patterns allow ArcGIS clients to work with Snowflake services directly, without translation or copying of data to another location. Before establishing a direct connection, install the appropriate Snowflake ODBC driver on all ArcGIS client machines accessing the data. Configuring the necessary network and firewall settings is also crucial to allow appropriate communication between ArcGIS and Snowflake, which may include updating the Snowflake allow-list to allow request from ArcGIS clients.

Snowflake query layers can be created in ArcGIS Pro, used as layers for cartographic or analytical workflows, and then published to ArcGIS Enterprise for use by web clients and other applications.

In either scenario, query layers provide a direct, live connection to your Snowflake data. This means that any changes made to the source data in Snowflake are immediately reflected in your ArcGIS Pro map layer or ArcGIS Enterprise query layer. To create a query layer, first establish a database connection to Snowflake within ArcGIS Pro using a supported authentication scheme, then define a SQL query to select the specific data you want to visualize. To be displayed in an ArcGIS Pro map, data stored in Snowflake must include a column with the GEOGRAPHY data type. Tables without a spatial column can be added as query layers for use in charts or joins, but cannot be visualized in a map layer.

For additional best practices in this area, refer to the data lakes and data warehouses content.

Custom data feeds

While ArcGIS client applications based on query layers do not support direct editing of data in data warehouses like Snowflake, a custom data feed can be written to support carefully-designed read and write operations.

ETLs and Data Interoperability

Various tools and methods are available to move data between Snowflake and ArcGIS, allowing for both read-only workflows as well as bidirectional flows with edits or new data submissions flowing between systems. To write data into Snowflake, you can utilize tools like the ArcGIS Data Interoperability extension, which provides read/write support for Snowflake. This allows you to create ETL (Extract, Transform, Load) workflows to move data from various sources into Snowflake. Data Interoperability also provides a well-tested reader capability to access Snowflake data, where it can be queried, transformed and written out to ArcGIS feature service endpoints or an enterprise geodatabase table.

ArcGIS API for Python and ArcGIS Notebooks

You can use the ArcGIS API for Python within ArcGIS Notebooks for more customized and automated ETL processes. This allows you to script connections to Snowflake, query and process data, and then publish it as feature services in ArcGIS Online or ArcGIS Enterprise. This approach offers a high degree of flexibility for complex data integration tasks.

ArcGIS Data Pipelines

ArcGIS Data Pipelines, an ArcGIS capability, provides an intuitive drag-and-drop interface for ingesting and preparing data from various sources, including Snowflake. You can create data pipelines to connect to your Snowflake tables, transform the data, and load it into ArcGIS Online or ArcGIS Enterprise as feature layers. These pipelines can be scheduled to run automatically, ensuring your data in ArcGIS is kept up-to-date.

Big data analytics with Geoanalytics Engine

ArcGIS GeoAnalytics Engine extends the analytical capabilities of Spark-based environments to work with spatial data, including data stored in Snowflake. Connecting any supported Spark environment to a Snowflake instance allows use of GeoAnalytics Engine spatial SQL functions and analysis tools to perform large-scale geospatial analysis on your Snowflake data. This integration is particularly useful for organizations that need to analyze massive datasets and uncover spatial patterns and relationships.

Access ArcGIS services from Snowpark

Snowflake customers also have access to a Snowflake-hosted data analytics and Spark environment, known as Snowpark. Working in Snowpark, Snowflake users can connect to ArcGIS Location Services to perform geospatial operations directly within your Snowflake environment. This allows you to enrich your Snowflake data with services like geocoding, routing, and demographic data from ArcGIS. You can create User Defined Functions (UDFs) in Snowpark that call ArcGIS Location Service APIs, enabling you to perform these operations at scale on your data stored in Snowflake.

To learn more about these Snowpark integration patterns, see these resources:

Top