April 2023¶

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¶

Account Replication — General Availability¶

With this release, we are pleased to announce the general availability of Account Replication. This feature uses replication groups and failover groups to replicate objects with point-in-time consistency from a source account to one or more target accounts. A replication group allows customers to specify which account objects to replicate, to which regions or cloud platforms, at customizable scheduled intervals. A failover group provides the same functionality as a replication group and can additionally failover the objects in a group.

Account objects can include warehouses, users, and roles, along with databases and shares (refer to Replicated Objects for the full list of objects that can be included in a replication or failover group). Account objects can be grouped in one or multiple groups.

In the case of failover, account replication enables the failover of your entire account to a different region or cloud platform. Each replication and failover group has its own replication schedule, allowing you to set the frequency for replication at different intervals for different groups of objects. In the case of failover groups, it also enables failover of groups individually. You can choose to failover all failover groups, or only select failover groups.

For more information, refer to Introduction to replication and failover across multiple accounts.

Support for Scala User-Defined Function Handlers — Preview¶

With this release, Snowflake is pleased to announce a preview of user-defined functions (UDFs) with a handler written in Scala.

For more information, refer to Introduction to Scala UDFs.

Tabular Return Values from Python Stored Procedures — Preview¶

With this release, we are pleased to announce a preview of tabular stored procedures with a handler written in Python. You can write a procedure that returns data in tabular form. To do this, you specify the procedure’s return type as TABLE (specifying columns for the return value), then have your handler code return the tabular value in a Snowpark dataframe.

For more information, refer to Returning Tabular Data.

SQL Updates¶

Encryption Enhancements¶

With this release, we are pleased to announce upgraded encryption functions, ENCRYPT() and ENCRYPT_RAW(), which can be used by customers to provide an additional layer of protection to user-provided values. The upgrades to both function were implemented as part of our commitment to continuous improvement for our customers. Customers will get the benefit of these enhancements in all subsequent invocations of the encryption functions.

For more information, refer to Encryption Functions.

ALTER <policy_kind> POLICY Command: Support for Setting and Unsetting Tags¶

With this release, Snowflake adds support to set or unset a tag on a masking, password, row access, and session policy using an ALTER statement.

Set a tag using the ALTER statement:

ALTER <policy_kind> POLICY <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
Copy

The ALTER … SET statement specifies the tag name (i.e. the key) and the tag value.

The tag value is always a string, and the maximum number of characters for the tag value is 256.

For more information, refer to Tag quotas for objects and columns.

Unset a tag using the ALTER statement:

ALTER <policy_kind> POLICY <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
Copy

The ALTER … UNSET statement specifies the tag name only.

Set policy_kind to one of the following policies:

  • MASKING

  • PASSWORD

  • ROW ACCESS

  • SESSION

SRID Argument Now Supported in GEOMETRY Constructor Functions¶

In the following GEOMETRY constructor functions, you can now specify the SRID as an argument:

The following example passes the SRID 4326 to the TO_GEOMETRY function:

SELECT TO_GEOMETRY('POINT(1820.12 890.56)', 4326);
Copy

Search Optimization and Query Acceleration Compatibility — General Availability¶

With this release, we are pleased to announce that search optimization and query acceleration can work together to optimize query performance.

Search optimization can prune the micro-partitions not needed for a query. For eligible queries, query acceleration can offload parts of the remaining work to shared compute resources provided by the service.

The performance of queries accelerated by both services varies depending on workload and available resources.

For more information, refer to:

Search Optimization Service: Column-Specific Enablement and Substring, Geospatial, and Variant Support - General Availability¶

With this release, we are pleased to announce the general availability of enabling the Search Optimization Service for a specific column of a table. Two related features that estimate the cost of enabling search optimization on a column and that display the search optimization configuration for a specified table and its columns are also now generally available.

