Bearbetning i realtid
Realtidsbearbetning hanterar dataströmmar som samlas in i realtid och bearbetas med minimal svarstid för att generera rapporter i realtid (eller nära realtid) eller automatiserade svar. En lösning för trafikövervakning i realtid kan till exempel använda sensordata för att identifiera stora trafikvolymer. Dessa data kan användas för att dynamiskt uppdatera en karta för att visa överbelastning, eller automatiskt initiera filer med hög belastning eller andra trafikhanteringssystem.

Realtidsbearbetning definieras som bearbetning av obegränsad dataström med indata, med mycket korta svarstidskrav för bearbetning – mätt i millisekunder eller sekunder. Dessa inkommande data tas vanligtvis emot i ett ostrukturerat eller halvstrukturerat format, till exempel JSON, och har samma bearbetningskrav som batchbearbetning,men med kortare leveranstider för att stödja användning i realtid.
Bearbetade data skrivs ofta till ett analysdatalager, som är optimerat för analys och visualisering. Bearbetade data kan också matas in direkt i analys- och rapporteringslagret för analys, business intelligence och realtidsvisualisering av instrumentpanelen.
Utmaningar
En av de stora utmaningarna med lösningar för realtidsbearbetning är att mata in, bearbeta och lagra meddelanden i realtid, särskilt vid stora volymer. Bearbetningen måste göras på ett sådant sätt att den inte blockerar inmatningspipelinen. Datalagret måste ha stöd för skrivningar med stora volymer. En annan utmaning är att kunna agera snabbt på data, till exempel generera aviseringar i realtid eller presentera data på en instrumentpanel i realtid (eller nära realtid).
Arkitektur
En arkitektur för realtidsbearbetning har följande logiska komponenter.
Inmatning av realtidsmeddelanden. Arkitekturen måste innehålla ett sätt att samla in och lagra realtidsmeddelanden som ska användas av en strömbearbetningskonsument. I enkla fall kan den här tjänsten implementeras som ett enkelt datalager där nya meddelanden sätts in i en mapp. Men ofta kräver lösningen en autjämnare för meddelanden, Azure Event Hubs, som fungerar som en buffert för meddelandena. Meddelandekoordinatorn bör ha stöd för utskalningsbearbetning och tillförlitlig leverans.
Bearbetning av dataströmmen. När du fångar in realtidsmeddelanden måste lösningen bearbeta dem genom att filtrera, samla och förbereda data på andra sätt för analys.
Analysdatalager. Många stordatalösningar är utformade för att förbereda data för analys och sedan hantera bearbetade data i ett strukturerat format som kan efterfrågas med analysverktyg.
Analys och rapportering. Målet för de flesta stordatalösningar är att ge insikter om data genom analys och rapportering.
Teknikval
Följande tekniker är rekommenderade alternativ för lösningar för realtidsbearbetning i Azure.
Datainmatning av meddelande i realtid
- Azure Event Hubs. Azure Event Hubs är en meddelandelösning för att mata in miljontals händelsemeddelanden per sekund. De avbildade händelsedata kan bearbetas av flera konsumenter parallellt. Även Event Hubs har inbyggt stöd för AMQP (Advanced Message Queueing Protocol 1.0) tillhandahåller det även ett lager för binär kompatibilitet som gör att program som använder Kafka-protokollet (Kafka 1.0 och högre) kan bearbeta händelser med hjälp av Event Hubs utan programändringar.
- Azure IoT Hub. Azure IoT Hub ger dubbelriktad kommunikation mellan Internetanslutna enheter och en skalbar meddelandekö som kan hantera miljontals samtidigt anslutna enheter.
- Apache Kafka. Kafka är ett kö- och dataströmbearbetningsprogram med öppen källkod som kan skalas för att hantera miljontals meddelanden per sekund från flera meddelandeproducenter och dirigera dem till flera konsumenter. Kafka är tillgängligt i Azure som en HDInsight-klustertyp, med Azure Events för Kafka och även tillgängligt via ConfluentCloud via vårt samarbete med Confluent.
Mer information finns i Inmatning av meddelanden i realtid.
Datalagring
- Azure Storage Blob-containrareller Azure Data Lake Store. Inkommande realtidsdata samlas vanligtvis in i en meddelandekoordinator (se ovan), men i vissa fall kan det vara bra att övervaka en mapp för nya filer och bearbeta dem när de skapas eller uppdateras. Dessutom kombinerar många lösningar för realtidsbearbetning strömmande data med statiska referensdata som kan lagras i ett fillager. Slutligen kan fillagring användas som utdatamål för infångade realtidsdata för arkivering, eller för ytterligare batchbearbetning i en lambda-arkitektur.
Mer information finns i Datalagring.
Strömbearbetning
- Azure Stream Analytics. Azure Stream Analytics köra permanenta frågor mot en obegränsad dataström. Dessa frågor förbrukar dataströmmar från lagring eller autjämning av meddelanden, filtrerar och aggregerar data baserat på temporala fönster och skriver resultaten till mottagare som lagring, databaser eller direkt till rapporter i Power BI. Stream Analytics använder ett SQL-baserat frågespråk som stöder temporala och geospatiala konstruktioner och kan utökas med hjälp av JavaScript.
- Storm. Apache Storm är ett ramverk med öppen källkod för strömbearbetning som använder en topologi av pipar och bultar för att använda, bearbeta och mata ut resultat från strömmande datakällor i realtid. Du kan etablera Storm i Azure HDInsight kluster och implementera en topologi i Java eller C#.
- Spark Streaming. Apache Spark är en distribuerad plattform med öppen källkod för allmän databehandling. Spark tillhandahåller Spark Streaming API, där du kan skriva kod på alla Spark-språk som stöds, inklusive Java, Scala och Python. Spark 2.0 introducerade SPARK Structured Streaming API, som ger en enklare och mer konsekvent programmeringsmodell. Spark 2.0 är tillgängligt i ett Azure HDInsight kluster.
Mer information finns i Strömma bearbetning.
Analysdatalager
- Azure Synapse Analytics, Azure Data Explorer,HBase,Sparkeller Hive. Bearbetade realtidsdata kan lagras i en relationsdatabas som Synapse Analytics, Azure Data Explorer, ett NoSQL-arkiv som HBase eller som filer i distribuerad lagring som Spark- eller Hive-tabeller kan definieras och efterfrågas över.
Mer information finns i Analysdatalager.
Analyser och rapporter
- Azure Analysis Services, Power BIoch Microsoft Excel. Bearbetade realtidsdata som lagras i ett analysdatalager kan användas för historisk rapportering och analys på samma sätt som bearbetade batchdata. Dessutom kan Power BI användas för att publicera rapporter och visualiseringar i realtid (eller nära realtid) från analytiska datakällor där svarstiden är tillräckligt låg, eller i vissa fall direkt från dataströmbearbetningens utdata.
Mer information finns i Analytics och rapportering.
I en helt realtidslösning hanteras merparten av bearbetningsorkestrering av komponenterna för meddelandeinmatning och strömbearbetning. I en lambda-arkitektur som kombinerar batchbearbetning och realtidsbearbetning kan du dock behöva använda ett orkestreringsramverk som Azure Data Factory eller Apache Oozie och Sqoop för att hantera batcharbetsflöden för infångade realtidsdata.
Nästa steg
Följande referensarkitektur visar en dataströmbearbetningspipeline från steg till slut: