# 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.** This is the lakehouse migration without a migration project.

## 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
```bash
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.
