Självstudie: Bearbeta Apache Kafka för Event Hubs händelser med Stream Analytics

Den här artikeln visar hur du strömmar data till Event Hubs och bearbetar dem med Azure Stream Analytics. Du får hjälp med följande steg:

  1. Skapa ett Event Hubs-namnområde.
  2. Skapa en Kafka-klient som skickar meddelanden till händelsehubben.
  3. Skapa ett Stream Analytics som kopierar data från händelsehubben till en Azure Blob Storage.

Du behöver inte ändra protokollklienterna eller köra dina egna kluster när du använder Kafka-slutpunkten som exponeras av en händelsehubb. Azure Event Hubs stöder Apache Kafka version 1.0. och högre.

Förutsättningar

För att kunna slutföra den här snabbstarten behöver du följande:

Skapa ett Event Hubs-namnområde

När du skapar Event Hubs namnrymd aktiveras Kafka-slutpunkten för namnområdet automatiskt. Du kan strömma händelser från dina program som använder Kafka-protokollet till event hubs. Följ stegvisa instruktioner i Skapa en händelsehubb med hjälp av Azure Portal för att skapa Event Hubs namnrymd. Om du använder ett dedikerat kluster kan du se Skapa ett namnområde och en händelsehubb i ett dedikerat kluster.

Anteckning

Event Hubs för Kafka stöds inte på basic-nivån.

Skicka meddelanden med Kafka i Event Hubs

  1. Klona Azure Event Hubs Kafka-lagringsplatsen till datorn.

  2. Navigera till mappen: azure-event-hubs-for-kafka/quickstart/java/producer .

  3. Uppdatera konfigurationsinformationen för producenten i src/main/resources/producer.config . Ange namn och anslutningssträng för händelsehubbens namnområde.

    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. Gå till azure-event-hubs-for-kafka/quickstart/java/producer/src/main/java/ och öppna filen TestDataReporter.java i valfri redigerare.

  5. Kommentera ut följande kodrad:

                //final ProducerRecord<Long, String> record = new ProducerRecord<Long, String>(TOPIC, time, "Test Data " + i);
    
  6. Lägg till följande kodrad i stället för den kommenterade koden:

                final ProducerRecord<Long, String> record = new ProducerRecord<Long, String>(TOPIC, time, "{ \"eventData\": \"Test Data " + i + "\" }");            
    

    Den här koden skickar händelsedata i JSON-format. När du konfigurerar indata Stream Analytics ett jobb anger du JSON som format för indata.

  7. Kör producenten och strömma till Event Hubs. På en Windows dator när du använder enNode.js kommandotolk växlar du till azure-event-hubs-for-kafka/quickstart/java/producer mappen innan du kör dessa kommandon.

    mvn clean package
    mvn exec:java -Dexec.mainClass="TestProducer"                                    
    

Kontrollera att händelsehubben tar emot data

  1. Välj Event Hubs under ENTITETER. Bekräfta att du ser en händelsehubb med namnet test.

    Händelsehubb – test

  2. Bekräfta att du ser meddelanden som kommer till händelsehubben.

    Händelsehubb – meddelanden

Bearbeta händelsedata med ett Stream Analytics jobb

I det här avsnittet skapar du ett Azure Stream Analytics jobb. Kafka-klienten skickar händelser till händelsehubben. Du skapar ett Stream Analytics-jobb som tar händelsedata som indata och matar ut dem till en Azure Blob Storage. Om du inte har ett Azure Storage skapar du ett.

Frågan i Stream Analytics skickar data utan att utföra några analyser. Du kan skapa en fråga som transformerar indata för att skapa utdata i ett annat format eller med nya insikter.

Skapa ett Stream Analytics-jobb

  1. Välj + Skapa en resurs i Azure Portal.
  2. Välj AnalyticsAzure Marketplace och välj Stream Analytics jobb.
  3. På sidan Stream Analytics gör du följande:
    1. Ange ett namn för jobbet.

    2. Välj din prenumeration.

    3. Välj Skapa ny för resursgruppen och ange namnet. Du kan också använda en befintlig resursgrupp.

    4. Välj en plats för jobbet.

    5. Välj Skapa för att skapa jobbet.

      Nytt Stream Analytics jobb

Konfigurera jobbindata

  1. I aviseringsmeddelandet väljer du Gå till resurs för att Stream Analytics sidan.

  2. Välj Indata i avsnittet JOBBTOPOLOGI på den vänstra menyn.

  3. Välj Lägg till strömindata och välj sedan Händelsehubb.

    Lägga till händelsehubb som indata

  4. konfigurationssidan för händelsehubbens indata gör du följande:

    1. Ange ett alias för indata.

    2. Välj din Azure-prenumeration.

    3. Välj händelsehubbens namnområde som du skapade tidigare.

    4. Välj test för händelsehubben.

    5. Välj Spara.

      Konfiguration av indata för händelsehubb

Konfigurera jobbutdata

  1. Välj Utdata i avsnittet JOBBTOPOLOGI på menyn.
  2. Välj + Lägg till i verktygsfältet och välj Blob Storage
  3. Gör följande på sidan Inställningar för Blob Storage-utdata:
    1. Ange ett alias för utdata.

    2. Välj din Azure-prenumeration.

    3. Välj ditt Azure Storage konto.

    4. Ange ett namn för containern som lagrar utdata från Stream Analytics frågan.

    5. Välj Spara.

      Konfiguration Storage Blob-utdata

Definiera en fråga

När du har en Stream Analytics-jobbkonfiguration för att läsa en inkommande dataström är nästa steg att skapa en omvandling som analyserar data i realtid. Du definierar transformationsfrågan med Stream Analytics-frågespråket. I den här genomgången definierar du en fråga som passerar genom data utan att utföra någon transformering.

  1. Välj Fråga.

  2. I frågefönstret ersätter du med [YourOutputAlias] utdataaliaset som du skapade tidigare.

  3. Ersätt [YourInputAlias] med det indataalias som du skapade tidigare.

  4. Välj Spara i verktygsfältet.

    Skärmbild som visar frågefönstret med värden för indata- och utdatavariabler.

Köra Stream Analytics-jobbet

  1. Välj Översikt på den vänstra menyn.

  2. Välj Starta.

    Start-menyn

  3. På sidan Starta jobb väljer du Starta.

    Sidan Starta jobb

  4. Vänta tills jobbets status ändras från Börjar till körs.

    Jobbstatus – körs

Testa scenariot

  1. Kör Kafka-producenten igen för att skicka händelser till händelsehubben.

    mvn exec:java -Dexec.mainClass="TestProducer"                                    
    
  2. Bekräfta att du ser utdata som genereras i Azure Blob Storage. Du ser en JSON-fil i containern med 100 rader som ser ut som följande exempelrader:

    {"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"}
    

    Jobbet Azure Stream Analytics indata från händelsehubben och lagrade dem i Azure Blob Storage i det här scenariot.

Nästa steg

I den här artikeln har du lärt dig att strömma till Event Hubs utan att ändra protokollklienter eller köra dina egna kluster. Mer information om Event Hubs för Apache Kafka finns i Apache Kafka utvecklarguide för Azure Event Hubs.