Skip to main content

Lakehouse versus Snowflake?

Summary

  • A lakehouse is an architecture, not a product: open-format tables such as Delta Lake or Apache Iceberg in object storage, a catalog that tracks them, and any compatible engine. Snowflake is a managed platform with its own storage, compute and cloud services layers.
  • By default, Snowflake reorganizes loaded data into its internal columnar format. Its Apache Iceberg tables can keep data in Snowflake storage or in external cloud storage you manage.
  • The two overlap through Apache Iceberg: Snowflake can connect to Iceberg REST catalogs, including Databricks Unity Catalog, and external engines can read and write Snowflake-managed Iceberg tables.
  • Decide by where the files live, which engines must write to them, which catalog is the system of record, and how much of the stack you want operated for you.

Lakehouse versus Snowflake?

The question compares an architecture with a product, so separate the two first. A lakehouse "is a data management system that combines the benefits of data lakes and data warehouses." In open-source terms, that means tables in an open format such as Delta Lake or Apache Iceberg, stored in cloud object storage, registered in a catalog and processed by any compatible engine. Snowflake is a managed platform built from database storage, compute and cloud services layers, where "ongoing maintenance, management, upgrades, and tuning are handled by Snowflake." Because Snowflake also supports Apache Iceberg tables in storage you manage, the real decision is which layers you want open and which you want managed.

What makes a lakehouse open

For the table format, Delta Lake is a Linux Foundation sub-project, and Apache Iceberg's site says it lets engines including Spark, Flink and Hive "safely work with the same tables, at the same time." For the catalog, "Iceberg defines a REST-based Catalog API" as an OpenAPI specification, implemented by Apache Polaris (an ASF top-level project since February 2026) and by Unity Catalog OSS (Apache 2.0, in LF AI & Data).

Open lakehouse vs Snowflake: how they compare

Capability Open lakehouse (open formats and engines) Snowflake
Storage Data files such as Parquet, plus Delta Lake or Iceberg metadata, in object storage you control (such as S3, Azure storage, Google Cloud Storage or HDFS) Loaded data is reorganized into Snowflake's internal compressed, columnar format, divided into micro-partitions
Open table formats Delta Lake (Linux Foundation); Apache Iceberg and Apache Hudi (Apache Software Foundation) Apache Iceberg tables, stored in Snowflake storage or in your own cloud storage through an external volume; Iceberg tables can also be created from Delta Lake files in object storage
Catalog Iceberg REST catalog implementations such as Apache Polaris or Unity Catalog OSS Snowflake as the catalog, Snowflake Open Catalog (a managed service for Apache Polaris), or a catalog integration with an external catalog
Compute Engines of your choice, such as Apache Spark or Apache Flink Virtual warehouses, each "a cluster of compute resources in Snowflake"
Programming model SQL and DataFrame APIs in each engine (Spark offers Java, Scala, Python and R) SQL; Snowpark libraries for Java, Python and Scala; Snowpark Connect for Apache Spark runs Spark workloads on Snowflake compute
Access from other engines Any engine with a connector for the format and catalog External engines read and write Snowflake-managed Iceberg v2 and v3 tables through the Horizon Iceberg REST Catalog API
Operations Self-managed open-source components, or a managed lakehouse platform "No hardware (virtual or physical) for you to select, install, configure, or manage"; runs on AWS, Microsoft Azure and Google Cloud

How to decide

  1. Where the files must live. If tables must stay in your own buckets in an open format, check whether each candidate does that by default or as an option. In Snowflake, standard tables use Snowflake-managed cloud storage, and Iceberg tables use either Snowflake storage or an external volume in your cloud storage.
  2. Which engines must write. List every engine that writes, not only reads, and find a documented write path for each. Snowflake documents external-engine writes to Snowflake-managed Iceberg tables, and Snowflake writes to tables in a remote Iceberg REST catalog.
  3. Which catalog is the system of record. Pick the catalog that owns each table's metadata and permissions, then check how every other system reaches it.
  4. How much you want operated for you. Self-managed open-source components give you control of every layer and the work of running it; managed services take that work on.

How Databricks approaches the lakehouse

Unity Catalog managed tables are "the default and recommended table type in Databricks for Delta Lake and Apache Iceberg": Delta Lake is the default, and USING iceberg creates an Iceberg table. Through the Iceberg REST catalog, Iceberg clients get read, write and create access to managed Iceberg tables and read access to Delta tables with Iceberg reads enabled, and Databricks' docs list Snowflake among the supported clients. Delta Lake clients use the Unity REST API, and Iceberg reads (UniForm) generate Iceberg metadata for Delta tables so Iceberg clients can read them without rewriting files.
Snowflake's documentation describes a REST catalog integration that connects to Unity Catalog and lets Snowflake insert into, update and create Iceberg tables there. Lakehouse Federation lists Snowflake as a source for query federation over JDBC and for catalog federation, which reads Snowflake-managed Iceberg tables directly from cloud storage.

FAQs

Does Snowflake support open table formats?

Yes. Snowflake supports Apache Iceberg tables, stored either in Snowflake storage or in external cloud storage you manage, and it can create Iceberg tables from Delta Lake files in object storage. Its standard tables use Snowflake's internal format.

Can Snowflake and Databricks work on the same tables?

Yes, through Apache Iceberg. Snowflake can read and write Iceberg tables in Unity Catalog through a REST catalog integration, and Unity Catalog can read Snowflake-managed Iceberg tables through catalog federation.

Does a lakehouse require Apache Spark?

No. Delta Lake and Iceberg both document connectors for multiple engines, and Delta Lake offers APIs for Scala, Java, Rust and Python.

The information provided herein is for general informational purposes only and may not reflect the most current product capabilities or configurations.