Microsoft Fabric Updates Blog

How Microsoft OneLake seamlessly provides Apache Iceberg support for all Fabric Data

Co-authored with Kevin Liu, Apache Iceberg Committer and Principal Engineer at Microsoft. 

Microsoft Fabric is a unified SaaS data and analytics platform designed for the era of AI. All workloads in Microsoft Fabric use Delta Lake as the standard, open-source table format. With Microsoft OneLake, Fabric’s unified SaaS data lake, customers can unify their data estate across multiple cloud and on-prem systems.

We recently announced that OneLake can now transparently serve Delta Lake tables as Apache Iceberg tables. This post covers the details of how we built this feature and enables seamless interoperability across engines and ecosystems.

Try out this feature today!

Get started:
1. Create or identify a Delta Lake table in OneLake.
2. Use any Iceberg-compatible engine (e.g., Spark, Trino, Snowflake) to query the table.
3. OneLake will automatically serve the table in Iceberg format – no configuration needed.

Why This Matters

Organizations often rely on diverse engines and tools that favor different open table formats. Delta Lake is a popular choice for Spark-based pipelines and Microsoft Fabric engines, while Iceberg is increasingly adopted by query engines like Trino, Dremio, and Snowflake.

With OneLake, there’s no need to choose one format over the other. OneLake empowers openness and interoperability by automatically translating metadata between Delta and Iceberg formats. This means your tables are seamlessly available in both ecosystems—without duplication or compromise. Whether your team prefers Delta or Iceberg, OneLake ensures compatibility, flexibility, and freedom of choice.

By enabling on-the-fly conversion from Delta to Iceberg, OneLake eliminates the need for data duplication or format-specific pipelines.

You can now:
– Read Delta tables as Iceberg without rewriting or copying data.
– Use Iceberg-native tools on top of your existing Delta Lake datasets.
– Simplify governance and access control with a single source of truth.

Example

Here we have a table in Fabric Lakehouse stored in the Delta format.

Table in Fabric Lakehouse

Select ‘View files’ on table to see the table’s metadata.

View files belonging to a table in Fabric Lakehouse

Both _delta_log and metadata directories should appear.

Metadata folders for a table in Fabric Lakehouse

Select the metadata directory to view the Iceberg files.

Iceberg metadata for table in Lakehouse

Navigate to Snowflake and create an external volume pointing to the exampled Lakehouse.

Create external volume in Snowflake

Next, we create an Iceberg catalog.

Create Iceberg catalog in Snowflake

Create a table that uses the Iceberg catalog and external volume, specifying the Iceberg metadata file path in OneLake.

Create table in Snowflake

That’s it – now you can query the table!

Query table in Snowflake

How It Works

OneLake uses a feature called table format virtualization to surface tables as both Delta and Iceberg formats. When an Iceberg-compatible engine reads from a OneLake table that is natively in the Delta format, OneLake dynamically generates the necessary Iceberg metadata files. This allows the engine to interpret the table as if it were natively an Iceberg table.

Behind the scenes, this feature utilizes Apache XTable for table format metadata conversion. XTable provides cross-table omni-directional interop between the open table formats. We have also enhanced XTable functionality – for example, by converting Delta deletion vectors into Iceberg positional delete files. We look forward to contributing these features upstream to the open-source community.


Virtualized Iceberg metadata for a table in Fabric
  • The original Delta table resides in OneLake or an external location (e.g., ADLS, S3).
  • When queried via an Iceberg engine, OneLake serves Iceberg metadata derived from the metadata directory.

Here’s the workflow for a sample request.

Reading Iceberg metadata for a table in Fabric

The source metadata remains in its original Delta structure (in the _delta_log directory). OneLake’s virtualization layer intercepts read requests on the metadata directory and determines that Iceberg-compatible metadata is needed. It then generates Iceberg-compliant metadata on demand, enabling engines to interact with the table as if it were natively Iceberg, without any physical data movement. This approach is designed to be transparent to the table owner and does not modify the original storage location. It maintains consistency with the source table and scales efficiently by producing metadata on demand, when requested by a client. 

Future Work

We’re actively expanding support for additional data types and advanced features across both Delta Lake and Iceberg formats. A key focus is ensuring compatibility with the upcoming Iceberg V3 specification. These enhancements will further improve OneLake’s cross-format interoperability and simplify analytics across engines. 

Learn More

Billets de blog associés

How Microsoft OneLake seamlessly provides Apache Iceberg support for all Fabric Data

octobre 13, 2025 par Matthew Hicks

Microsoft OneLake is the unified data lake for your entire organization, built into Microsoft Fabric. It provides a single, open, and secure foundation for all your analytics workloads – eliminating data silos and simplifying data management across domains. The preview of Microsoft OneLake Table APIs, a new way to programmatically manage and interact with your … Continue reading “OneLake Table APIs (Preview)”