Data lake con ACID
I data lake basati su file Parquet/ORC in S3/HDFS hanno limiti: no transazioni ACID multi-file, no schema evolution controllata, no time travel, query performance con liste file enormi. I table format aggiungono un layer di metadati sopra i file per risolvere questi problemi.
Apache Iceberg, creato da Ryan Blue e Daniel Weeks a Netflix dal 2017, donato a Apache Foundation nel 2018 e Graduated TLP nel maggio 2020. Licenza Apache 2.0.
Caratteristiche
- Snapshot isolation — ogni commit produce uno snapshot; reader vedono punto temporale coerente
- Time travel — query su snapshot storici (
SELECT ... AT TIMESTAMP '2024-01-15') - Schema evolution — add/rename/drop column con retrocompatibilità
- Partition evolution — cambio di strategia di partizionamento senza rewrite
- Hidden partitioning — Iceberg gestisce partizioni automaticamente basate su column values
- Row-level operations — UPDATE, DELETE, MERGE efficienti
- ACID transactions — commit atomici su multiple file
Compute engines
Iceberg è disaccoppiato dal compute engine. Supportato nativamente da:
- Apache Spark
- Trino / Presto
- Apache Flink
- Snowflake (nativo nel 2024)
- AWS Athena, Google BigQuery (external tables)
- DuckDB, Dremio
I tre table format
Al 2024 esistono tre table format lakehouse:
- Delta Lake (Databricks) — open source Linux Foundation, più legato a Spark
- Apache Iceberg — neutrale, supporto multi-engine
- Apache Hudi — Uber-originato, focus su streaming upsert
Iceberg sta prevalendo come standard de facto nel 2024, con supporto di tutti i grandi vendor cloud.
Databricks-Snowflake war
Nel giugno 2024 Databricks acquisisce Tabular (azienda di Ryan Blue), consolidando il controllo di Iceberg. Snowflake annuncia il proprio supporto nativo per Iceberg. È una guerra strategica per il controllo del livello dati aperto.
Nel contesto italiano
Adoption italiana in aziende con data lake maturi: banche, telco, grandi retailer, istituti di ricerca.
Riferimenti: Apache Iceberg. Ryan Blue, Daniel Weeks, Netflix (2017). Apache TLP (maggio 2020). Licenza Apache 2.0. Alternatives: Delta Lake (Databricks), Apache Hudi (Uber). Tabular acquired by Databricks (giugno 2024).
