Esercitazione: Elaborare gli eventi di Apache Kafka per Hub eventi mediante Analisi di flusso
Questo articolo illustra come eseguire lo streaming dei dati in Hub eventi ed elaborarli con Analisi di flusso di Azure. L'articolo include le istruzioni dettagliate per le operazioni seguenti:
- Creare uno spazio dei nomi di Hub eventi.
- Creare un client Kafka che invia messaggi all'hub eventi.
- Creare un processo di Analisi di flusso di Azure che copia i dati dall'hub eventi in un archivio BLOB di Azure.
Non è necessario modificare i client di protocollo o eseguire i propri cluster quando si usa l'endpoint di Kafka esposto da un hub eventi. Hub eventi di Azure supporta Apache Kafka versione 1.0 e successive.
Prerequisiti
Per completare questa guida introduttiva, accertarsi di soddisfare i requisiti seguenti:
- Una sottoscrizione di Azure. Se non se ne ha una, creare un account gratuito prima di iniziare.
- Java Development Kit (JDK) 1.7+.
- Scaricare e installare un archivio binario Maven.
- Git
- Un account di archiviazione di Azure. Se non è disponibile, crearne uno prima di procedere. Il processo di Analisi di flusso in questa procedura archivia i dati di output in un archivio BLOB di Azure.
Creare uno spazio dei nomi di Hub eventi
Quando si crea uno spazio dei nomi di Hub eventi, l'endpoint Kafka per lo spazio dei nomi viene abilitato automaticamente. È possibile trasmettere eventi dalle applicazioni che usano il protocollo Kafka in hub eventi. Seguire istruzioni dettagliate nella sezione Creare un hub eventi usando portale di Azure per creare uno spazio dei nomi di Hub eventi. Se si usa un cluster dedicato, vedere Creare uno spazio dei nomi e un hub eventi in un cluster dedicato.
Nota
Hub eventi per Kafka non è supportato nel livello di base .
Inviare e ricevere messaggi con Kafka in Hub eventi
Clonare il repository di Hub eventi di Azure per Kafka nel proprio computer.
Passare alla cartella
azure-event-hubs-for-kafka/quickstart/java/producer
.Aggiornare i dettagli di configurazione per il producer in
src/main/resources/producer.config
. Specificare il nome e la stringa di connessione per lo spazio dei nomi dell'hub eventi.bootstrap.servers={EVENT HUB NAMESPACE}.servicebus.windows.net:9093 security.protocol=SASL_SSL sasl.mechanism=PLAIN sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="{CONNECTION STRING for EVENT HUB NAMESPACE}";
Passare a
azure-event-hubs-for-kafka/quickstart/java/producer/src/main/java/
e aprire il file TestDataReporter.java in un editor di propria scelta.Impostare un commento per la riga di codice seguente:
//final ProducerRecord<Long, String> record = new ProducerRecord<Long, String>(TOPIC, time, "Test Data " + i);
Aggiungere la riga di codice seguente al posto del codice commentato:
final ProducerRecord<Long, String> record = new ProducerRecord<Long, String>(TOPIC, time, "{ \"eventData\": \"Test Data " + i + "\" }");
Questo codice invia i dati dell'evento in formato JSON. Quando si configura l'input per un processo di Analisi di flusso, si specifica il formato JSON per i dati di input.
Eseguire il producer ed eseguire lo streaming in Hub eventi. In un computer Windows, quando si usa un prompt dei comandi di Node.js, passare alla cartella
azure-event-hubs-for-kafka/quickstart/java/producer
prima di eseguire questi comandi.mvn clean package mvn exec:java -Dexec.mainClass="TestProducer"
Verificare che l'hub eventi riceva i dati
Selezionare Hub eventi in ENTITÀ. Verificare che venga visualizzato un hub eventi denominato test.
Verificare che siano visualizzati i messaggi in arrivo nell'hub eventi.
Elaborare i dati dell'evento tramite un processo di Analisi di flusso di Azure
In questa sezione si crea un processo di Analisi di flusso di Azure. Il client Kafka invia eventi all'hub eventi. Si crea un processo di Analisi di flusso di Azure che accetta i dati degli eventi come input e li invia a un archivio BLOB di Azure. Se non si dispone di un account di archiviazione di Azure, crearne uno.
La query nel processo di Analisi di flusso di Azure attraversa i dati senza eseguire alcuna analisi. È possibile creare una query che trasforma i dati di input per produrre dati di output in un formato diverso o con informazioni approfondite ottenute.
Creare un processo di Analisi di flusso.
- Selezionare + Crea una risorsa nel portale di Azure.
- Selezionare Analytics nel menu Azure Marketplace e selezionare Processo di Analisi di Flusso.
- Nella pagina Nuovo processo di Analisi di flusso eseguire queste azioni:
Immettere un nome per il processo.
Selezionare la propria sottoscrizione.
Selezionare Crea nuovo e immettere un nome per il gruppo di risorse. È anche possibile usare un gruppo di risorse esistente.
Selezionare una posizione per il processo.
Fare clic su Crea per creare il processo.
Configurare l'input del processo
Nel messaggio di notifica selezionare Vai alla risorsa per visualizzare la pagina Processo di Analisi di flusso.
Selezionare Input nella sezione TOPOLOGIA PROCESSO nel menu di sinistra.
Selezionare Aggiungi input del flusso e selezionare Hub eventi.
Nella pagina di configurazione Event Hub input (Input hub eventi) eseguire queste azioni:
Specificare un alias per l'input.
Selezionare la sottoscrizione di Azure.
Selezionare lo spazio dei nomi dell'hub eventi creato in precedenza.
Selezionare test per l'hub eventi.
Selezionare Salva.
Configurare l'output del processo
- Selezionare Output nella sezione TOPOLOGIA PROCESSO nel menu.
- Selezionare + Aggiungi nella barra degli strumenti e selezionare Archiviazione BLOB.
- Nella pagina delle impostazioni dell'output dell'archivio BLOB eseguire queste azioni:
Specificare un alias per l'output.
Selezionare la sottoscrizionedi Azure.
Selezionare il proprio account di archiviazione di Azure.
Immettere un nome per il contenitore che archivia i dati di output dalla query di Analisi di flusso.
Selezionare Salva.
Definire una query
Dopo aver configurato un processo di Analisi di flusso per leggere un flusso di dati in ingresso, il passaggio successivo consiste nel creare una trasformazione che analizza i dati in tempo reale. Per definire la query di trasformazione, si usa il linguaggio di query di Analisi di flusso. In questa procedura dettagliata si definisce una query che attraversa i dati senza apportare alcuna trasformazione.
Selezionare Query.
Nella finestra della query sostituire
[YourOutputAlias]
con l'alias di output creato in precedenza.Sostituire
[YourInputAlias]
con l'alias di input creato in precedenza.Sulla barra degli strumenti selezionare Salva.
Eseguire il processo di Analisi di flusso
Fare clic su Panoramica nel menu di sinistra.
Selezionare Start.
Nella pagina Avvia processo selezionare Avvia.
Attendere che lo stato del processo cambi da Starting (In avvio) a running (in esecuzione).
Testare lo scenario
Eseguire di nuovo il producer Kafka per inviare gli eventi all'hub eventi.
mvn exec:java -Dexec.mainClass="TestProducer"
Assicurarsi di visualizzare i dati di output generati nell'archivio BLOB di Azure. Viene visualizzato un file JSON nel contenitore con 100 righe simili alle righe di esempio seguenti:
{"eventData":"Test Data 0","EventProcessedUtcTime":"2018-08-30T03:27:23.1592910Z","PartitionId":0,"EventEnqueuedUtcTime":"2018-08-30T03:27:22.9220000Z"} {"eventData":"Test Data 1","EventProcessedUtcTime":"2018-08-30T03:27:23.3936511Z","PartitionId":0,"EventEnqueuedUtcTime":"2018-08-30T03:27:22.9220000Z"} {"eventData":"Test Data 2","EventProcessedUtcTime":"2018-08-30T03:27:23.3936511Z","PartitionId":0,"EventEnqueuedUtcTime":"2018-08-30T03:27:22.9220000Z"}
In questo scenario il processo di Analisi di flusso di Azure ha ricevuto i dati di input dall'hub eventi e li ha archiviati nell'archivio BLOB di Azure.
Passaggi successivi
In questo articolo è stato illustrato come eseguire lo streaming in Hub eventi senza modificare i client di protocollo o eseguire cluster personalizzati. Per altre informazioni su Hub eventi per Apache Kafka, vedere Guida per sviluppatori Apache Kafka per Hub eventi di Azure.