In addition, the Search Optimization Service now supports the following types of predicates:

  • Predicates that use string patterns (e.g. LIKE, ILIKE, etc.) and POSIX regular expressions (e.g. RLIKE, REGEXP).

  • Predicates that use fields in VARIANT, ARRAY, and OBJECT columns.

  • Predicates that use geospatial functions such as ST_INTERSECTS, ST_CONTAINS, ST_WITHIN, ST_DWITHIN, ST_COVERS, and ST_COVEREDBY against GEOGRAPHY columns.

For more information, refer to:

Data Loading Updates¶

Cross-platform Support for Snowpipe Auto-Ingest — Preview¶

With this release, we are pleased to complete the cross-platform support for Snowpipe auto-ingest. Triggering automated Snowpipe data loads using S3 event messages, GCS Pub/Sub event messages, and Azure Event Grid messages are now supported by Snowflake accounts hosted on any supported cloud platforms.

For more information, refer to Automating Continuous Data Loading Using Cloud Messaging.

Amazon EventBridge Support for Snowpipe Auto-Ingest — Preview¶

With this release, we are pleased to announce the Amazon EventBridge support for Snowpipe auto-ingest. You can set up Amazon EventBridge for Snowpipe auto-ingest by following the steps in Automating Snowpipe for Amazon S3 with SNS.

Snowpipe Auto-Ingest Supports the SftpCommit API for Azure¶

With this release, Snowpipe auto-ingest now supports the SftpCommit API for Microsoft.Storage.BlobCreated events to automatically retrieve and load files created through SFTP. For more information, refer to Automating Snowpipe for Microsoft Azure Blob Storage.

Data Collaboration Updates¶

Timed Trials for Paid Listings — General Availability¶

With this release, we are pleased to announce the general availability of timed trials for paid listings offered on the Snowflake Marketplace.

Providers who offer a paid listing on the Snowflake Marketplace can set up a timed trial to allow consumers to explore the entire data product in a listing for a limited period of time, or combine a limited functionality trial with a timed trial and offer access to a subset of data for a limited time.

For more information, refer to Configuring Listings Capabilities.

Data Governance Updates¶

Object Tagging: Support Added for Policy Objects¶

With this release, Snowflake is pleased to announce newly supported objects that can be tagged:

You can set a tag or unset tag using the corresponding ALTER policy_kind POLICY statement.

For more information, refer to ALTER <policy_kind> POLICY Command: Support for Setting and Unsetting Tags.

Web Interface Updates¶

Secondary Roles Support in Snowsight — General Availability¶

With this release, we are pleased to announce the general availability of using secondary roles to access functionality in Snowsight.

If you set the DEFAULT_SECONDARY_ROLES user property to ALL, secondary roles are activated when the user signs in to Snowflake.

When secondary roles are active, you do not need to switch roles or manually activate secondary roles to access pages in Snowsight that your primary role, or a role in its hierarchy, cannot access. You can use your primary role to perform actions such as using worksheets with a specific role, but still easily access other pages in Snowsight.

For more information, refer to Active roles and CREATE USER.

Upload Files onto Stages Using Snowsight — Preview¶

With this release, we are pleased to announce the preview of loading files into stages using Snowsight.

With Snowsight, you can upload files onto named internal stages so that you can, for example, prepare to load data from the files into tables or load dependencies for Python worksheets.

For more information, refer to Staging files using Snowsight.

Load Data into Tables using Snowsight — Preview¶

With this release, we are pleased to announce the preview of loading data into tables using Snowsight.

Load structured data files such as CSV or TSV-formatted files, or semi-structured data files such as JSON, Avro, or XML-formatted files into tables using Snowsight.

You can load a file from your local machine into a table using Snowsight. You can specify an existing file format that you created with the CREATE FILE FORMAT command, or you can define a temporary file format when you load the file.

For more information, refer to Loading data using the web interface.

Snowsight Worksheet Tabs — Preview¶

With this release, we are pleased to announce the preview of tabs for opening worksheets in Snowsight.

Opening Snowsight worksheets in tabs lets you mimic the experience in Classic Console. You can use tabs to refer to multiple active worksheets and explore the databases and schemas in Snowflake while writing SQL or Python.

For more information, refer to Opening worksheets in tabs.