DeltaForge reads native Iceberg tables and writes Delta tables with Iceberg metadata via UniForm. The same SQL dialect, the same optimizer, and the same ODBC driver work across both formats.
Read and write, not just one or the other
DeltaForge reads tables written by other Iceberg-compatible engines. The same SQL dialect, predicate pushdown, and column pruning that works on Delta tables also works on Iceberg tables. Query both in one statement.
Enable UniForm on a Delta table and DeltaForge writes Iceberg metadata (metadata.json, manifest list, manifests) on every commit. Delta readers and Iceberg readers see the same physical Parquet files. No ETL, no data duplication.
Join a Delta table and an Iceberg table in one query. Predicate pushdown reaches into each format's native metadata layer independently.
SELECT d.order_id, i.status
FROM delta.warehouse.orders d
JOIN iceberg.warehouse.shipments i
ON d.order_id = i.order_idNo mode switching, no separate catalog, no connector configuration. Register a storage credential, point at the table path, and use the same SELECT, INSERT, ALTER TABLE, and time travel syntax.
Write Delta, expose Iceberg, no pipeline in between
A SQL write commits a Delta log entry. DeltaForge then generates the corresponding Iceberg metadata inline: metadata.json, a manifest list, and one manifest per partition. Both metadata layers reference the same Parquet files.
Teams that use DeltaForge for writes and maintenance, while downstream consumers use an Iceberg-compatible engine for reads. Gradual migration from Delta to Iceberg without rewriting existing pipelines.
One table property activates UniForm on an existing Delta table. All subsequent commits produce both sets of metadata automatically.
ALTER TABLE events SET TBLPROPERTIES (
'delta.universalFormat.enabledFormats' = 'iceberg'
)Multi-level skipping from partition to file to row
Predicates on partition columns eliminate entire partitions from scan. The manifest list carries partition summaries so irrelevant manifests are skipped without opening them.
Each manifest records column-level min/max bounds per data file. The optimizer uses these to skip files that cannot contain rows matching the query predicate.
Only columns referenced in the query are read from Parquet. Iceberg's field ID system ensures correct mapping even after renames or reorders.
Native Iceberg and Delta Lake in the same SQL engine. Your data, your format, your choice.