Introduzione

Completato

Usando Azure HDInsight con Apache Kafka e Apache Spark, è possibile creare applicazioni e pipeline di analisi dei dati di streaming in tempo reale nel cloud.

Apache Kafka è un sistema di messaggistica distribuito che accetta i dati di streaming in ingresso da più sistemi e li rende disponibili in tempo reale per altre applicazioni. Apache Kafka funziona creando una coda di dati ordinati e quindi replicando i dati tra più computer, evitando così singoli punti di guasto. In questo modo, i dati saranno disponibili ai publisher o ai consumer. I publisher sono i client che creano i messaggi e li aggiungono alla coda Kafka, mentre i consumer ricevono i messaggi in base alle rispettive sottoscrizioni.

Apache Spark è un sistema di elaborazione parallela che consente di estrarre dati da sistemi come Apache Kafka, eseguire trasformazioni e reagire in base ai dati. Apache Kafka consente di sfruttare e salvare i dati, mentre Apache Spark consente di modificarli ed elaborarli. Quando questi due sistemi vengono usati in modalità integrata, Spark può acquisire da Kafka piccoli batch o flussi continui di dati ed elaborarli in tempo reale usando la tecnologia definita Structured Streaming. Quando le aziende implementano questa tecnologia, possono usare una singola architettura per elaborare i dati in batch, i dati di streaming in tempo reale o una combinazione dei due. In questo modo, possono adeguare le proprie applicazioni man mano che passano dall'elaborazione in batch all'elaborazione in tempo reale, senza dover apprendere o implementare framework differenti.

Usando Apache Kafka e Apache Spark in Azure HDInsight, è possibile creare questa architettura in pochi minuti e usufruire così della scalabilità e della disponibilità elevata di un provider di servizi cloud online. In questo modo, le aziende che hanno creato applicazioni Kafka e Spark in locale possono eseguire in modo più semplice la migrazione di questi carichi di lavoro nel cloud.

In qualità di ingegnere dei dati nel settore bancario, si ha la necessità di iniziare a elaborare dati in streaming e in batch con una latenza molto bassa e si ritiene che Apache Spark e Apache Kafka possano essere gli strumenti adatti allo scopo.

Obiettivi di apprendimento

Al termine del modulo, sarà possibile:

  • Usare HDInsight
  • Trasmettere dati in streaming con Apache Kafka
  • Descrivere Spark Structured Streaming
  • Creare un'architettura Kafka Spark
  • Effettuare il provisioning di HDInsight per l'esecuzione di trasformazioni di dati
  • Creare un producer Kafka
  • Trasmettere in streaming i dati Kafka a un notebook di Jupyter
  • Replicare i dati in un cluster secondario