March 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

Snowpipe Streaming — Preview

With this release, Snowflake is pleased to announce a preview of Snowpipe Streaming, the latest addition to Snowflake ingestion offerings. The Snowpipe Streaming API writes rows of data directly to Snowflake tables without the requirement of staging files. This architecture results in lower load latencies with corresponding lower costs for loading any volume of data, which makes it a powerful tool for handling near real-time data streams.

For more information, refer to Snowpipe Streaming. Snowpipe Streaming is also now available for the Snowflake Connector for Kafka, which offers an easy upgrade path to take advantage of the lower latency and lower cost loads.

Tabular Return Values from Java or Scala Stored Procedures — Preview

With this release, Snowflake is pleased to announce a preview of tabular stored procedures with a handler written in Java or Scala. 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 Writing Stored Procedures in Java or Writing Stored Procedures in Scala.

New Regions

We are pleased to announce the availability of the following new region(s):

Cloud Platform

Region

Amazon Web Services (AWS)

Asia Pacific (Jakarta)

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

You can provision initial accounts in the region through self-service or a Snowflake representative.

SQL Updates

SHOW SHARES Command: Support for STARTS WITH and LIMIT … FROM

The SHOW SHARES command now supports the STARTS WITH and LIMIT ... FROM parameters so that you can filter the shares returned by the command.

Refer to SHOW SHARES for details and examples.

Geospatial Functions for Shape Transformation and Orientation — Preview

With this release, we are pleased to announce the preview of the following geospatial functions for shape transformation and orientation:

Function

Description

ST_BUFFER (for GEOMETRY objects)

Returns a GEOMETRY object that represents a MultiPolygon containing the points within a specified distance of the input GEOMETRY object. The returned object effectively represents a “buffer” around the input object.

ST_SIMPLIFY (for GEOMETRY objects)

Given an input GEOMETRY object that represents a line or polygon, returns a simpler approximation of the object. The function identifies and removes selected vertices, resulting in a similar object that has fewer vertices.

ST_AZIMUTH (for GEOMETRY objects)

Given two Points that are GEOMETRY objects, returns the azimuth (in radians) of the line segment formed by the two points.

ST_MAKEPOLYGONORIENTED (for GEOGRAPHY objects)

Constructs a GEOGRAPHY object that represents a polygon without holes. The function uses the specified LineString as the outer loop. This function does not attempt to correct the orientation of the loop, allowing for the creation of polygons that span more than half of the globe. This function differs from ST_MAKEPOLYGON, which inverts the orientation of those large shapes.

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

Support for Specifying How to Handle Invalid Geospatial Shapes — Preview

With this release, we are pleased to announce the preview of support for handling invalid geospatial shapes.

By default, when you use a geospatial conversion function to convert data in a supported input format to a GEOGRAPHY or GEOMETRY object, the function attempts to validate the shape and repair the shape if the shape is invalid. If the shape cannot be repaired, the function does not create a GEOGRAPHY or GEOMETRY object.

With this preview feature, you have more control over the validation and repair process. You can:

  • Allow these conversion functions to create GEOGRAPHY and GEOMETRY objects for invalid shapes.

  • Determine if the shape for a GEOGRAPHY or GEOMETRY object is invalid.

For details, refer to Specifying how invalid geospatial shapes are handled.

Data Pipeline Updates

Streams on Views — General Availability

With this release, we are pleased to announce the general availability of streams on views. Streams on views extends table streams to track change data capture (CDC) records for views, including secure views.

Currently, streams are limited to views that satisfy the following requirements:

  • All of the underlying tables must be native tables.

  • The view may only apply the following operations:

    • Projections

    • Filters

    • Inner or cross joins

    • UNION ALL

  • Materialized views are not supported.

For more information about the streams on views requirements, refer to Introduction to Streams.

Data Lake Updates

External Table and Directory Table Auto-Refresh Observability and Billing

With this release, Snowflake will start billing for auto-refresh notifications in external tables and directory tables on external stages at a rate equivalent to the Snowpipe file charge. You can estimate charges incurred by your external table and directory table auto-refresh notifications by examining the Account Usage PIPE_USAGE_HISTORY view. Note that the auto-refresh pipes will be listed under a NULL pipe name. You can also view your external table auto-refresh notification history at the table-level/stage-level granularity by using the Information Schema table function AUTO_REFRESH_REGISTRATION_HISTORY.

To avoid charges for auto-refresh notifications, perform a manual refresh for external tables and directory tables. For external tables, the ALTER EXTERNAL TABLE <name> REFRESH … statement can be used to manually synchronize your external table to external storage. For directory tables, the ALTER STAGE <name> REFRESH … statement can be used to manually synchronize the directory to external storage.

Data Governance Updates

Allow Masked Columns as Inputs to Row Access Policies and Conditional Masking Policies

With this release, Snowflake is pleased to announce that the signature of a row access policy and a conditional masking policy can specify a column protected by a masking policy. Specifying a masked column in the policy signature provides more freedom to policy administrators to create new policies or replace existing policies.

To enable this functionality, set the EXEMPT_OTHER_POLICIES property to TRUE when creating a new masking policy or replacing an existing masking policy. Note that this property cannot be set on an existing policy; the existing policy must be replaced to include this property. After creating or replacing the masking policy, the policy can be set on a column and the protected column can be referenced in the signature of a row access policy or a conditional masking policy.

For details, refer to CREATE MASKING POLICY.

Replication Updates

Account Replication: Notification Integration Support — Preview

With this release, account replication now includes preview support for the replication of notification integration objects of the following types:

  • TYPE = EMAIL

  • TYPE = QUEUE with DIRECTION = OUTBOUND

For more information, refer to Integration replication.

Web Interface

Python Worksheets — Preview

With this release, we are pleased to announce the preview of Python worksheets in Snowsight. Python worksheets let you write and run Snowpark Python in a worksheet in Snowsight.

In a Python worksheet, you can do the following:

  • Write a Python script to read data from a stage, transform it, and save it to a table, all without leaving Snowsight.

  • Use included packages from Anaconda or import packages from a stage to write code more easily.

  • Automate your Python code by deploying it as a stored procedure and scheduling it as a task.

For more information, refer to Writing Snowpark Code in Python Worksheets.

Individual Task Observability — General Availability

With this release, we are pleased to announce the general availability of individual task observability. Tasks are now visible in a graph view to highlight dependencies and order of execution. With observability for individual task runs, you can perform monitoring tasks such as identifying long-running tasks, consistently skipped tasks, and databases with a high volume of tasks.

For more information, refer to Viewing tasks and task graphs in Snowsight.