Apache Iceberg: table format open per data lakehouse

Apache Iceberg (2020-2021): table format con schema evolution, time travel, ACID transactions su Parquet in object storage. Uno dei tre standard lakehouse con Delta Lake e Apache Hudi. Graduated ASF 2020.

Open SourceR&D Apache IcebergLakehouseParquetNetflixData EngineeringOpen Source

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).

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi