Direct Iceberg tables

A Direct Iceberg table is a read-only Apache Iceberg™ table in Snowflake that reads data in your data lake in place, in a format other than Iceberg. Snowflake registers your existing data files without copying or rewriting them, so you can query your data lake with Snowflake while your existing pipelines and other engines continue to write the data.

When to use Direct Iceberg tables

Use a Direct Iceberg table when you want to:

  • Query a data lake in place. Analyze Delta Lake or Parquet data with Snowflake without building an ingestion pipeline or keeping a second copy of the data.
  • Get Iceberg table performance on existing data. Direct Iceberg tables use the same query engine as other Iceberg tables in Snowflake, which performs better than external tables.
  • Keep your data current automatically. Snowflake can refresh the table as files in your storage change.
  • Modernize toward Iceberg incrementally. Bring existing data lake tables under Snowflake governance and access control today, and convert to the Iceberg format on your own timeline. Because the data stays in place, you can adopt Snowflake without disrupting the engines and pipelines that produce your data.

Types of Direct Iceberg tables

TypeSource dataCatalog integrationLearn more
Delta DirectDelta Lake tables: Parquet data files and a Delta transaction log (_delta_log/).CATALOG_SOURCE = OBJECT_STORE
TABLE_FORMAT = DELTA
Delta Direct
CREATE ICEBERG TABLE (Delta files in object storage)
Parquet Direct (preview)Plain Apache Parquet™ files with no table format, optionally organized with Hive-style key=value partitions.CATALOG_SOURCE = OBJECT_STORE
TABLE_FORMAT = NONE or HIVE
Parquet Direct
CREATE ICEBERG TABLE (Parquet files in object storage)

Requirements

All Direct Iceberg tables need the following objects: