ClickHouse ha ora un driver ADBC ufficiale, l’alternativa Arrow-native a ODBC e JDBC per le applicazioni analytics e AI. ADBC (Arrow Database Connectivity) è uno standard del progetto Apache Arrow: una API multi-linguaggio che consegna i dati in formato colonnare Apache Arrow. Dove ODBC e JDBC hanno dato all’industria un modo comune per parlare con i database in un mondo row-oriented, ADBC porta la stessa standardizzazione nel mondo colonnare su cui gira l’analytics moderna.
Perché conta per ClickHouse
Un database come ClickHouse produce risultati nativamente in formato colonnare, ma gli standard più vecchi forzano quei risultati in un formato a righe prima di raggiungere il client, dove spesso vanno ricostruiti in colonnare. ADBC elimina queste conversioni: i risultati tornano in Apache Arrow, la rappresentazione in-memory usata da gran parte dell’infrastruttura dati moderna. ClickHouse è stato early adopter di Arrow, supportato come formato di input/output dal 2020; il driver completa la catena con connettività end-to-end senza conversioni né staging, dal database fino all’applicazione.
Un solo driver per più linguaggi
ADBC è cross-language per design: il vendor costruisce un driver e ogni linguaggio con binding ADBC può usarlo. Per Python, Go, Java e JavaScript, dove ClickHouse ha già client ufficiali, offre un’interfaccia colonnare standard agli strumenti Arrow-native; per Ruby, R e C, che oggi non hanno client ufficiali, fornisce accesso di prima classe senza un driver dedicato per ciascun linguaggio. Il driver è scritto in Rust, si connette via HTTP con TLS di default e si aggancia passando una URI clickhouse:// al driver manager. La motivazione principale è stata dbt Fusion, il nuovo motore di dbt Labs basato su Rust che usa ADBC come layer di connettività: essendo entrambi in Rust, l’integrazione è nativa e i dati tornano come Arrow record batch.
Cosa c’è nella 0.1.0
La release 0.1.0 offre esecuzione di query colonnare (risultati come Arrow record batch, senza conversione in pandas o Polars), streaming insert di dati Arrow senza SQL, e lo schema URI clickhouse:// con default HTTPS. L’installazione avviene con un comando via dbc, il package manager per driver ADBC distribuito tramite l’ADBC Driver Foundry in partnership con Columnar. Restano dei limiti: non tutti i tipi Arrow mappano sui tipi ClickHouse, non ci sono ancora API async e il tipo JSON non è supportato in attesa di una serializzazione Arrow standard.
- Movimento dati end-to-end colonnare, senza round trip row-oriented.
- Per row-by-row, ORM o accesso completo al type system, restano preferibili i client ufficiali.
- Sulla roadmap: schema/catalog discovery, bulk ingest con auto-creazione tabelle e supporto JSON.
Fonte: One Driver, One Format, Every Language: ADBC — https://clickhouse.com/blog/introducing-the-clickhouse-adbc-driver
Hai qualcosa da aggiungere? Unisciti alla discussione.