Esercitazione: Elaborare gli eventi di Apache Kafka per un hub eventi mediante Analisi di flusso

Questo articolo illustra come trasmettere i dati in Hub eventi ed elaborarli con Analisi di flusso di Azure. Illustra i passaggi seguenti:

  1. Creare uno spazio dei nomi di Event Hub.
  2. Creare un client Kafka che invia messaggi all'hub eventi.
  3. Creare un processo di Analisi di flusso che copia i dati dall'hub eventi in un archivio BLOB di Azure.

Non è necessario modificare i client di protocollo o eseguire cluster personalizzati quando si usa l'endpoint Kafka esposto da un hub eventi. Hub eventi di Azure supporta Apache Kafka versione 1.0 e successive.

Prerequisiti

Per completare questa guida introduttiva, assicurarsi di avere i prerequisiti seguenti:

Creare uno spazio dei nomi di Hub eventi

Quando si crea uno spazio dei nomi di Event Hubs, 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 le istruzioni dettagliate in Creare un Event Hub usando il portale di Azure per creare un namespace di Event Hubs. Se si usa un cluster dedicato, vedere Creare uno spazio dei nomi e un hub eventi in un cluster dedicato.

Annotazioni

Hub eventi per Kafka non è supportato nel livello basic .

Inviare messaggi con Kafka negli Event Hub

  1. Clonare il repository di Azure Event Hubs per Kafka sulla tua macchina.

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

  3. Aggiorna i dettagli di configurazione per il produttore 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 TestDataReporter.java file in un editor di propria scelta.

  5. Impostare come commento 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 JSON come formato 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.

    Event Hub - Test

  2. Confermare che messaggi in arrivo vengano visualizzati nell'Event Hub.

    Hub eventi - Messaggi

Elaborare i dati degli eventi usando un processo di Analisi di flusso

In questa sezione viene creato un processo di Analisi di flusso di Azure. Il client Kafka invia eventi all'hub eventi. Si crea un processo di Analisi di flusso che accetta i dati dell'evento come input e lo restituisce in un archivio BLOB di Azure. Se non si ha 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 dettagliate acquisite.

Creare un processo di Analisi di flusso.

  1. Selezionare + Crea una risorsa nel portale di Azure.
  2. Selezionare Analisi nel menu di Azure Marketplace e selezionare Processo di Analisi di flusso.
  3. Nella pagina New Stream Analytics (Nuova analisi di flusso ) eseguire le azioni seguenti:
    1. Immettere un nome per il processo.

    2. Selezionare la sottoscrizione.

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

    4. Seleziona una sede per il lavoro.

    5. Selezionare Crea per creare l'attività.

      Nuovo processo di Analisi di flusso

Configurare l'input del processo

  1. Nel messaggio di notifica selezionare Vai alla risorsa per visualizzare la pagina del Stream Analytics job.

  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 dell'input dell'Event Hub, eseguire le seguenti azioni:

    1. Specificare un alias per l'input.

    2. Selezionare la sottoscrizione di Azure.

    3. Selezionare il namespace dell'hub di eventi creato in precedenza.

    4. Selezionare test per Event Hub.

    5. Seleziona Salva.

      Configurazione dell'input dell'hub eventi

Configurare l'output del lavoro

  1. Selezionare Output nella sezione TOPOLOGIA PROCESSO nel menu.
  2. Selezionare + Aggiungi sulla 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 sottoscrizione di Azure.

    3. Selezionare l'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. Seleziona Salva.

      Configurazione dell'output dell'archivio BLOB

Definire una interrogazione

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. È possibile definire la query di trasformazione usando il Stream Analytics Query Language. In questa procedura dettagliata viene definita una query che passa attraverso i dati senza eseguire 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. Selezionare Salva sulla barra degli strumenti.

    L'acquisizione dello schermo mostra la finestra di query con i valori per le variabili di input e output.

Eseguire il processo di Analisi di flusso

  1. Selezionare Panoramica nel menu a sinistra.

  2. Selezionare Avvia.

    Menu Start

  3. Nella pagina Avvia processo selezionare Avvia.

    Pagina di avvio del processo

  4. Attendere che lo stato del processo cambi da Avvio a esecuzione.

    Stato del processo - In esecuzione

Testare lo scenario

  1. Eseguire nuovamente il producer Kafka per inviare gli eventi all'hub degli eventi.

    mvn exec:java -Dexec.mainClass="TestProducer"                                    
    
  2. Assicurarsi di visualizzare i dati di output generati nell'archivio BLOB di Azure. Nel contenitore viene visualizzato un file JSON 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"}
    

    Il processo di Analisi di flusso di Azure ha ricevuto i dati di input dall'hub eventi e lo ha archiviato nell'archivio BLOB di Azure in questo scenario.

Passaggi successivi

In questo articolo si è appreso 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 la guida per sviluppatori apache Kafka per Hub eventi di Azure.