DEV Community

augusto kiniama rosa
augusto kiniama rosa

Posted on • Originally published at augustokrosa.Medium on

The Unofficial Snowflake Monthly Release Notes: October 2024

Monthly All-in-One Place for Snowflake Unofficial Release Notes #New features #NewPreviews #Behavior Changes!!!

Welcome to the fantastic Unofficial Release Notes for Snowflake for MONTH 2024! 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 8.41 (General Availability—GA). I hope to eventually extend this 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_06 are active by default, 2024_07 is enabled by default but can be disabled, and 2024_08 is available to be enabled.

What’s New in Snowflake

New Features

  • Hybrid tables (GA), simplify application development by supporting the execution of both transactional and analytics use cases within a single database in commercial AWS regions
  • Organization accounts (Preview), are a new type of account that organization administrators use to perform their tasks; although nothing will change initially, eventually, all organizational admin will happen through this account
  • Notebooks on Container Runtime (Preview), run Snowflake Notebooks on Snowpark Container Services through Container Runtime. Container Runtime provides software and hardware options to support advanced data science and machine learning workloads on Snowpark Container Services
  • Differential Privacy(GA), a widely recognized standard for data privacy that limits the risk that someone could leak sensitive information from a sensitive dataset, even if they are carrying out a targeted privacy attack, and data providers implement differential privacy by assigning privacy policies to their sensitive tables and views
  • Query objects larger than 16 MB in files on a stage, query objects up to 128 MB in files on a stage, but remember you still can’t store objects larger than 16 MB in a column, you can reduce their size before storing them in columns
  • Estimate the cost of Automatic Clustering(GA), the system function, SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS, which estimates the cost of enabling Automatic Clustering for a table and maintaining the table in a well-clustered state, while also estimating the cost of changing the clustering key for a clustered table
  • Outbound private connectivity for Snowflake features, create private endpoints in Snowflake to access the cloud platform using the platform’s private connectivity solution rather than the Internet. This lets you access cloud platform services privately and securely from Snowflake
  • External network access from Snowpark using AWS PrivateLink and Azure Private Link (GA), configure external network access and create a private endpoint to use private connectivity to connect to an external network location from a UDF/UDTF or stored procedure within Snowpark. Snowflake accounts on AWS can use AWS PrivateLink to access the external network location, and Snowflake accounts on Azure can use Azure Private Link
  • External network access from Snowpark Container Services via AWS PrivateLink and Azure Private Link (Preview), you configure external network access and create a private endpoint so outgoing network traffic from Snowpark Container Services uses AWS PrivateLink or Azure Private Link instead of the public Internet
  • External functions using Azure Private Link(GA), configure an external function and create a private endpoint to use Azure Private Link when calling executable code that is developed, maintained, stored, and executed in Azure
  • EXECUTE IMMEDIATE FROM: Preview SQL rendered from Jinja2 templates, aka, you can execute dbt models

Snowflake Applications (including streamlit)

  • Event sharing for Snowflake Native Apps(GA), updated event sharing functionality for the Snowflake Native App Framework, and the update allows providers and consumers more granular control over the log messages and trace events that are shared with providers
  • Native App support for AWS PrivateLink(Preview), support for AWS PrivateLink in the Snowflake Native App Framework
  • Cortex Analyst fully supported in Streamlit in Snowflake
  • AWS PrivateLink in Streamlit in Snowflake(Preview), AWS PrivateLink in Streamlit in Snowflake, and this means you can host Streamlit apps privately

Data Lake Updates

  • Apache Iceberg™ tables: Support for Snowflake Open Catalog(GA), support for integrating Apache Iceberg™ tables in Snowflake with Snowflake Open Catalog, which was previously named Polaris Catalog. Gives the following ability: syncing a Snowflake-managed table with Snowflake Open Catalog, Snowflake performs validation when you attempt to create the following objects: catalog integration and Iceberg table that you’re syncing to Open Catalog, validation checks whether the configuration for the catalog integration or table will successfully sync the Iceberg table to Open Catalog, and validation now checks whether the configuration for the table will successfully sync the Iceberg table to Open Catalog
  • Apache Iceberg™ tables: New SYSTEM$VERIFY_EXTERNAL_VOLUME function, validate the configuration of an external volume for Apache Iceberg™ tables
  • Apache Iceberg™ tables: Catalog integration for Iceberg REST(GA), REST catalog integrations for externally managed Iceberg tables, and it lets you connect Snowflake to Iceberg tables in a remote catalog that complies with the open source Apache Iceberg REST OpenAPI specification

