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:
- Skapa ett Event Hubs-namnområde.
- Skapa en Kafka-klient som skickar meddelanden till händelsehubben.
- 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:
- En Azure-prenumeration. Om du inte har ett konto kan du skapa ett kostnadsfritt konto innan du börjar.
- Java Development Kit (JDK) 1.7+.
- Ladda ned och installera ett Maven-binärarkiv.
- Git
- Ett Azure Storage konto. Om du inte har någon skapar du en innan du fortsätter. I Stream Analytics här genomgången lagras utdata i Azure Blob Storage.
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
Klona Azure Event Hubs Kafka-lagringsplatsen till datorn.
Navigera till mappen:
azure-event-hubs-for-kafka/quickstart/java/producer.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}";Gå till
azure-event-hubs-for-kafka/quickstart/java/producer/src/main/java/och öppna filen TestDataReporter.java i valfri redigerare.Kommentera ut följande kodrad:
//final ProducerRecord<Long, String> record = new ProducerRecord<Long, String>(TOPIC, time, "Test Data " + i);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.
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/producermappen innan du kör dessa kommandon.mvn clean package mvn exec:java -Dexec.mainClass="TestProducer"
Kontrollera att händelsehubben tar emot data
Välj Event Hubs under ENTITETER. Bekräfta att du ser en händelsehubb med namnet test.

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

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
- Välj + Skapa en resurs i Azure Portal.
- Välj Analytics på Azure Marketplace och välj Stream Analytics jobb.
- På sidan Stream Analytics gör du följande:
Ange ett namn för jobbet.
Välj din prenumeration.
Välj Skapa ny för resursgruppen och ange namnet. Du kan också använda en befintlig resursgrupp.
Välj en plats för jobbet.
Välj Skapa för att skapa jobbet.

Konfigurera jobbindata
I aviseringsmeddelandet väljer du Gå till resurs för att Stream Analytics sidan.
Välj Indata i avsnittet JOBBTOPOLOGI på den vänstra menyn.
Välj Lägg till strömindata och välj sedan Händelsehubb.

På konfigurationssidan för händelsehubbens indata gör du följande:
Ange ett alias för indata.
Välj din Azure-prenumeration.
Välj händelsehubbens namnområde som du skapade tidigare.
Välj test för händelsehubben.
Välj Spara.

Konfigurera jobbutdata
- Välj Utdata i avsnittet JOBBTOPOLOGI på menyn.
- Välj + Lägg till i verktygsfältet och välj Blob Storage
- Gör följande på sidan Inställningar för Blob Storage-utdata:
Ange ett alias för utdata.
Välj din Azure-prenumeration.
Välj ditt Azure Storage konto.
Ange ett namn för containern som lagrar utdata från Stream Analytics frågan.
Välj Spara.

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.
Välj Fråga.
I frågefönstret ersätter du med
[YourOutputAlias]utdataaliaset som du skapade tidigare.Ersätt
[YourInputAlias]med det indataalias som du skapade tidigare.Välj Spara i verktygsfältet.

Köra Stream Analytics-jobbet
Välj Översikt på den vänstra menyn.
Välj Starta.

På sidan Starta jobb väljer du Starta.

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

Testa scenariot
Kör Kafka-producenten igen för att skicka händelser till händelsehubben.
mvn exec:java -Dexec.mainClass="TestProducer"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.