Amazon S3 Tables Alternatives for Production Iceberg
Amazon S3 Tables solves a real problem. If you have ever spent a weekend debugging a failed compaction job, or watched a table accumulate 40,000 small files because nobody remembered to schedule rewrite_data_files , the pitch is compelling: create a table bucket, write data, and AWS handles compaction, snapshot expiration, and orphan cleanup automatically. No Spark clusters. No Airflow DAGs. No…
Amazon S3 Tables is a managed service that combines Iceberg storage and catalog into a single solution. It offers a built-in Iceberg REST Catalog, automatic compaction, snapshot expiration, and orphan cleanup. S3 Tables also supports intelligent tiering for cost optimization and integrates with SageMaker Lakehouse for unified analytics.
For teams with straightforward requirements, such as AWS-native stacks using Athena, EMR, and Redshift, S3 Tables can save weeks of infrastructure setup. However, in production Iceberg estates, the constraints of S3 Tables become apparent.
One major limitation is the lack of visibility into S3 Tables' maintenance operations. Users cannot see what compaction has done, as there are no detailed compaction logs or correlation with query latency. This opacity can pose risks for streaming workloads with freshness SLAs. Additionally, S3 Tables runs maintenance operations continuously, which can lead to commit contention and increased latency for frequent writers.
Snapshot management also has its challenges. If any user-defined tag or branch exists on a table, snapshot management fails for the entire table, requiring deletion of all tags and branches before snapshots can be expired or removed. Table properties for Iceberg snapshot retention can also cause silent failures. While S3 Tables offers higher write throughput compared to general-purpose S3 buckets, it lacks certain features like ALTER TABLE RENAME, which can break dbt's standard near-zero-downtime table swap.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.