Dela via


Välj en dataströmbearbetningsteknik i Azure

I den här artikeln jämförs teknikval för dataströmbearbetning i realtid i Azure.

Översikt över strömmande data

Organisationer har ofta olika datakällor som samtidigt genererar meddelanden, poster eller data. Mängden data kan variera från några byte till flera megabyte (MB). Strömmande data genereras på hög volym på ett kontinuerligt, inkrementellt sätt som kan bearbetas nästan i realtid. Den här typen av data innehåller information som företag använder för realtidsanalys och insyn i olika aspekter av verksamheten, till exempel programloggar, geoplatsuppdateringar, händelser och sensoravläsningar.

Strömmande data har ofta följande egenskaper:

  • Ofullständig dataintegritet: Tillfälliga fel vid källan kan leda till att dataelement saknas. Strömmens kontinuerliga karaktär kan leda till inkonsekvens i data. Dataströmbearbetnings- och analyssystem innehåller därför vanligtvis logik för datavalidering för att åtgärda dessa fel.

  • Kontinuerligt dataflöde: En dataström har ingen början eller slut, så du måste hela tiden samla in data. Till exempel ackumuleras serveraktivitetsloggar så länge servern körs.

  • Olika dataformat: Du kan strömma data i flera format, till exempel JSON, Avro och CSV. Och det kan innehålla olika datatyper, till exempel strängar, tal, datum och binära typer. Dataströmbearbetningssystem måste hantera dessa datavariationer.

  • Tidskänslig dataordning: Enskilda element i en dataström innehåller tidsstämplar. Och själva dataströmmen kan vara tidskänslig och förlora värde efter en viss tid. I vissa fall måste du bevara databehandlingsordningen.

Teknikalternativ för bearbetning i realtid

För att hjälpa dig att välja rätt teknik beskriver det här avsnittet vanliga alternativ i Azure, från inmatning till förbrukning. Varje underavsnitt visar rekommenderade tekniker baserat på deras roll i flödet för strömningsbearbetning.

Dataströmbearbetningsflöde på hög nivå

Ett diagram som visar dataflödet för databehandlingslösningen från slutpunkt till slutpunkt.

Ladda ned en Visio-fil med den här arkitekturen.

Strömproducenter

Stream-producenter genererar och push-överför data till Azure-inmatningstjänster. De producerar kontinuerligt data från källor som IoT-enheter (Internet of Things), programloggar eller databaser.

Stream-producenter ger följande fördelar:

  • Samla in data i nära realtid. Producenter kan kontinuerligt samla in data från källor som IoT-enheter, användarinteraktioner och programloggar. De strömmar data till Azure-tjänster som Azure Event Hubs eller Azure IoT Hub.

  • Optimera dataflödet med batchbearbetning och komprimering. Producenterna kan gruppera meddelanden och använda komprimering för att minska datastorlek under överföring. Dessa funktioner förbättrar effektiviteten.

  • Se till att överföringen är tillförlitlig med felhantering och återförsök. Producenter kan hantera nätverksstörningar eller mäklarfel via automatiska återförsök för att säkerställa tillförlitlig dataleverans.

  • Garantera dataintegritet med idempotens. Du kan konfigurera producenterna att stödja leverans exakt en gång, vilket förhindrar duplicerade meddelanden och säkerställer ett konsekvent dataflöde.

Komponenter

  • IoT Hub tar emot IoT-data. Den innehåller funktioner som dubbelriktad kommunikation, enhetsautentisering och offlinemeddelandebuffertning. Det är idealiskt för att hantera IoT-enheter och deras dataströmmar.

  • Producenter för förändringsdatainsamling (CDC) inkluderar Azure-databaser som Azure SQL Database och Azure Cosmos DB.

    För att komma åt CDC-data kan du använda anslutningsappar, till exempel Debezium för SQL Database eller Azure Cosmos DB-ändringsflödet. Dessa anslutningar finns ofta i Azure Functions- eller Azure App Service-miljöer. Om du använder funktionen Microsoft Fabric eventstreams behöver du inte separata program, till exempel Debezium, för att ansluta CDC-producenter till nedströmskonsumenter.

  • Anpassade program som Debezium kan också hanteras som fristående program på hanterade tjänster, till exempel Azure Kubernetes Service (AKS) eller App Service-miljöer. Den här metoden ger mer kontroll eller anpassning.

Allmänna funktioner

Kapacitet IoT Hub CDC-producenter Anpassade applikationer
Enhetstelemetri Ja Nej Nej
Hanterad tjänst Ja Nej Nej
Skalbarhet Ja Ja Ja

Dataströminmatning

