Lakewright solutions / brief
Migrate a Parquet data swamp to governed Apache Iceberg tables
A bucket of accumulated Parquet files becomes a set of governed Iceberg tables — schemas read from footers, duplicates skipped by content digest, existing Delta/Iceberg/Hudi tables detected and left alone.
How does it handle a mixed bucket?
Parquet footers give exact schemas; files clustering to the same schema become one feed. Directories that are already table formats (_delta_log, Iceberg metadata, .hoodie) are recognized as existing tables and reported — never re-ingested file-by-file.
The steps
lakewright scan s3://data-lake-old # inventory: feeds + existing tables lakewright approve plans/events_archive.plan.yaml lakewright load plans/events_archive.plan.yaml --rest $CATALOG
Avro lands the same way. Snowflake, Databricks, Trino, and DuckDB query the result directly.
FAQ
Schema drift across years of files?Same-schema files cluster together; drifted generations surface as separate feeds you can review — drift becomes visible instead of silently merged.