DEV Community

augusto kiniama rosa
augusto kiniama rosa

Posted on • Originally published at blog.archetypeconsulting.com on

The Unofficial Snowflake Monthly Release Notes: April 2025

Monthly Snowflake Unofficial Release Notes #New features #Previews #Clients #Behavior Changes

Welcome to the fantastic Unofficial Release Notes for Snowflake for April 2025! You’ll find all the latest features, drivers, and more in one convenient place.

As an unofficial source, I am excited to share my insights and thoughts. Let’s dive in! You can also find all of Snowflake’s releases here.

This month, we provide coverage up to release 9.12 (General Availability — GA). I hope to extend this eventually to private preview notices as well.

I would appreciate your suggestions on continuing to combine these monthly release notes. Feel free to comment below or chat with me on LinkedIn.

Behavior change bundles 2024_08 are active by default, 2025_01 is enabled by default but can be disabled, and 2025_02 can be enabled. See 2025_01 changes session when I discuss the effects of it. FYI, Snowflake NO longer supports Python 3.8

What’s New in Snowflake

New Features

  • Artifact Repository for python, allows you to directly use Python packages from the Python Package Index (PyPI) within Snowpark Python user-defined functions (UDFs) and stored procedures
  • FILE data type to create tables for multimodal analysis (Preview), a new unstructured data type that makes it easy to create tables as inputs to unstructured data analytics, and lets you create references to files stored in internal or external stages, which you can then store in tables for multimodal analytics using Cortex AI functions like COMPLETE
  • Search optimization improves the performance of queries containing scalar functions, a scalar function returns one value per invocation, and the optimization service can enhance query performance using scalar functions in equality predicates
  • Snowflake Egress Cost Optimizer (GA), egress Cost Optimizer minimizes egress costs when sharing data or apps to multiple regions, helping providers on Snowflake (of both public and private listings) reduce costs of sharing, cost of service, and as a result maximize their return on investment (ROI)
  • Semantic views(Preview), you can store semantic models (for use by Cortex Analyst) as Snowflake objects in a database schema
  • Organizational listings: discovery and access, listing creators can now configure both the access and discovery of organizational listings, with listing creators can now define how various accounts and roles in their organization can discover and access the organizational listings
  • Support for public custom Git repository URLs (GA), specify a custom URL to a public corporate Git server within your own domain

Snowsight Updates

  • Snowsight replication configuration and monitoring (GA), configuring and monitoring replication

AI Updates (Cortex, ML, DocumentAI)

  • AI Observability in Snowflake Cortex (Preview), Make applications trustworthy and transparent. Measure AI performance through systematic evaluations. Use evaluation data to refine application configurations and optimize performance. Log application traces for debugging
  • Cortex COMPLETE Structured Outputs (GA), support for structured outputs in the Snowflake Cortex COMPLETE function, where completion results conform to a user-specified JSON schema
  • PROMPT helper function (Preview), a new helper function designed to streamline the creation and use of template strings for Snowflake AI functions, such as Cortex COMPLETE
  • Snowflake Cortex AI COMPLETE multimodal support(Preview), enabling the processing and analysis of images alongside text using powerful vision AI models, all through simple SQL which allows image processing from Snowflake or external stages without complex integrations or external APIs
  • Mistral AI’s multimodal Pixtral Large (GA), available via Cortex AI COMPLETE, which combines advanced vision capabilities with language understanding
  • EMBED Function Added to Cortex REST API (GA), use it to create embeddings for text using the /api/v2/cortex/inference:embed endpoint
  • Snowflake Cortex AI state-of-the-art Entity Sentiment (Preview), a powerful new task-specific function that provides high-quality overall and granular aspect-based sentiment analysis
  • Document AI multi-language support, with the new version of the foundational Arctic-TILT model in Document AI improves: multiple languages support, Language-specific diacritics, and Overall model quality
  • Snowflake ML Jobs (Preview), a new capability that allows you to run machine learning (ML) workflows from your local environment
  • Boost Cortex Search results based on metadata signals (GA), boost results based on metadata fields, such as the number of likes or comments on a document or its recency based on a timestamp
  • Disable reranker in Cortex Search queries (GA), disable reranking in any Cortex Search query as a way to improve search performance without penalty if you’ve found that reranking does not improve search quality for your use case

