June 2022

The following new features, behavior changes, and updates (enhancements, fixes, etc.) have been introduced this month. If you have any questions about these additions, please contact Snowflake Support.

Important

Each release may include updates that require the web interface to be refreshed.

As a general practice, to ensure these updates do not impact your usage, we recommend refreshing the web interface after each Snowflake release has been deployed.

New Features

Snowpark API for Python — Preview

We are pleased to announce the preview of the Snowpark API for Python.

Snowpark is a new developer experience that provides an intuitive API for querying and processing data in a data pipeline. Using this library, you can build applications that process data in Snowflake without moving data to the system where your application code runs.

Preview features are intended for evaluation and testing purposes and are not recommended for use in production.

For more information, see Snowpark Developer Guide for Python.

Python UDFs — Preview

We are pleased to announce a preview of Python UDFs (user-defined functions).

Users can now write custom functions in the Python programming language and call those as though they were built-in functions.

Preview features are intended for evaluation and testing purposes and are not recommended for use in production.

For more information, see Introduction to Python UDFs.

Python UDF Batch Interface — Preview

We are pleased to announce a preview of the Python UDF batch API.

The Python UDF batch API enables defining Python functions that receive batches of input rows as Pandas DataFrames and return batches of results as Pandas arrays or Series. You call Python UDFs that use the batch API the same way you call other Python UDFs.

Preview features are intended for evaluation and testing purposes and are not recommended for use in production.

For more information, see Vectorized Python UDFs.

Python UDTFs — Preview

We are pleased to announce a preview of Python UDTFs (user-defined table functions).

Python UDTFs extend Snowflake’s native development capabilities by combining the advantages of table functions with the power, flexibility, and ease of programming in Python.

Preview features are intended for evaluation and testing purposes and are not recommended for use in production.

For more information, see Writing a UDTF in Python.

Snowpark Stored Procedures for Python — Preview

We are pleased to announce a preview of Snowpark stored procedures for Python, which allows you to write stored procedures in Python using the Snowpark API.

In your stored procedure, you can use the Snowpark API for Python to host your data pipelines in Snowflake. For example, you can write stored procedures in cases where you need to execute your Snowpark code without running a client application (e.g. from a task).

Preview features are intended for evaluation and testing purposes and are not recommended for use in production.

For more information, see Writing stored procedures in Python.

New Regions

We are pleased to announce the immediate availability of the following new region:

Cloud Platform

Region

Microsoft Azure

Central India (Pune)

With the addition of this region, Snowflake now supports thirty-two global regions across three cloud platforms (AWS, GCP, and Azure), including three regions that support compliance with US government regulations.

The new region supports all Snowflake editions. You can provision initial accounts in the region through self-service or a Snowflake representative.

SQL Updates

ALTER TAG Command: Support Added for Masking Policy

With this release, Snowflake updates the ALTER TAG command to allow specifying a masking policy.

Syntax

Description

ALTER TAG <tag_name> SET MASKING POLICY <masking_policy_name> [ , MASKING POLICY <masking_policy_2_name> , … ]

ALTER TAG <tag_name> UNSET MASKING POLICY <masking_policy_name> [ , MASKING POLICY <masking_policy_2_name> , … ]

Use an ALTER TAG command to set a masking policy on a tag or to unset a masking policy from a tag.

Note that the syntax for the ALTER TAG command allows assigning multiple masking policies to a tag in a single statement, and the command only supports one masking policy for each data type (e.g. VARCHAR, NUMBER).

New Functions

The following functions are now available with this release:

Category

Name

Description

System

SYSTEM$GET_TAG_ON_CURRENT_COLUMN

Returns the tag string value assigned to the column based upon the specified tag or NULL if a tag is not assigned to the specified column.

Note that this function can only be used inside the masking policy conditions.

System

SYSTEM$GET_TAG_ON_CURRENT_TABLE

Returns the tag string value assigned to the table based upon the specified tag or NULL if a tag is not assigned to the specified table.

Note that this function can only be used inside the masking policy conditions or row access policy conditions.

Virtual Warehouse Updates

DML Latency Improvements

We are pleased to announce DML latency improvements for workloads with a high number of concurrent DML operations (e.g. more than 100 DML jobs per second), such as ingestion workloads or OLTP-like workloads. These improvements result in faster write-heavy workloads and reduced warehouse load.

Larger Warehouses — Preview

With this release, we are pleased to announce improved performance of larger (5X-LARGE and 6X-LARGE) warehouses. These larger size warehouses can improve the performance of compute-intensive workloads and provide faster processing of large data sets.

This preview feature is currently only available on Amazon Web Services (AWS) in EU (Ireland) with other regions to follow. Before provisioning a 5X-LARGE or 6X-LARGE warehouse, please contact Snowflake Support. Provisioning times for these sizes may take slightly longer while they are in the preview phase.

For more information, see Overview of warehouses.

Data Loading Updates

