Ultimo aggiornamento: 06/12/2026
Apache Kafka è una popolare piattaforma open source per la gestione di flussi di eventi utilizzata per raccogliere, elaborare e archiviare flussi continui di eventi. Kafka è comunemente utilizzato come middleware di messaggistica, ma offre scalabilità e ridondanza che consentono alle applicazioni distribuite di gestire un singolo evento al giorno, fino a miliardi al secondo. A differenza dei sistemi di messaggistica tradizionali, Kafka è anche un sistema di archiviazione durevole che memorizza i record in un log ordinato che può essere letto e riletto in modo riproducibile. Questo rende Kafka un sistema comune per la distribuzione delle modifiche ai database transazionali che possono essere utilizzati per ricompilare o materializzare i dati in sistemi di analisi e di altro tipo. Questo pattern è talvolta chiamato "event sourcing".
Pertanto, Kafka è importante sia per i tradizionali pattern di bus di eventi, in cui le applicazioni basate su eventi sono integrate tramite middleware di messaggistica, sia per le architetture di sindicazione dei dati (o "materializzazione eterogenea"). Questo approccio è a bassa latenza ed economico.
Esplora Google Cloud Managed Service per Apache Kafka per automatizzare la tua infrastruttura di flussi di dati e accelerare i workflow data-to-AI.
Kafka acquisisce i flussi di dati e registra esattamente quanto accaduto e in che momento. Questo record viene denominato log di sola aggiunta. È immutabile perché può essere aggiunto, ma non può essere modificato. Da qui, le applicazioni possono sottoscrivere il log, accedere ai dati o pubblicare su di esso aggiungendo altri dati in tempo reale.
Sebbene il termine "Kafka" si riferisca spesso al sistema di archiviazione a bassa latenza, la piattaforma di flussi di dati include altri componenti importanti. Il primo è Kafka Connect, un sistema di integrazione che consente connettori scalabili orizzontalmente a molti sistemi importanti. Ciò include connettori change data capture (CDC), replica da cluster a cluster (MirrorMaker) e la possibilità di scrivere dati in sistemi downstream come lakehouse (Apache Iceberg), lake (file Avro o Parquet su archiviazione oggetti), nonché database come BigQuery. In secondo luogo, i progetti Kafka vengono forniti con una serie di client potenti, tra cui client della riga di comando amministrativa per la manipolazione di cluster e argomenti, nonché librerie client ad alte prestazioni per la lettura e la scrittura dei dati.
Storicamente, l'elaborazione dei dati veniva gestita con job in batch periodici, in cui i dati non elaborati venivano prima archiviati e poi elaborati a intervalli arbitrari. Ad esempio, un'azienda di vendita al dettaglio potrebbe aspettare fino alla fine della giornata per analizzare i dati di vendita. Uno dei limiti dell'elaborazione batch è che non avviene in tempo reale. Sempre più spesso le organizzazioni e i data scientist vogliono analizzare i dati in tempo reale man mano che vengono generati per prendere decisioni aziendali tempestive e alimentare modelli di AI in tempo reale.È qui che entra in gioco il flusso di eventi. Per flussi di eventi si intende il processo di elaborazione continua di flussi infiniti di eventi, nel momento in cui vengono creati. In questo modo si acquisisce il valore temporale dei dati e si abilitano applicazioni basate su push che intervengono ogni volta che si verifica un evento interessante. Per i data scientist, questo significa la capacità di eseguire il feature engineering in tempo reale e fornire previsioni a bassa latenza.
Sebbene molte organizzazioni si concentrino sugli insight downstream generati dai data scientist, i principali professionisti di Apache Kafka sono i data engineer. Questi professionisti sono responsabili della creazione delle "pipeline di dati" e delle integrazioni critiche che collegano le applicazioni e i database di un'azienda.
I data engineer utilizzano Kafka per creare connessioni affidabili nello stack tecnologico. Queste integrazioni possono assumere diverse forme:
In una tipica azienda, il data engineer lavora a stretto contatto con i team delle applicazioni per garantire che gli eventi utente, le transazioni aziendali e gli aggiornamenti del database vengano esportati in Kafka. Questo processo, noto come sindacazione dei dati, rende questi eventi disponibili a più utenti e sistemi all'interno dell'organizzazione contemporaneamente.
I data engineer scrivono il codice per le pipeline che trasformano i log delle applicazioni non elaborati in formati strutturati e di alta qualità. Questa trasformazione è essenziale per i data scientist, che in genere richiedono dati "puliti" archiviati in ambienti interrogabili come data lake, lakehouse o data warehouse, anziché interagire direttamente con il flusso Kafka non elaborato.
Nel contesto della data science e dell'AI, il valore di Kafka risiede principalmente nell'accesso ai dati. Funge da fonte completa per i log delle applicazioni e le modifiche al database. Sebbene Kafka sia famoso per la sua velocità, per la maggior parte dei workflow di data science, l'ampiezza e l'affidabilità dell'origine dati sono molto più importanti della consegna a bassa latenza.
I sistemi di AI funzionano con dati di addestramento e contesto di alta qualità durante l'inferenza. Kafka è spesso fondamentale per l'addestramento per raccogliere dati di addestramento da una varietà di sistemi di origine, dai log di interazione alle modifiche del database. In molte organizzazioni viene utilizzato come bus di eventi che aggrega eventi da molti servizi o semplicemente come posizione di gestione temporanea per i log delle applicazioni. Questo lo rende un'unica origine naturale di dati per la generazione di set di dati di addestramento. Poiché Kafka archivia i record in una sequenza ordinata, può essere particolarmente adatto anche per gli LLM che operano su sequenze.
Kafka è essenziale per molte attività di inferenza online. La capacità di un'applicazione o di un agente di fornire un suggerimento di prodotto, una risposta di ricerca o un prompt pertinenti dipende dall'avere il contesto più aggiornato per un utente. Poiché Kafka supporta la comunicazione scalabile a bassa latenza, consente a un sistema di inferenza di aggiornare il contesto dell'utente con gli eventi più recenti in decine di millisecondi. Ad esempio, se un utente rifiuta l'ultimo brano consigliato in un'app musicale o se il prezzo di un titolo azionario cambia in un'applicazione finanziaria, un servizio di suggerimenti può generare immediatamente un suggerimento migliore tenendo conto di questo input.
Ecosistema open source
Il codice sorgente di Kafka è disponibile senza costi e beneficia di una community globale che contribuisce con un'ampia gamma di connettori, strumenti di monitoraggio e plug-in.
Scalabilità e velocità
Kafka è una piattaforma distribuita, il che significa che l'elaborazione è suddivisa tra più macchine. Ciò consente di scalare per gestire enormi volumi di dati mantenendo una latenza inferiore al millisecondo.
Alta affidabilità
Poiché è distribuito, Kafka rimane affidabile anche in caso di guasto di singole macchine, il che lo rende adatto ad applicazioni mission-critical
La configurazione dei cluster Kafka on-premise è notoriamente difficile e richiede ai team di eseguire il provisioning delle macchine, gestire la sicurezza e occuparsi delle patch di routine. Con un servizio gestito, un provider si occupa dell'infrastruttura sottostante, consentendoti di concentrarti sulla creazione di applicazioni. Ciò è particolarmente vantaggioso per i team di data science che vogliono concentrarsi sullo sviluppo di modelli e sugli insight piuttosto che sulla gestione dell'infrastruttura.
Kafka consente l'elaborazione di flussi di eventi attraverso quattro funzioni principali:
Inizia a creare su Google Cloud con 300 $ di crediti senza costi e oltre 20 prodotti sempre senza costi.