Producenter, till exempel webb- och mobilprogram, IoT-enheter och sensorer, genererar kontinuerligt data. Dataströmbearbetningspipelinen måste effektivt mata in dessa data för realtids- och batchanalys.

Överväg följande faktorer:

  • Datahastighet: Avgör hur du hanterar högfrekventa data från flera källor, vilket ofta varierar i format och storlek.

  • Skalbarhet: Se till att inmatningslagret kan skalas dynamiskt när datavolym, variation och hastighet ökar.

  • Dataintegritet och tillförlitlighet: Förhindra dataförlust eller duplicering under överföring.

Komponenter

  • Event Hubs är en datainmatningstjänst i realtid som kan hantera miljontals händelser per sekund, vilket gör den idealisk för scenarier med högt dataflöde. Den kan skalas dynamiskt och bearbeta enorma datavolymer med låg svarstid.

    Event Hubs stöder funktioner som partitionering för parallell bearbetning och datakvarhållningsprinciper. Den integreras med Azure-tjänster som Azure Stream Analytics, Fabric, Azure Databricks och Azure Functions. Event Hubs integreras också med Apache Kafka och du kan köra befintliga Kafka-arbetsbelastningar utan några kodändringar.

  • Event Grid är en fullständigt hanterad händelsedirigeringstjänst. Den matar in, distribuerar och reagerar på händelser från olika källor, så det är idealiskt för händelsedrivna arkitekturer i realtid. Den hanterar effektivt händelsemeddelanden och integreras med Azure-tjänster, anpassade program och partnersystem. Event Grid spelar en viktig roll vid dataströminmatning.

  • Kafka på Azure HDInsight är en hanterad Apache Kafka-tjänst för datainmatning och bearbetning i realtid i stor skala. Använd den här tjänsten för att samla in och lagra strömmande data från olika källor, till exempel IoT-enheter, programloggar och sociala medieflöden. Den här tjänsten ger extra kontroll över en Kafka-konfiguration på en hanterad infrastruktur.

  • Apache Kafka på Confluent Cloud är en fullständigt hanterad Apache Kafka-tjänst för datainmatning i realtid. Den integreras med Azure för att förenkla distribution och skalning. Den här lösningen innehåller funktioner som schemaregister, ksqlDB för strömfrågor och säkerhet i företagsklass. Använd det här alternativet om du använder Confluents utökade ekosystem med anslutningsappar och dataströmbearbetningsverktyg.

Allmänna funktioner

Kapacitet Event Hubs Kafka på HDInsight Kafka på Confluent
Kvarhållning av meddelanden Ja Ja Ja
Storleksgräns för meddelanden 1 MB Konfigureringsbart Konfigureringsbart
Hanterad tjänst Ja Hanterad infrastruktur som en tjänst Ja
Automatisk skalning Ja Ja Ja
Partnererbjudande Nej Nej Ja
Prismodell Baserat på nivå Per klustertimme Förbrukningsmodeller

Dataströmbearbetning

Det här steget omfattar processer som transformerar data i realtid och filtrerar, aggregerar, berikar eller analyserar inmatade data.

Överväg följande faktorer:

  • Tillståndskänslig kontra tillståndslös bearbetning: Bestäm om din bearbetning är beroende av tidigare sett data (tillståndskänsliga) eller oberoende händelser (tillståndslösa).

  • Händelsetidshantering: Ta hänsyn till scenarier där du måste bearbeta dataströmmar från flera källor tillsammans, särskilt för poster som kommer sent.

  • Fönster: Använd skjutbara eller rullande fönster för att hantera tidsbaserade aggregeringar och analyser.

  • Feltolerans: Se till att systemet kan återställas från fel utan dataförlust eller ombearbetningsfel.

Komponenter

  • Stream Analytics är en hanterad tjänst som använder ett SQL-baserat frågespråk för att aktivera realtidsanalys. Använd den här tjänsten för enkla bearbetningsuppgifter som filtrering, aggregering och anslutning av dataströmmar. Den integreras sömlöst med Event Hubs, IoT Hub och Azure Blob Storage för in- och utdata. Stream Analytics passar bäst för uppgifter i låg komplexitet i realtid där en enkel, hanterad lösning med SQL-baserade frågor räcker.

  • Spark Structured Streaming stöds av tjänster som Fabric och Azure Databricks. Dessa tjänster tillhandahåller en enhetlig analysplattform som bygger på Apache Spark och kan hantera komplexa datatransformeringar, maskininlärningspipelines och stordataarbetsbelastningar. Api:er för Spark-strömning stöder djupintegrering med Delta Lake för dataversionshantering och konsekvens.

  • Fabric eventstreams är en kapacitet för dataströmning i realtid i Fabric, som är en enhetlig analysplattform. Eventstreams möjliggör sömlös inmatning, bearbetning och integrering av strömmande data för analys och program i realtid. Användare kan komma åt eventstreams med minimal teknisk expertis. Den innehåller dra och släpp-gränssnitt för att konfigurera datapipelines.

  • Azure Functions är en serverlös beräkningstjänst för händelsedriven bearbetning. Det är användbart för lätta uppgifter, som att transformera data eller utlösa arbetsflöden baserat på realtidshändelser. Azure-funktioner är tillståndslösa enligt design. Funktionen för hållbara funktioner utökar möjligheterna att stödja tillståndskänsliga arbetsflöden för komplex händelsesamordning.

