Snowflake Snap Pack

Overview

Snowflake is a cloud data warehouse (CDW). Use Snaps in this Snap Pack to:
  • Insert, upsert, update, unload, execute and delete records in Snowflake.
  • Query a specific Snowflake instance and return the requested records or keys.
  • Execute multiple queries.
  • Enable SCD2 to track the history of changes.
This Snap Pack contains the following Snaps:
  • Snowflake - Bulk Load: Loads data from input sources or files stored on external object stores like Amazon S3, Google Storage, and Azure Storage Blob into the Snowflake data warehouse.
  • Snowflake - Bulk Upsert: Performs bulk operation that updates existing records or insert records to a target Snowflake table.
  • Snowflake - Delete: Executes a Snowflake SQL delete with the specified configurations.
  • Snowflake - Execute: Executes arbitrary Snowflake SQL.
  • Snowflake - Insert: Executes a Snowflake SQL Insert statement with specifed configurations.
  • Snowflake - Lookup: Looks up records in the target Snowflake SQL Server table and returns a selected set of fields for every matched record.
  • Snowflake - Multi Execute: Executes multiple Snowflake queries.
  • Snowflake SCD2: Executes one SQL lookup request per set of input documents to avoid making a request for every input record.
  • Snowflake - Select: Fetches data from a database by providing a table name and configuring the Snowflake connection.
  • Snowflake - Table List: Fetches a list of tables in a database.
  • Snowflake - Unload: Unloads the result of a query to a file or files stored on the Snowflake stage, Google Cloud Storage, an external S3 workspace, or on Azure Storage Blob if required.
  • Snowflake - Update: Updates the records into the given table based upon the given clause, and return the response as a document stream.
  • Snowflake - Vector Search: Executes a query to search for similar records from the Snowflake database.
The following Snaps support Azure Blob for external staging:
Note:

The jOOQ upgrade from v3.17.3 to v3.17.28, included in the 4.41 GA (main31019), introduced a change in how timestamps are handled in the Snowflake Snaps. jOOQ now recognizes the TIMESTAMPNTZ type (as reported by the Snowflake JDBC driver) and attempts to convert it to an OffsetDateTime. This conversion requires the timestamp to be in an ISO 8601-compliant format. As a result, if the timestamp is returned in a non-standard format, such as using abbreviated months (MON) instead of numeric months (MM), the Snap may fail.

To ensure compatibility, we highly recommend that you configure the TIMESTAMP_OUTPUT_FORMAT in the Snowflake server (at the user or session level) to use an ISO 8601-compatible format like YYYY-MM-DDTHH24:MI:SS.FF3. The month indicates a numeric (MM) value instead of an abbreviated (MON) value. For example, 2025-07-17T14:35:22.123
  • YYYY – 4-digit year (2025)
  • MM – 2-digit month (07)
  • DD – 2-digit day (17)
  • T – the literal character "T" (separator between date and time)
  • HH24 – hour in 24-hour format (00–23) (14:35)
  • MI – minutes (00–59)
  • SS – seconds (00–59) (22)
  • FF3 – fractional seconds with 3 digits (milliseconds) (123)
Important:

Snowflake has ceased support for older driver versions in compliance with its Support Policy. The Snowflake Snap Pack is bundled with the JDBC driver v3.24.2, but if you are using your own version, it may be deprecated in accordance with Snowflake Guidelines. You must upgrade your Snowflake pipelines to use the Snowflake JDBC Driver v3.24.2 or a higher version to access important security, performance, and functionality improvements. Learn how to check your current driver version.

Snowflake is planning to block Password authentication by November 2025. If you currently use Basic authentication (Username-password) to access Snowflake, we recommend that you take action by doing one of the following:
  • Use a Programmatic Access Token instead of a Password in all your Snowflake Accounts. Learn more: Generate PAT.
  • Migrate to Key-Pair or OAuth2 Authentication Type available in the Snowflake accounts.

Prerequisites

  • A Snowflake JDBC driver with no vulnerabilities if you want to use a custom JAR file.
  • For the GEOMETRY data type, JDBC driver JAR v3.13.28 or higher is required
  • User-defined functions (UDFs) created in the Snowflake console can be executed using Snowflake - Execute and Snowflake - Multi Execute Snaps.

Supported versions

This Snap Pack is tested with JDBC driver v3.24.2.
Note:

For all geospatial data types, we recommend that you use our custom JDBC driver. Contact support@snaplogic.com for details.

Temporary files

During execution, data processing on Snaplex nodes occurs principally in-memory as streaming and is unencrypted. When processing larger datasets that exceed the available compute memory, the Snap writes unencrypted pipeline data to local storage to optimize the performance. These temporary files are deleted when the pipeline execution completes. You can configure the temporary data's location in the Global properties table of the Snaplex node properties, which can also help avoid pipeline errors because of the unavailability of space. Learn more about Temporary Folder in Configuration Options.