Using Nessie branches together with dbt is a strong pattern here: run dbt against a branch, run tests there, and only merge into main when they pass, so Trino consumers never see half-built tables. On a homelab, also schedule Iceberg maintenance (expire_snapshots, remove_orphan_files and rewrite_data_files) early, because frequent small dbt runs pile up snapshots and tiny files on Ceph fast, and Trino query times degrade before you notice why.