SQL Updates

  • New function ARRAY_REVERSE(GA), returns an array with the elements of the input array in reverse order
  • New function Information Schema, Table Function SERVERLESS_ALERT_HISTORY(GA), used for querying the serverless alert usage history and includes the alert name and credits consumed by runs of each alert
  • Extended support for bind variables, use bind variables to replace literals in SQL statements, which allows applications to dynamically construct SQL statements based on user input. Commonly used with Snowflake drivers, Snowflake Scripting, and the SQL REST API
  • With this release, Snowflake extends support for bind variables so that you can use them for more use cases. The extended support includes the use of bind variables for stage names and other parameters in COPY INTO
    statements
  • Support for higher-order functions extended with the REDUCE function, use lambda expressions to reduce semi-structured and structured data, providing a concise, readable, and efficient way to perform data manipulation and advanced analysis
  • AI Updates (Cortex, ML, DocumentAI)

    • Document AI(GA), enables setting up intelligent document processing (IDP) workflows within Snowflake by extracting information from documents, such as invoices or contracts, and directly applying it to operational workflows. It is powered by Snowflake Arctic-TILT (Text Image Layout Transformer), a proprietary large language model (LLM)
    • Cortex Fine-tuning Sharing(Preview), share Cortex Fine-tuning models using Data Sharing
    • Cortex LLM Function — PARSE_DOCUMENT (Preview), Snowflake Cortex PARSE_DOCUMENT function for text and layout extraction from documents. The PARSE_DOCUMENT function gives you the ability to extract text or layout natively using SQL from documents stored in a Snowflake or an external stage with powerful Optical Character Recognition (OCR) capabilities with machine learning models to identify text content, information stored in tables, and the structural elements of PDF documents
    • Cortex Search(GA), a text search service that simplifies the development of high-quality search and large language model (LLM) chatbot applications. Cortex Search is a hybrid search service, leveraging vector and keyword search for optimal quality. You can use Cortex Search as the retrieval service in a RAG chatbot or as a standalone search engine
    • Cortex Analyst integration with Cortex Search — Preview
    • Cortex Analyst integration with Cortex Search(Preview), improve literal string searches to help Cortex Analyst generate more accurate SQL queries. This allow you to create a Cortex Search service to do a semantic search over the underlying database column to find any literal values needed for Cortex Analyst to use in the SQL query that answers the user’s question
    • Suggested Questions for Cortex Analyst(Preview), provides relevant suggestions for questions your users can ask while interacting with your Cortex Analyst-powered conversational app
    • CORTEX_SEARCH_SERVING_USAGE_HISTORY view(GA), ability to query the usage history for serving for Cortex Search, and allows you to track consumption associated with each Cortex Search service, aggregated on the hourly level
    • CORTEX_FINE_TUNING_USAGE_HISTORY view(GA), ability to query the usage history for using Cortex Fine-tuning, and track consumption associated with each fine-tuning job, aggregated on the hourly level
    • Cortex Analyst: New regions: AWS ap-southeast-2 (Sydney) and AWS eu-west-1 (Ireland)

    Data Clean Rooms Updates

    • Clean room overlap stats, statistics now include overlap statistics, which describe how many distinct identifiers within join columns belong to a certain group based on the attribute columns enabled by the template
    • Provider-initiated activation for third-party connectors, activate audiences to third-party activation endpoints (including Google Ads, Meta, Ads, LiveRamp, The Trade Desk, and Yahoo)
    • Security scans for custom templates, view the results of security scans that run automatically to help identify vulnerabilities in custom templates created using the developer APIs, and this helps identify parts of the custom template that might be susceptible to SQL injection attacks

    Data Pipelines/Data Loading/Unloading Updates

    • Dynamic tables: Changes to the output of the GET_DDL function, will return target_lag instead of lag for dynamic tables to match the CREATE DYNAMIC TABLE statement

    Security & Governance Updates

    • Trust Center: New Threat Intelligence scanner package, a new scanner package available in the Trust Center, and this package lets you discover risky users based on user type, authentication methods, authentication policies, and network policies used, including a risk severity for each risky user, to help you prioritize which users to address first
    • Data quality: The New SYSTEM$DATA_METRIC_SCAN function returns records that failed a data quality check, and you can use a single command to extract records that failed data quality checks
    • Increased limits for network policies on internal stages(GA), use network policies to restrict incoming network traffic to the internal stages of AWS accounts. For Business Critical or higher customers, this release increases the limits on how many network identifiers can be included in a network policy

    Extensibility updates

    • Writing files from Snowpark Python UDFs and UDTFs(Preview), writing files from Snowpark Python UDFs and UDTFs. This means, Snowpark Python, you can now write files to stages using user-defined functions (UDFs), vectorized UDFs, user-defined table functions (UDTFs), and vectorized UDTFs

    Open-Source Updates

    • terraform-snowflake-provider v0.97.0 (a number of updates that are meant to improve the user experience and usefulness. It adds new features that make the provider more useful and let users handle more Snowflake resources through Terraform. Performance tweaks and better compatibility with the latest versions of Terraform and Snowflake are some of the ways that current features could be made better. Bug changes are often made, fixing problems that were reported in earlier versions to make things more stable and reliable. Improved documentation giving users clearer instructions and up-to-date examples to make it easier to use the service effectively)
    • Streamlit 1.39.0 (New Features: Enhanced Widgets: Introduction of new or improved widgets to allow for more interactive and customizable user interfaces and Performance Optimization: Improvements in the app’s loading times and overall performance, making applications run more smoothly. Bug Fixes: Resolved Issues: Fixes for bugs reported in previous versions, enhancing stability and reliability. Compatibility Updates: Adjustments to ensure better compatibility with other libraries and Python versions. Documentation and Community Contributions: Updated Docs: Enhanced documentation for better guidance on using new features)
    • Snowflake VS Code Extension 1.10.2 (Bug Fixes: add a snowflake.setHttpAgentKeepAlive.enabled setting to investigate a subset of network errors, When set to false, this may solve issues caused by this Axios bug, Show MFA reminder after 20 seconds rather than 5, since it’s been confusing to see it too soon, and Unfortunately, we cannot currently detect that an account is set up with MFA so the reminder is shown to all users)
    • Snowflake VS Code Extension 1.10.3 (Bug Fixes: Sign In no longer grayed out if trying to log in via OAuth without a user)
    • Snowflake VS Code Extension 1.10.4 (Added a possible fix for SSO via SAML on web-based VS Code IDE)

    Client, Drivers, Libraries and Connectors Updates

    New features:

    • Go Snowflake Driver 1.12.0 (support for Golang 1.23, dropped support for Golang 1.20, support for configuring connections using connections.toml, bumped logrus to version 1.9.3, extended logging when querying with QueryArrowStream)
    • Go Snowflake Driver 1.11.2 (Changed GetFileToStream to an exported member of the SnowfalkeFileTranserOptions struct so GET operations can read files using streams to reduce memory usage.)
    • Ingest Java SDK 2.3.0 (fixed vulnerable dependencies, upgraded Hadoop to fix vulnerability issues, removed unnecessary dependencies to reduce JAR size)
    • JDBC Driver 3.19.1 (updated the protobuf-java dependency to version 3.25.5, added log message for canceled query reasons, updated bouncy castle dependencies, added troubleshooting guide link to the messages for SSL exceptions)
    • JDBC Driver 3.20.0 (support for ZSTD decompression, and bumped the commons IO dependency to version 2.17.0)
    • Snowflake Connector for Google Analytics Raw Data 1.8.0 ()
    • Node.js 1.14.0 (support for structured types, extended logs for the configuration layer)
    • PHP PDO Driver for Snowflake 3.0.3 (upgraded libsnowflakeclient to version 1.1.0, upgraded openssl to version 3.0.15, upgraded curl to version 8.10.1)
    • Snowflake CLI 3.0.0 (Behavior Change Release: dropped python below 3.10, added the following commands: snow spcs service execute-job to support creating and executing a job service in the current schema, snow app events to fetch logs and traces from local and customer Snowflake Native App installations, snow helpers v1-to-v2 to migrate snowflake.yml files from version 1.x to version 2; added support for the following: external access (API integrations and secrets) in Streamlit, <% … %> syntax in SQL templates, multiple Streamlit applications in a single snowflake.yml project definition file; updated the project definition file to version 2)
    • Snowflake CLI 2.8.2 (Migrated the snowflake-cli-labs PyPi repository to snowflake-cli)
    • Snowflake CLI 3.0.1 (Migrated the snowflake-cli-labs PyPi repository to snowflake-cli)
    • Snowflake CLI 3.1.0 (added the following commands: snow connection generate-jwt command to generate JWT token for Snowflake connections, snow spcs service list-containers to fetch information about containers in a service, snow spcs service list-instances to fetch information about instances in a service, snow spcs service list-roles to fetch information about roles in a service; added the — eai-name option to the snow spcs set command to support updating external access integrations for a service; updated the snow spcs image-repository list-images command to displays image tags and digests)
    • Snowflake Connector for Python 3.12.3 (Addressed issues raised by CVE-2024–49750, improved the error message for SSL-related issues to provide clearer resolution guidance, improved the error message for SQL execution cancellations caused by a timeout)
    • Snowflake API for Python 0.13.0 (improved the API documentation significantly, removed snowflake-snowpark-python as a dependency of snowflake.core. However, this package is still required for some features, such as task graph (DAG) concepts; the check and requirement for these features is performed at runtime, added support for all Python versions 3.8 or newer, added support for targetDatabase and targetSchema for cloning tables, added support for targetDatabase for cloning Schemas, exposed type definitions, added support for execute_job in ServiceCollection, added support for get_containers, get_instances, and get_roles in ServiceResource, added support for create_or_update in Service and ComputePool, added support for the following new resources: Account, Alert, Catalog integration, Event table, External volume, Managed account, Network policy, Notebook, Notification integration, Pipe, Procedure, Stream, User defined functions, and View)
    • Snowflake API for Python 0.13.1 (added support for the database role resource, added new methods to the role, database role, and user resources to manage access privileges, improved logs with secrets scrubbed)
    • Snowflake API for Python 1.0.0 (improved error messages by shortening stack traces. To control this behavior, use the _SNOWFLAKE_PRINT_VERBOSE_STACK_TRACE environment variable option. Now includes read-only properties by default in dictionaries returned by to_dict() from models. To toggle this option, use to_dict (hide_readonly_properties=True), added the if_exists property, which toggles whether you can perform an action without erroring if the given resource does not exist, to the following methods and resources:drop() for Database, NetworkPolicy, View, User, ComputePool, ImageRepository, Pipe, Role, Service, Stage, Table, Task, DynamicTable, Role, Alert, Procedure, Warehouse, Schema, and Function,refresh() for Database and DynamicTable,suspend() and resume() for Service, DynamicTable, and Warehouse,suspendRecluster() and resumeRecluster() for DynamicTable and Table,Database now supports the undrop() method,Service now supports the from_name parameter in iter(),Table now supports the target_database and target_schema parameters in swap_with(),Procedure now supports the copy_grants parameter in create())
    • Snowpark Library for Python 1.23.0 (added the following new functions in snowflake.snowpark.functions:make_interval, added support for using Snowflake Interval constants with Window.range_between() when the order by column is TIMESTAMP or DATE type, added support for file writes. This feature is currently in private preview, added thread_id to QueryRecord to track the thread id submitting the query history, added support for Session.stored_procedure_profiler)
    • Snowpark Library for Python 1.23.0 — Snowpark pandas API updates (added support for TimedeltaIndex.mean method, added support for some cases of aggregating Timedelta columns on axis=0 with agg or aggregate, added support for by, left_by, right_by, left_index, and right_index for pd.merge_asof, added support for passing parameter include_describe to Session.query_history, added support for DatetimeIndex.mean and DatetimeIndex.std methods, added support for Resampler.asfreq, Resampler.indices, Resampler.nunique, and Resampler.quantile, added support for resample frequency W, ME, YE with closed = “left”, added support for DataFrame.rolling.corr and Series.rolling.corr for pairwise = False and int window, added support for string time-based window and min_periods = None for Rolling, added support for DataFrameGroupBy.fillna and SeriesGroupBy.fillna, added support for constructing Series and DataFrame objects with the lazy Index object as data, index, and columns arguments, added support for constructing Series and DataFrame objects with index and column values not present in DataFrame/Series data, added support for pd.read_sas (Uses native pandas for processing), added support for applying rolling().count() and expanding().count() to Timedelta series and columns, added support for tz in both pd.date_range and pd.bdate_range, added support for Series.items., added support for errors=”ignore” in pd.to_datetime, added support for DataFrame.tz_localize and Series.tz_localize, added support for DataFrame.tz_convert and Series.tz_convert, added support for applying Snowpark Python functions (e.g., sin) in Series.map, Series.apply, DataFrame.apply and DataFrame.applymap, and lots of other improvements)
    • Snowpark ML 1.7.0 (Lots of Behavior changes: Python 3.9 is minimum, New Model Registry features: pass keyword arguments when instantiating ModelContext to provide a variable number of context values, support for pandas’s CategoricalDtype for categorical columns, log_model method now accepts both signature and sample_input_data parameters to capture background data from explainability and data lineage)
    • Snowflake Connector for Google Analytics Raw Data 2.3.0 (reloads of user data tables are now scheduled automatically after 72 hours)
    • Snowflake Connector for ServiceNow® V2 5.11.0 (Behavior changes: Modified the ServiceNow API request sorting rules applied during incremental updates to eliminate data loss while reading data from multiple read replicas)

    Bug fixes:

    • Go Snowflake Driver 1.12.0 (fixed issues with duplicate requestIDs and requestGUIDs on session renewal, proxy configuration for Azure, removed the *.okta.com native Okta authenticator URL restriction, and filestransfer example that failed with an incorrect file path)
    • Go Snowflake Driver 1.11.2 (Fixed error handling while getting accelerated configurations from S3 bucket)
    • Ingest Java SDK 2.3.0 (Behavior change numeric values preserve their format. The numeric values will not be converted to and from scientific notation, and added support a new table format.)
    • JDBC Driver 3.19.1 (unified the structured types string representation, fixed downloading the stream from the git repository, fixed an issue with the connection timeout parameter, fixed issues with Arrow logging, changed the custom cloud storage header metadata handling to be case-insensitive)
    • JDBC Driver 3.20.0 (issue affecting JDBC drivers where files pushed to Azure and GCP stages were uploaded without client-side encryption when the CLIENT_ENCRYPTION_KEY_SIZE parameter was set to 256-bit rather than the default 128-bit)
    • Node.js 1.14.0 (fixed a callback parameter heartbeat issue, fixed SSO token authentication, extended log levels and added new methods in the driver types definition)
    • Snowflake CLI 3.0.0 (issue with whitespace in the snow connection add command, SQL error that occurred when running the snow app version create or snow app version drop commands with a version name that isn’t a valid Snowflake unquoted identifier, check to verify the correctness of a token file and private key paths when adding a connection, typo in the spcs service name argument description. It is the identifier of the service instead of the service pool, issue with error handling and improved messaging when no artifacts are provided, improved error messages for incompatible parameters)
    • Snowflake CLI 3.0.2 (fixed the handling of empty default values for strings by snow snowpark deploy, added log error details if the pip command fails)
    • Snowflake CLI 3.1.0 (bug that caused the deploy_root, bundle_root, and generated_root directories to be created in the current working directory instead of the project root when invoking commands with the — project flag from a different directory, aligned variables for the snow stage and snow git execute commands. For Python files, variables are stripped of leading and trailing quotes, fixed an issue with snow stage list-files for paths with directories)
    • Snowflake API for Python 0.13.0 (bug relating to the logging of URLs, where not all the URL pieces were injected into logging)
    • Snowflake API for Python 1.0.0 (creating dynamic tables now properly allows cloning source objects from different databases and schemas, fixed an SSL connection issue for accounts and organizations with underscores when used in hostnames)
    • Snowpark Library for Python 1.23.0 (bug where registering a stored procedure or UDxF with type hints would give a warning NoneType has no len() when trying to read default values from function)
    • Snowpark Library for Python 1.23.0 — Snowpark pandas API updates ( bug where an Index object created from a Series/DataFrame incorrectly updates the Series/DataFrame’s index name after an inplace update has been applied to the original Series/DataFrame, suppressed an unhelpful SettingWithCopyWarning that sometimes appeared when printing Timedelta columns, fixed inplace argument for Series objects derived from other Series objects, bug where Series.sort_values failed if series name overlapped with index column name. bug where transposing a dataframe would map Timedelta index levels to integer column levels, bug where Resampler methods on timedelta columns would produce integer results, bug where pd.to_numeric() would leave Timedelta inputs as Timedelta instead of converting them to integers, loc set when setting a single row, or multiple rows, of a DataFrame with a Series value)
    • Snowpark ML 1.7.0 (Data Connector bug fixes: for multi-dimensional data, to_torch_dataset and to_torch_datapipe now return a numpy array with an appropriate data type instead of a list; Feature Store bug fixes: fixed an issue where ExampleHelper used an incomplete table name, changed weather features aggregation time to one hour instead of one day; Model Explainability bug fixes: fixed an issue with explainability for XGBoost models by using a new SHAP library version)
    • Snowpark ML 1.6.4(Model Registry bug fixes: fix issue with using ModelVersion.run with Model Serving (inference on SPCS))
    • Snowpark ML 1.6.3 (Behavior changes: Model Registry behavior changes: no longer contains the preview Model Registry API. Use the public API in snowflake.ml.model_registry instead, fix unexpected package name normaliations for packages that do not follow PEP-508 conventions when logging a model, fix “Not a valid remote URI” error when logging MLflow models, fix nested calls to ModelVersion.run, fix log_model failure when a local package version number contains parts other than the base version)
    • Snowflake Connector for Google Analytics Raw Data 2.3.0 (to prevent failures for a large number of properties, we’ve increased the timeout period on the view refresher task from 1 hour to 23 hours, fixed issues related to identifier migration, fixed the state of properties that got suspended due to an issue related to a race condition between refreshing the sink table views and disabling inaccessible Google Analytics properties)
    • Snowflake Connector for ServiceNow® V2 5.12 (incremental updates no longer fail if Snowflake doesn’t receive the timestamp of the newest record on the ingested table)
    • Snowflake Connector for ServiceNow® V2 5.11.1 (incremental updates no longer fail when the event log table is empty, incremental ingestion no longer fails when a fetched batch is empty due to having out-of-date rows during record updates from the source)
    • Snowflake Connector for ServiceNow® V2 5.11.0 (page size is no longer reduced when the ServiceNow instance is not reachable)
    • Snowflake Connector for MySQL 6.6.1 (Behavior changes: the maximum connection pool size to source databases has been increased to 7, the agent no longer stops after encountering data source connectivity issues)
    • Snowflake Connector for PostgreSQL 6.6.1 (Behavior changes: the maximum connection pool size to source databases has been increased to 7, the agent no longer stops after encountering data source connectivity issues, and the agent now confirms the PostgreSQL WAL position even when the QUOTED_IDENTIFIERS_IGNORE_CASE parameter is enabled for an account)

    Conclusion

    For October 2024, many of the upgrades to Snowflake’s platform demonstrate great progress in improving data management, security, and AI capabilities. For example, many products rolled in GA, such as Hybrid Tables (GA), which consolidates analytical and transactional operations into one database and simplify application development. Document AI and Cortex Search also turning GA, customers are empowered with intelligent document processing and complex search functions, using large language models.

    Security features, including the new SYSTEM$DATA_METRIC_SCAN function and higher restrictions on network regulations, fortify data protection and governance. When it comes to extensibility, the ability to write files from Snowpark Python UDFs and UDTFs (Preview) opens up new possibilities for data manipulation and storage. Updates to the client, drivers, and connectors have also been implemented to enhance performance and compatibility, further demonstrating Snowflake’s dedication to providing users with seamless experiences.

    These updates demonstrate Snowflake’s commitment to offering a strong, safe, and cutting-edge platform that lets users handle, analyze, and benefit from their data in a constantly changing digital world. Enjoy the reading.

    I am Augusto Rosa, VP of Engineering for Infostrux Solutions. I am also a Snowflake Data Super Hero and Snowflake SME. You can follow me on LinkedIn.

    Subscribe to Infostrux Medium Blogs https://medium.com/infostrux-solutions for the most interesting Data Engineering and Snowflake news.

    Sources:

Top comments (0)