Nel panorama dei big data dominato da colossi come Snowflake e Databricks, un piccolo protagonista europeo sta riscuotendo sempre più attenzione. DuckDB, database analitico in-process nato nei Paesi Bassi, ha introdotto un’architettura rivoluzionaria che promette di semplificare la gestione dei dati distribuiti, ridurre la complessità dei data lakehouse e risolvere le inefficienze dei formati esistenti come Iceberg e Delta Lake.

Lanciato nel 2022 e già adottato da giganti come Google, Facebook e Airbnb, DuckDB ha superato i 20 milioni di download mensili e si propone come un’alternativa compatta, locale e open source ai tradizionali data warehouse. La sua filosofia è chiara: permettere agli utenti di analizzare i dati dove si trovano, anche su un semplice laptop o all’interno di una libreria Python come Pandas, senza passaggi di importazione o copia.

Un approccio radicalmente diverso

La tradizione del data warehousing (da Teradata a Snowflake) si è sempre basata su una logica centralizzata, ovvero un’unica fonte di verità, condivisa e omogenea. DuckDB capovolge questa visione con un’architettura decentralizzata che punta su semplicità e flessibilità, pur mantenendo la coerenza dei dati. Il progetto, che ha rinunciato ai finanziamenti da venture capital e si è sviluppato in modo indipendente, oggi propone DuckLake, un nuovo formato di tabella open source pensato per semplificare la gestione dei metadati e migliorare l’efficienza operativa nei lakehouse.

I limiti di Iceberg e Delta Lake

Nel mondo dei data lake, i formati Iceberg e Delta Lake sono ormai standard de facto. Iceberg è nato in Netflix nel 2015 ed è sostenuto da nomi come AWS, Google, Apple e Snowflake, mentre delta lake è legato a Databricks ed è appoggiato da Microsoft e SAP. Tuttavia, entrambi soffrono di problemi strutturali nella gestione dei metadati.

Come spiegano i fondatori di DuckDB, ogni aggiornamento in Iceberg comporta la scrittura di un nuovo file con l’intera cronologia e struttura dello schema. Questo approccio genera complessità, inefficienze e un accumulo di piccoli file difficili da gestire, soprattutto in ambienti blob storage come AWS S3 o Google Cloud Storage.

DuckLake

DuckLake: metadati SQL e storage aperto

DuckDB propone una soluzione elegante, che consiste nell’archiviare i dati in formati aperti come Parquet e affidare la gestione dei metadati a un database relazionale standard. Nasce così DuckLake, che utilizza SQL per rappresentare il catalogo dei dati sostituendo i sistemi a file stratificati con un approccio più solido, veloce e trasparente.

Questa architettura si basa su due componenti principali:

  • File storage aperto (Parquet su S3, Azure Blob, Google Cloud Storage o anche locale)
  • Database SQL per i metadati, come DuckDB, PostgreSQL, SQLite o MySQL

L’estensione DuckLake consente a DuckDB di fungere da gestore di metadati, ma l’utente può scegliere anche altri DBMS; in questo modo, si elimina il lock-in tecnologico e si garantisce massima portabilità e interoperabilità. Un altro punto di forza di DuckLake è che il calcolo rimane completamente locale e ciò consente un’ottima scalabilità orizzontale e un utilizzo efficiente delle risorse, sia in ambienti personali che su grandi cluster cloud. DuckLake è gratuito, open source con licenza MIT e gestito dalla DuckDB Foundation, ente no-profit che garantisce trasparenza e continuità nel progetto.

I vantaggi (e i compromessi) del nuovo approccio

Secondo Andrew Pavlo, professore alla Carnegie Mellon University, l’analisi di DuckDB sui limiti di Iceberg e Delta è corretta. Tuttavia, evidenzia anche un possibile svantaggio: mentre Iceberg conserva i metadati accanto ai file dei dati (rendendoli recuperabili anche in caso di perdita del catalogo), DuckLake dipende interamente da un database esterno per ricostruire il catalogo. È un compromesso che, accanto a una migliore gestione degli aggiornamenti e semplicità operativa, porta con sé una leggera maggiore complessità gestionale.

Hyoun Park, analista di Amalgam Insights, sottolinea invece come DuckDB stia affrontando un problema reale: quello del “disordine da micro-cambiamenti” che affligge i lakehouse moderni. La gestione dei metadati tramite SQL e database tradizionali è quindi vista come una scelta sensata e matura. Jordan Tigani, ex leader di BigQuery e ora CEO di MotherDuck, ha sposato appieno la visione di DuckDB. La sua azienda sta costruendo una piattaforma serverless per portare DuckLake nel cloud, permettendo agli utenti di eseguire analisi distribuite su S3 senza dover scaricare grandi moli di dati in locale. Secondo Tigani, DuckLake corregge debolezze strutturali dei lakehouse esistenti e consente aggiornamenti frequenti, gestione semplificata dei piccoli file e operazioni multi-tabella efficienti.