Snowflake Applications (Container Services, Notebooks and Applications)

  • Configuring automatic suspension of a Snowpark Container Services service (Preview), the ability to suspend containers
  • Container Runtime for ML on multi-node clusters (Preview), a new capability that allows you to scale your ML workloads across multiple compute nodes in Snowflake Notebooks
  • Snowflake Native Apps session debugging (GA), allows providers to view and modify all of the objects within the app and execute statements using the same privileges that the app has when installed in the consumer account
  • Release channels for Snowflake Native Apps (GA), release channels allow providers to publish apps at different stages of the app development lifecycle

Data Lake Updates

  • Row-level deletes for externally managed Apache Iceberg™ tables (Preview), ability to delete rows
  • Apache Iceberg™ tables: Automated refresh table names now appear in the ACCOUNT_USAGE.PIPE_USAGE_HISTORY view, see the table name in the ACCOUNT_USAGE.PIPE_USAGE_HISTORY view for Iceberg tables that use automated refresh, which helps you estimate charges incurred when you use automated refresh

Data Pipelines/Data Loading/Unloading Updates

  • Automated refresh for internal named stages (Preview), automatically refresh the metadata for a directory table on an internal named stage on AWS accounts
  • Writing files from Snowpark Python UDFs and UDTFs (GA)
  • Support for internal stage cloning(GA), support for internal stage cloning when you clone a database or schema

Security, Privacy &Governance Updates

  • Trust Center email notifications (Preview), configure the Trust Center to send email notifications when it finds violations, with choices for severity and scanners
  • Role-Based Access Control for Cortex LLM Models, a new feature that provides fine-grained access control for managing model access in Snowflake Cortex
  • Synthetic data generation (GA), generate synthetic data with characteristics of the source data that can be used for testing or public release without risking exposure of the source data
  • New authentication methods for multi-factor authentication (MFA) (GA), users enrolled in multi-factor authentication (MFA) can use a passkey as their method for MFA
  • Sensitive data classification: New classifiers for India, support the protection of sensitive data in India: NATIONAL_IDENTIFIER (Permanent account number (PAN), Aadhaar, and Voter ID), DRIVERS_LICENSE, and TAX_IDENTIFIER (Goods and Service Tax Identification Number (GSTIN))

Streamlit Updates

  • Google Cloud Private Service Connect in Streamlit in Snowflake (Preview)
  • Support for st.query_params (GA), provides a dictionary-like interface to access query parameters in your app’s URL
  • Support for Streamlit 1.42.0 (GA)

SQL, Extensibility & Performance Updates

  • New Snowflake parameter: DEFAULT_NULL_ORDERING, controls the default ordering of NULL values in a result set, and when this parameter is set to FIRST, NULL values are lower than any non-NULL values
  • Support for allowing requests to all outbound endpoints from functions and procedures (GA), support for allowing requests to all outbound endpoints with external access from a function or procedure
  • New maximum size limits for database objects (GA), new maximum allowed length for columns of type VARCHAR, VARIANT, ARRAY, and OBJECT is 128 MB, and the new maximum allowed length for columns of type BINARY, GEOGRAPHY, and GEOMETRY is 64 MB
  • Improved error messages for Data Manipulation Language (DML) commands, error messages for DML commands didn’t include the column name for errors that involved a specific column and some error messages for DML commands include the column name
  • New SQL Functions: DATASKETCHES_HLL (returns an approximation of the distinct cardinality of the input, DATASKETCHES_HLL_ACCUMULATE (returns the sketch at the end of aggregation), DATASKETCHES_HLL_COMBINE (combines (merges) input sketches into a single output sketch, DATASKETCHES_HLL_ESTIMATE (returns the cardinality estimate for the given sketch)
  • Built-in code profiler for Python stored procedures (GA), discover how much time or memory was spent executing your handler code and it generates information describing how much time or memory was spent executing each line of the procedure handler
  • Expands coverage of the Query Acceleration Service (QAS) to more queries, improves the heuristics that QAS uses to determine whether or not a query will benefit from acceleration, which makes more queries are eligible for acceleration by QAS

Data Clean Rooms Updates

  • Column policies are optional for provider-run analysis, applies only to clean rooms API users.
  • Google Ads activation connector, requires customers to check two check boxes affirming that the DCR collaborator activating the analysis output with Google Ads have obtained data subject consents for advertising purposes and for ad personalization
  • Additional procedures supported by grant_run_on_cleanrooms_to_role, supported by roles granted clean room privileges using consumer.grant_run_on_cleanrooms_to_role
  • Clean rooms now support Snowpark Container Services, run a Snowpark container within a clean room for large jobs in custom Snowpark environments
  • Segmentation and attribute columns are now optional in the Audience Overlap template, segmentation and attribute columns in the Audience Overlap template are no longer a required feature
  • Consumer template requests for cross-cloud auto-fulfillment, collaborators in different regions can now use consumer-defined templates
  • Provider-run warehouse selection using the clean rooms API, specify the warehouse size used in a provider-run analysis using the clean rooms API

Open-Source Updates

  • terraform-snowflake-provider 2.0.0 (major milestone representing the provider’s General Availability. Users must consult the migration guide when upgrading from v1.2.1. Key changes include making the TOML format and file permission verification the default behaviors. It also includes a fix for CSV_TIMESTAMP_FORMAT and various documentation improvements)
  • terraform-snowflake-provider 1.2.1 (essentially a patch release for v1.2.0, issued on the same day. While it doesn’t list specific new features or bug fixes in these notes, the strong recommendation to prioritize it over v1.2.0 indicates it likely addresses critical issues found in the v1.2.0 release)
  • terraform-snowflake-provider 1.2.0 (introduces features like TOML configuration support and Streamlit future grants, it comes with a strong recommendation to use v1.2.1 instead. Key changes include the new features, a fix for computed field references in show_output, and internal improvements focused on safer operations and testing. Users must consult the migration guide when upgrading from v1.1.0)
  • terraform-snowflake-provider 1.1.0 (focuses heavily on the mandatory namespace migration , adds resource timeouts, fixes a grant privilege warning, and includes numerous backend improvements to documentation, testing, and repository management)
  • Snowflake VS Code Extension 1.13.0 (introduces the SnowConvert Migration Assistant in Public Preview , which uses Snowflake Cortex AI to help resolve code migration issues via a new dedicated panel and interactive view. This release also fixes a bug where the checkpoints feature failed to insert a required import statement)
  • Snowflake VS Code Extension 1.13.1 (bug fix release focused on the Snowpark Checkpoints feature. It corrects issues related to code indentation, import statements, the clearing of all checkpoints, and recognizing names containing dollar signs ($))
  • Streamlit 1.45.0 (enhances context information, adds icon support to inputs, makes select boxes more dynamic, refines layout/theming, and fixes a wide array of bugs. Users should note the breaking change to Markdown anchors, the stabilization of st.user, and the removal of st.experimental_audio_input.)

Client, Drivers, Libraries and Connectors Updates

New features:

  • .NET Driver 4.4.0 (Added an SSO token cache for external browser authentication and the client_store_temporary_credential parameter to indicate whether to use the SSO cache)
  • Go Snowflake Driver 1.13.3 (Implemented support for OAuth2 authorization code and client credential flows (PrPr))
  • Ingest Java SDK 4.0.0 (BCR, Updated dependencies and imports for Snowflake JDBC thin JAR, removed unnecessary dependencies, enhanced Channel Invalidation Handling - The channel object now automatically invalidates itself upon receiving a response from the server indicating an invalid channel state, this improvement enhances error handling and resource management within the SDK)
  • Node.js 2.0.4 (Implemented support for Programmatic Access Tokens authentication(PrPr), upgraded axios to version 1.8.2+)
  • ODBC 3.7.0 (added support for PAT (Programmatic Access Token), OAuth 2.0 Authorization Code Flow, OAuth 2.0 Client Credentials Flow, and OAuth Token caching (PrPr), updated the curl library (libcurl) from version 8.10.1 to 8.12.1)
  • Snowflake CLI 3.6.0 (Added support for the !source command in SQL queries to allow executing SQL from local files)
  • Snowflake CLI 3.7.0 (Added the --prune option to the snow notebook deploy, snow snowpark deploy, and snow streamlit deploy commands that removes files that exist in the stage, but not in the local filesystem, added the snow logs command for retrieving and streaming logs from the server, added the snow helper check-snowsql-env-vars that reports environment variables from SnowSQL with their Snowflake CLI replacements)
  • Snowflake Connector for Python 3.15.0 (Added support for Workflow Identity Federation in the AWS, Azure, GCP and Kubernetes platforms (PrPr), Added new authentication methods support for OAuth 2.0 Authorization Code Flow, OAuth 2.0 Client Credentials Flow, and OAuth Token caching, )
  • Snowflake Connector for Python 3.14.1 (Added the client_fetch_threads experimental parameter to better utilize threads for fetching query results, added new experimental authentication methods: OAuth authorization code and client credentials flows, Workflow Identity Federation for AWS, Azure, GCP and Kubernetes platforms, Added support for Python 3.13, Dropped support for Python 3.8, added support for the basic decimal floating-point type, added support for providing a PAT in the password field, added support for GCS regional endpoints, added support for GCS virtual URLs. For more information, see Request endpoints, added support to allow the connector to inherit a UUID4 generated upstream, provided in statement parameters (field: requestId), rather than automatically generate a UUID4 to use for the HTTP Request ID, improved logging in the urllib3, boto3, and botocore libraries to assure data masking even after a future migration to the external owned library, lowered log levels from info to debug for some of the messages to make the output easier to follow, improved security and robustness for the temporary credentials cache storage, deprecated the insecure_mode connection property and replaced it with disable_ocsp_checks with the same behavior as the former property)
  • Snowflake Python APIs 1.4.0 (Implemented the __repr__ method for all collection, resource, and model classes)
  • Snowflake Python APIs 1.3.0 (Added the snowflake.core.FQN class, which represents an object identifier)
  • Snowpark Library for Python 1.31.0 (Added support for the restricted caller permission of execute_as argument in StoredProcedure.register():code:, Added support for non-select statements in DataFrame.to_pandas(), added support for the artifact_repository parameter to Session.add_packages, Session.add_requirements, Session.get_packages, Session.remove_package, and Session.clear_packages,Added support for reading an XML file using a row tag by session.read.option('rowTag', ).xml() (experimental). - Each XML record is extracted as a separate row. - Each field within that record becomes a separate column of type VARIANT, which can be further queried using the dot notation, such as col(a.b.c), added updates to DataFrameReader.dbapi (PrPr): - Added the fetch_merge_count parameter for optimizing performance by merging multiple fetched data into a single Parquet file. - Added support for Databricks. - Added support for ingestion with Snowflake UDTF, added support for the following AI-powered functions in functions.py (Private Preview): - prompt - ai_filter (added support for prompt() function and image files, and changed the second argument name from expr to file) - ai_classify,Improvements: Renamed the relaxed_ordering param into enforce_ordering for DataFrame.to_snowpark_pandas. Also the new default values is enforce_ordering=False which has the opposite effect of the previous default value, relaxed_ordering=False,Improved DataFrameReader.dbapi (PrPr) reading performance by setting the default fetch_size parameter value to 1000, improve the error message for invalid identifier SQL error by suggesting the potentially matching identifiers, Reduced the number of describe queries issued when creating a DataFrame from a Snowflake table using session.table,Improved performance and accuracy of DataFrameAnalyticsFunctions.time_series_agg(), Pandas API: Updated modin from 0.30.1 to 0.32.0, added support for numpy 2.0 and above, New features: added support for DataFrame.create_or_replace_view and Series.create_or_replace_view, added support for DataFrame.create_or_replace_dynamic_table and Series.create_or_replace_dynamic_table, added support for DataFrame.to_view and Series.to_view, added support for DataFrame.to_dynamic_table and Series.to_dynamic_table, added support for DataFrame.groupby.resample for aggregations max, mean, median, min, and sum, added support for reading stage files using: — pd.read_excel — pd.read_html — pd.read_pickle — pd.read_sas — pd.read_xml, added support for DataFrame.to_iceberg and Series.to_iceberg, added support for dict values in Series.str.len, Improvements: Improve the performance of DataFrame.groupby.apply and Series.groupby.apply by avoiding expensive pivot step, added an estimate for the row count upper bound to OrderedDataFrame to enable better engine switching. This could potentially result in increased query counts, renamed the relaxed_ordering parameter in enforce_ordering with pd.read_snowflake. Also the new default value is enforce_ordering=False which has the opposite effect of the previous default value, relaxed_ordering=False)
  • Snowflake Connector for ServiceNow® V2 5.21.0 (support for continuous schedules and use this feature to set an ingestion schedule for up to 20 tables that will be executed every one minute, maximum number of tables that can be ingested concurrently has been increased from 30 to 50. This update allows for better warehouse utilization and improves overall performance)

Bug fixes:

  • .NET Driver 4.4.1 (Fixed a Time-of-check Time-of-use (TOCTOU) race condition when checking access to Easy Logging configuration file, issue with cancelling connecting with CancellationTokenSource.CancelAsync() that did not decrease the pool usage counter)
  • .NET Driver 4.4.0 (Fixed case insensitivity for authenticators. Before the fix, the logic for username_password_mfa and oauth was not properly applied if authenticators used uppercase characters, fixed an issue with passing null into a query parameter, fixed an issue with reading tokens from the Windows Credential Manager, which was used for username_password_mfa authenticator. In some cases the value read from the credential manager could be too long, made some small changes to credential manager implementations, such as changing some log levels and issuing a warning for too permissive cache directory permissions on Unix instead of changing the permissions automatically, fixed the binding of AnsiString parameters to the TEXT type, fixed loading structured or semi-structured data to a DataTable)
  • Go Snowflake Driver 1.13.3 (fixed an issue with re-encrypting files for each request retry, fixed Time-of-check Time-of-use (TOCTOU) race condition when checking access to Easy Logging configuration file)
  • JDBC Driver 3.23.2 (fixed a null pointer exception that occurred when the cache folder is inaccessible)
  • Node.js 2.0.4 (Fixed a Time-of-check Time-of-use (TOCTOU) race condition when checking access to the Easy Logging configuration file, fixed OCSP response cache entries not being refreshed properly)
  • ODBC 3.7.0 (enabled the Address Space Layout Randomization (ASLR) security compiler option for Windows, fixed an issue with certain code paths logging the entire SQL query text using the INFO level)
  • Snowflake CLI 3.6.0 (Fixed an issue with incompatible options in snow spcs compute-pool commands that didn’t raise error, changed binary builds to embed the whole Python environment, fixed recursive copying to a stage for unbalanced directory trees, fixed checking for a new Snowflake CLI version, added file execution logs in snow stage and snow git commands)
  • Snowflake CLI 3.7.0 (Updated the MacOS post-install script to update the PATH environment variable, if needed, to ensure the snow command is available)
  • Snowflake CLI 3.7.1 (Fixed certificate connection issues, fixed a snow spcs image-registry login slow query problem)
  • Snowflake Connector for Python 3.15.0 (Increased the minimum required boto and botocore versions to 1.24, fixed an issue with OSCP by terminating a certificate’s chain traversal if a trusted certificate was already reached)
  • Snowflake Connector for Python 3.14.1 (Improved the error message for client-side query cancellations due to timeouts, fixed a bug that caused the driver to fail silently on TO_DATE arrow to python conversion when an invalid date was followed by the correct one, added the check_arrow_conversion_error_on_every_column connection property that can be set to False to restore previous behavior in which driver ignores errors until they occurs in the last column. This option lest you unblock workflows that might be impacted by the bug fix and will be removed in later releases, fixed an issue with expired S3 credentials update and increment retry when expired credentials are found)
  • Snowflake Python APIs 1.4.0 (Changed the _SNOWFLAKE_PRINT_VERBOSE_STACK_TRACE environment variable to be enabled by default, which causes printed error messages to display the full stack trace)
  • Snowpark Library for Python 1.31.0 ()
  • Snowflake Connector for ServiceNow® V2 5.22.0 (Fixed an issue that could cause an HTTP response parsing failure. In some cases, this issue could cause the connector to fail to ingest data from ServiceNow)
  • Snowflake Connector for ServiceNow® V2 5.21.0 (The connector is more stable and more performant when ingesting multiple tables in parallel)
  • Snowflake Connector for ServiceNow® V2 5.20.0 (Fixed a bug that caused the export of the connector state to fail)
  • Snowflake Connector for MySQL 6.4.0 ()
  • Snowflake Connector for PostgreSQL 6.5.0 ()

Conclusion

April 2025 …

Enjoy the reading.

I am Augusto Rosa, a Snowflake Data Superhero and Snowflake SME. I am also the Head of Data, Cloud, & Security Architecture at Archetype Consulting. You can follow me on LinkedIn.

Subscribe to my Medium blog https://blog.augustorosa.com for the most interesting Data Engineering and Snowflake news.

Sources:


Top comments (0)