Snowpipe: Error Notifications for Google Cloud Pub/Sub or Microsoft Azure Event Grid — Preview

We are pleased to announce preview support for Snowpipe error notifications pushed to either the Google Cloud Platform Pub/Sub or Microsoft Azure Event Grid cloud messaging service. When Snowpipe encounters errors while loading data from files staged in any supported cloud storage service, this feature triggers a notification that describes the errors, enabling further analysis of the data in the files.

Note

  • Support for pushing error messages to Amazon Simple Notification Service (SNS) has been available since January.

  • Cross-cloud support is not available for this feature. Snowpipe can load data from files in any supported cloud storage service; however, this feature can only push error notifications to the respective messaging service for the cloud platform that hosts your Snowflake account:

    • Amazon Simple Notification Service

    • Google Pub/Sub

    • Microsoft Azure Event Grid

This feature can push error notifications for loads from auto-ingest Snowpipe or calls to the Snowpipe REST API.

Preview features are intended for evaluation and testing purposes, and are not recommended for use in production.

Snowpipe: Support for Non-Pipe Owners to Call the Snowpipe REST API

With this release, calling the public Snowpipe REST endpoints to load data and retrieve load history reports is no longer restricted to a pipe owner (i.e. the role with the OWNERSHIP privilege on the pipe) or a higher role in a role hierarchy. The following pipe privileges allow calling specific REST endpoints:

Pipe Privilege

REST Endpoints

MONITOR

insertReport, loadHistoryScan

OPERATE

insertFiles

The other existing access control requirements remain the same.

Data Pipeline Updates

Tasks: DAG Support — Preview

We are pleased to announce preview Directed Acyclic Graph (DAG) support for tasks. A DAG is a series of tasks composed of a single root task and additional tasks, organized by their dependencies. Previously, users were limited to task trees, in which each task had at most a single predecessor (parent) task. In a DAG, each non-root task can have dependencies on multiple predecessor tasks, as well as multiple subsequent (child) tasks that depend on it.

Following is a very simple example:

DAG support for tasks

The root task (A) runs on a schedule, such as “every 5 minutes” or “every day at 5 AM and 5 PM.” Tasks B and C run simultaneously when Task A runs to completion. Task D runs only when both Tasks B and C complete their runs.

DAGs enable parallel processing workflows that were impossible or difficult to achieve using task trees, including:

  • Updating a set of dimension tables concurrently before aggregating facts for a dashboard.

  • Prompting a notification through a remote messaging service using an external function after all previous tasks have run to completion.

Data Governance Updates

Data Classification — General Availability

With this release, Snowflake is pleased to announce the general availability of Introduction to Classification for Enterprise Edition (or higher) accounts on AWS and Azure. The feature was previously introduced in preview in February and is still in preview on GCP.

Classification enables categorizing potentially personal and/or sensitive data stored in Snowflake tables and views, which can then be used to enable a variety of data governance, sharing, and privacy use cases.

With the GA of this feature, we’ve introduced a new data classification model that generates improved prediction models and data patterns. In addition, the classification process now includes output for every table column specified in the input, including:

  • Columns with data types that were previously unable to be classified.

  • Columns with only NULL values.

To see the benefits of the GA improvements, you must generate new results for any data that was classified using the previous data classification model.

Note

Because the new data classification model will likely return potentially different results when re-classifying data, the new model has not yet been generally enabled. Instead, it has been implemented as a behavior change in the 2022_04 bundle.

Currently, to use the new data classification model, you must opt into the 2022_04 bundle. For more details about the bundle, see the 6.21 Behavior Change Release Notes.

Tag-based Masking Policies — Preview

With this release, Snowflake is pleased to announce tag-based masking policies in preview. A tag-based masking policy combines the object tagging and masking policy features to allow a masking policy to be set on a tag using an ALTER TAG command. This feature also introduces two new system functions, SYSTEM$GET_TAG_ON_CURRENT_COLUMN and SYSTEM$GET_TAG_ON CURRENT_TABLE, which can be used to obtain the tag string value in the policy conditions.

When the data type in the masking policy signature and the data type of the column match, the tagged column is automatically protected by the conditions in the masking policy. This simplifies the data protection efforts because column data that should be protected no longer needs a masking policy manually applied to the column to protect the data.

Note that a masking policy directly applied to a column using an ALTER TABLE … ALTER COLUMN command takes precedence over tag-based masking policy. For details, see Tag-based masking policies.

Documentation and Learning Resources

Restructured Security Integration Topics

With this release, Snowflake has improved the documentation for the following SQL commands:

  • CREATE SECURITY INTEGRATION

  • ALTER SECURITY INTEGRATION

The content of the existing topics is now divided into smaller topics focused exclusively on each of the following types of security integration:

  • External OAuth

  • Snowflake OAuth

  • SCIM

  • SAML2

To support this change, eight new entries have been added under SQL Command Reference » All Commands in the TOC.