A lakehouse on AWS in 2026 is Apache Iceberg tables in S3, a Glue Data Catalog, and engines like Athena, Redshift and EMR reading the same data. S3 Tables now manages the Iceberg upkeep for you. The layers, what S3 Tables costs on top of storage, when plain Parquet is enough, and the gotchas that make tables invisible.
A lakehouse keeps data in open files in object storage and adds what a warehouse gives you: tables with schemas, updates and deletes, transactions and time travel. On AWS the table format is almost always Apache Iceberg, and the question in 2026 is mostly who maintains the Iceberg tables: you, or S3.
Book a free 30-minute call. You'll leave knowing what we'd do first and roughly what it costs, whether or not you hire us.
S3 Tables stores Iceberg tables in a special table bucket and runs the maintenance Iceberg needs: compaction into larger files (512 MB target by default), snapshot expiry (keep at least 1, expire after 120 hours by default) and removal of unreferenced files. With Iceberg on an ordinary bucket you schedule that work yourself, with Glue table optimizers or Spark jobs.
For most teams the managed maintenance is worth it: an Iceberg table nobody compacts slows down and gets more expensive to query every week. Self-managed makes sense when you already run Spark on a schedule, or need table properties S3 Tables doesn't support.
Append-only data, such as events, logs and clickstreams, works well as compressed files in S3 partitioned by day, with a Glue table using partition projection and Athena on top. No updates, no compaction, nothing to maintain. That is how our own site analytics run. Reach for Iceberg when you need updates and deletes (GDPR erasure, late corrections, CDC from a database), schema changes without rewriting, or many writers.
Use lowercase table and column names in S3 Tables. AWS's docs say a table with capital letters isn't supported by Lake Formation or the Glue Data Catalog, so it is invisible to Athena.
Integration goes through the Glue Data Catalog, which has its own request and storage charges.
Snapshot expiry stops working if a table has a user-defined tag or branch, or Iceberg retention properties set in the table metadata. Storage then grows quietly.
Compaction commits can conflict with your writers. Give your pipelines retry logic, as AWS recommends.
With SSE-KMS encryption, every role that queries needs permission to use the key.
Once a month: what changed in tech that month and what it means for you, from cloud and AI to security and the tools you build with. Every item links to its source. No sales pitch, unsubscribe in one click.
Book a free 30-minute call about it. Bring your setup and your bill; you'll leave knowing what we'd do first and roughly what it costs, whether or not you hire us.
Or keep reading
Scaling an Event Pipeline on AWS: From Firehose and Athena to Iceberg and S3 Tables
The same analytics design works from a thousand events a day to billions: if you change the right piece at the right time. The four stages, what breaks at each, and when Iceberg, S3 Tables, Parquet and a warehouse start earning their cost.
Read
Aurora PostgreSQL Now Queries Iceberg and Parquet Directly, With DuckDB Inside: When It Replaces a Pipeline
Since September 30, 2026, Aurora PostgreSQL 17 and 18 can query Apache Iceberg and Parquet in S3, S3 Tables and Glue-catalogued lakes in the same SQL as live operational data, using an embedded DuckDB engine. No extra charge. What it is good for, its limits, and when you still want Redshift or Athena.
Read
As of November 2, 2026. Provided as is, for general information, and accurate to the best of our knowledge on the date shown. Not legal, compliance, tax, financial or other professional advice. Prices, limits and vendor services change; check current vendor documentation before relying on anything here. Terms of use.