January 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

Java UDFs on AWS — General Availability

With this release, Snowflake is pleased to announce the general availability of support for Java UDFs (user-defined functions) on AWS.

Users can write custom functions in the Java programming language and call those as though they were built-in functions. Users can provide Java source code inline or bring their JAR files, including libraries.

For more information, see Introduction to Java UDFs.

Snowpark on AWS — General Availability

With this release, we are pleased to announce the general availability of Snowpark on AWS.

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.

Snowpark has several features that distinguish it from other client libraries:

  • The Snowpark API provides programming language constructs for building SQL statements.

    For example, the API provides a select method that you can use to specify the column names to return, rather than writing ‘select column_name’ as a string.

    Although you can still use a string to specify the SQL statement to execute, you benefit from features like intelligent code completion and type checking when you use the native language constructs provided by Snowpark.

  • Snowpark operations are executed lazily on the server, which reduces the amount of data transferred between your client and the Snowflake database.

    The core abstraction in Snowpark is the DataFrame, which represents a set of data and provides methods to operate on that data. In your client code, you construct a DataFrame object and set it up to retrieve the data that you want to use (for example, the columns containing the data, the filter to apply to rows, etc.).

    The data isn’t retrieved at the time when you construct the DataFrame object. Instead, when you are ready to retrieve the data, you can perform an action that evaluates the DataFrame objects and sends the corresponding SQL statements to the Snowflake database for execution.

  • You can create user-defined functions (UDFs) in your code, and Snowpark can push your code to the server, where the code can operate on the data.

    You can write functions in the same language that you use to write your client code (for example, by using anonymous functions in Scala). To use these functions to process data in the Snowflake database, you define and call user-defined functions (UDFs) in your custom code.

    Snowpark automatically pushes the custom code for UDFs to the Snowflake database. When you call the UDF in your client code, your custom code is executed on the server (where the data is). You don’t need to transfer the data to your client in order to execute the function on the data.

Snowpark is available for the Scala programming language.

For more information, see Snowpark API.

Unstructured Data Support — General Availability

With this release, we are pleased to announce the general availability of support for unstructured data in Snowflake. This feature enables users to access, load, govern, and share unstructured files of data types for which Snowflake has no native support, including some industry-specific types. Support for unstructured files adds to the existing robust support for structured and semi-structured data.

Support for unstructured data files is provided through the following functionality:

Snowflake Scripting — Preview

With this release, we are pleased to announce a preview of Snowflake Scripting.

Snowflake Scripting is an extension to Snowflake SQL that adds support for procedural logic. You can use Snowflake Scripting to write stored procedures in SQL.

For more information, see the Snowflake Scripting Developer Guide.

Data Loading Updates

Snowpipe: Error Notifications for Snowflake Accounts on Amazon Web Services — Preview

With this release, we are pleased to announce a preview of error notifications for Snowpipe. When Snowpipe encounters errors while loading data from a staged file, this feature triggers a notification that describes the errors using cloud messaging, enabling further analysis of the data in the file.

Note

Currently, this feature is limited to Snowflake accounts hosted on Amazon Web Services (AWS). Pipe objects in an account can load data from files in any supported cloud storage service; however, Snowpipe can only push error notifications to Amazon Simple Notification Service.

Support for Snowflake accounts hosted on Google Cloud or Microsoft Azure and respective cloud messaging services is planned.

This feature supports calls to the Snowpipe REST API as well as automated (auto-ingest) Snowpipe using a cloud messaging service.

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

Data Governance Updates

Masking Policy with Conditional Columns — General Availability

With this release, Snowflake is pleased to announce the general availability of conditional columns (i.e. arguments) as an optional configuration to the masking policy signature. When using conditional columns in the masking policy signature, the first column and its data type always specifies the column on which the masking policy expression operates (i.e. mask or unmask the data).

These additional columns can be included in the masking policy expression to determine whether the data in the first column should be masked or unmasked. Using conditional columns in a masking policy signature allows masking policy administrators more freedom when creating policy conditions to mask or unmask data.

For more information, see Understanding Column-level Security.

Web Interface Updates

New Web Interface: Copy History Dashboard — Preview

With this release, Snowflake introduces the Copies Over Time dashboard, which shows a 365-day view of the copy history for bulk data loads (i.e. using the COPY INTO <table> command) and Snowpipe. To view the copy history for all tables in your account, in the left navigation bar, click Compute » History » Copies.

You can also view the Copies Over Time page for a table. To view the dashboard, explore your database objects and select a table. On the table details page, click Copy History.

Note that the new web interface is currently in preview.