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:

  1. Creare uno spazio dei nomi di Hub eventi.
  2. Creare un client Kafka che invia messaggi all'hub eventi.
  3. 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:

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

  1. Clonare il repository di Hub eventi di Azure per Kafka nel proprio computer.

  2. Passare alla cartella azure-event-hubs-for-kafka/quickstart/java/producer.

  3. 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}";
    
  4. 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.

  5. Impostare un commento per la riga di codice seguente:

                //final ProducerRecord<Long, String> record = new ProducerRecord<Long, String>(TOPIC, time, "Test Data " + i);
    
  6. 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.

  7. 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

  1. Selezionare Hub eventi in ENTITÀ. Verificare che venga visualizzato un hub eventi denominato test.

    Hub eventi - test

  2. Verificare che siano visualizzati i messaggi in arrivo nell'hub eventi.

    Hub eventi - messaggi

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.

  1. Selezionare + Crea una risorsa nel portale di Azure.
  2. Selezionare Analytics nel menu Azure Marketplace e selezionare Processo di Analisi di Flusso.
  3. Nella pagina Nuovo processo di Analisi di flusso eseguire queste azioni:
    1. Immettere un nome per il processo.

    2. Selezionare la propria sottoscrizione.

    3. Selezionare Crea nuovo e immettere un nome per il gruppo di risorse. È anche possibile usare un gruppo di risorse esistente.

    4. Selezionare una posizione per il processo.

    5. Fare clic su Crea per creare il processo.

      Nuovo processo di Analisi di flusso

Configurare l'input del processo

  1. Nel messaggio di notifica selezionare Vai alla risorsa per visualizzare la pagina Processo di Analisi di flusso.

  2. Selezionare Input nella sezione TOPOLOGIA PROCESSO nel menu di sinistra.

  3. Selezionare Aggiungi input del flusso e selezionare Hub eventi.

    Aggiungere un hub eventi come input

  4. Nella pagina di configurazione Event Hub input (Input hub eventi) eseguire queste azioni:

    1. Specificare un alias per l'input.

    2. Selezionare la sottoscrizione di Azure.

    3. Selezionare lo spazio dei nomi dell'hub eventi creato in precedenza.

    4. Selezionare test per l'hub eventi.

    5. Selezionare Salva.

      Configurazione dell'input dell'hub eventi

Configurare l'output del processo

  1. Selezionare Output nella sezione TOPOLOGIA PROCESSO nel menu.
  2. Selezionare + Aggiungi nella barra degli strumenti e selezionare Archiviazione BLOB.
  3. Nella pagina delle impostazioni dell'output dell'archivio BLOB eseguire queste azioni:
    1. Specificare un alias per l'output.

    2. Selezionare la sottoscrizionedi Azure.

    3. Selezionare il proprio account di archiviazione di Azure.

    4. Immettere un nome per il contenitore che archivia i dati di output dalla query di Analisi di flusso.

    5. Selezionare Salva.

      Configurazione dell'output dell'archivio BLOB

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.

  1. Selezionare Query.

  2. Nella finestra della query sostituire [YourOutputAlias] con l'alias di output creato in precedenza.

  3. Sostituire [YourInputAlias] con l'alias di input creato in precedenza.

  4. Sulla barra degli strumenti selezionare Salva.

    Schermata che mostra la finestra di query con i valori per le variabili di input e di output.

Eseguire il processo di Analisi di flusso

  1. Fare clic su Panoramica nel menu di sinistra.

  2. Selezionare Start.

    Menu Start

  3. Nella pagina Avvia processo selezionare Avvia.

    Pagina Avvia processo

  4. Attendere che lo stato del processo cambi da Starting (In avvio) a running (in esecuzione).

    Stato del processo: in esecuzione

Testare lo scenario

  1. Eseguire di nuovo il producer Kafka per inviare gli eventi all'hub eventi.

    mvn exec:java -Dexec.mainClass="TestProducer"                                    
    
  2. 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.