Allmänna funktioner

Kapacitet Stream Analytics Spark Structured Streaming (Fabric, Azure Databricks) Stofthändelseströmmar Azure-funktioner
Bearbetning av mikrobatch Ja Ja Ja Nej
Händelsebaserad bearbetning Nej Nej Ja Ja
Tillståndsbevarande bearbetning Ja Ja Ja Nej
Stöd för kontrollpekande Ja Ja Ja Nej
Lågkodsgränssnitt Ja Nej Ja Nej
Prismodell Enheter för direktuppspelning Ja Tyg SKU Ja

Strömningsmottagare

När systemet har bearbetat data dirigeras data till lämpliga mål eller mottagare för lagring, ytterligare analys eller användning i realtidsprogram. Dessa destinationer kan omfatta databaser, datasjöar, analysverktyg eller instrumentpaneler för visualisering.

Överväg följande faktorer:

  • Dataförbrukning och användning: Använd Power BI för instrumentpaneler för realtidsanalys eller rapportering. Den integreras väl med Azure-tjänster och tillhandahåller livevisualiseringar av dataströmmar.

  • Krav för låg latens: Avgör om systemet måste leverera analys på dataströmmar i realtid, till exempel enhetstelemetri och programloggar. Vissa program kan också kräva extremt låg svarstid för läsningar och skrivningar, vilket gör dem lämpliga för driftanalys eller realtidsprogram.

  • Skalbarhet och volym: Utvärdera arbetsbelastningens behov av att mata in stora mängder data, stödja olika dataformat och skala effektivt och kostnadseffektivt.

Komponenter

  • Azure Data Lake Storage är en skalbar, distribuerad och kostnadseffektiv lösning för lagring av ostrukturerade och halvstrukturerade data. Den stöder petabyteskala lagring och arbetsbelastningar med högt dataflöde för lagring av stora mängder strömmande data. Det möjliggör även snabba läs- och skrivåtgärder som stöder analys av strömmande data och realtidsdatapipelines.

  • En Fabric-händelsehus är en KQL-databas för realtidsanalys och utforskning av händelsebaserade data, till exempel telemetri- och loggdata, tidsseriedata och IoT-data. Den stöder inmatning av miljontals händelser per sekund med låg svarstid. Den här funktionen ger nästan omedelbar åtkomst till strömmande data. Ett eventhouse integreras djupt med Fabric-ekosystemet. Det gör det möjligt för användare att fråga och analysera strömmande data omedelbart med hjälp av verktyg som Power BI.

  • Azure Cosmos DB är en NoSQL-databas för låg svarstid, globalt distribuerad och mycket skalbar datalagring. Det ger högt dataflöde och kan hantera stora volymer strömmande data med konsekventa prestanda.

  • SQL Database är en fullständigt hanterad, molnbaserad relationsdatabastjänst. Den bygger på SQL Server-motorn. Det ger därför funktionerna i en traditionell SQL Server-databas med fördelarna med molnbaserad skalbarhet, tillförlitlighet och minskade hanteringskostnader.

Allmänna funktioner

Kapacitet Datalagring i Data Lake Infrastrukturhändelsehus Azure Cosmos DB SQL-databas
Objektarkiv för generell användning Ja Nej Nej Nej
Strömmande dataaggregeringar Nej Ja Nej Nej
Läsningar och skrivningar med låg fördröjning för JSON-dokument Nej Ja Ja Nej
Strukturerade dataaggregeringar för Power BI Nej Ja Nej Ja
Prismodell Per GB eller TB Tyg SKU Enheter för begäran Databastransaktionsenhet (DTU) eller virtuell kärna

Deltagare

Microsoft ansvarar för den här artikeln. Följande deltagare skrev den här artikeln.

Huvudförfattare:

Om du vill se linkedin-profiler som inte är offentliga loggar du in på LinkedIn.

Nästa steg

Utforska följande utbildningsmoduler: