Che cos'è Apache Kafka?

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. 

Panoramica su Apache Kafka

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. 

Perché i data engineer usano Apache Kafka

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:

  • Application-to-application: consentire ai microservizi di comunicare attraverso architetture basate su eventi
  • Database-to-database: sincronizzazione dei dati tra diversi sistemi di archiviazione per la ridondanza o l'elaborazione specializzata
  • Application-to-database: acquisizione di eventi front-end, come le interazioni degli utenti su un'app mobile, e flusso di questi eventi in database back-end

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.

Perché Kafka è importante per i sistemi di AI

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. 

Quali sono i vantaggi di Kafka?

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

Kafka è un servizio gestito

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. 

Risolvi le tue sfide aziendali con Google Cloud

I nuovi clienti ricevono 300 $ di crediti senza costi da spendere su Google Cloud.
Parla con un esperto del team di vendita di Google Cloud per discutere della tua sfida unica in modo più dettagliato.

Come funziona Kafka?

Kafka consente l'elaborazione di flussi di eventi attraverso quattro funzioni principali:

  1. Produzione o scrittura dei dati: un'origine può scrivere log, eventi, record o dati in argomenti (raggruppamenti di eventi di dati). 
  2. Archiviazione: Apache Kafka fornisce un'archiviazione durevole e a disponibilità elevata, spesso fungendo da "fonte attendibile" per le architetture basate su eventi. Ciò è particolarmente utile quando è necessario tornare indietro e vedere cosa è successo in passato, anziché semplicemente reagire agli eventi in tempo reale. Poiché Kafka archivia i record in un log ordinato che può essere letto e riletto in modo riproducibile, consente ai team di ricreare i dati nei sistemi di analisi o di esaminare le transazioni passate con il contesto completo 
  3. Consuma: un'applicazione può leggere uno o più argomenti per elaborare lo stream di dati risultante.
  4. Connetti: i connettori riutilizzabili collegano Kafka a sistemi esistenti come BigQuery e Dataproc.

Risorse aggiuntive

  • Panoramica di BigQuery Studio: un workspace unificato per i professionisti dei dati per accelerare i workflow data-to-AI con notebook SQL e Python
  • Panoramica delle tabelle Iceberg: crea tabelle Iceberg gestite che consentono a motori open source come Spark di eseguire query sui flussi di dati con prestazioni elevate

Fai un passo avanti

Inizia a creare su Google Cloud con 300 $ di crediti senza costi e oltre 20 prodotti sempre senza costi.

Google Cloud