Delen via


Een technologie voor stroomverwerking kiezen in Azure

In dit artikel worden technologische keuzes vergeleken voor realtime stroomverwerking in Azure.

Overzicht van streaminggegevens

Organisaties hebben vaak verschillende gegevensbronnen die tegelijkertijd berichten, records of gegevens verzenden. De hoeveelheid gegevens kan variëren van een paar bytes tot meerdere megabytes (MB). Streaminggegevens worden op grote volumes op een continue, incrementele manier verzonden die in bijna realtime kunnen worden verwerkt. Dit type gegevens bevat informatie die bedrijven gebruiken voor realtime analyses en inzicht in verschillende aspecten van hun bedrijf, zoals toepassingslogboeken, updates voor geolocatie, gebeurtenissen en sensorleesbewerkingen.

Streaminggegevens hebben vaak de volgende kenmerken:

  • Onvolmaakte gegevensintegriteit: Tijdelijke fouten bij de bron kunnen leiden tot ontbrekende gegevenselementen. De continue aard van de stroom kan leiden tot inconsistentie van gegevens. Stroomverwerkings- en analysesystemen bevatten dus doorgaans logica voor gegevensvalidatie om deze fouten te verhelpen.

  • Continue gegevensstroom: Een gegevensstroom heeft geen begin of einde, dus u moet voortdurend gegevens verzamelen. Serveractiviteitslogboeken worden bijvoorbeeld verzameld zolang de server draait.

  • Diverse gegevensindelingen: U kunt gegevens streamen in meerdere indelingen, zoals JSON, Avro en CSV. En het kan verschillende gegevenstypen bevatten, zoals tekenreeksen, getallen, datums en binaire typen. Stroomverwerkingssystemen moeten deze gegevensvariaties verwerken.

  • Tijdgevoelige gegevensvolgorde: Afzonderlijke elementen in een gegevensstroom bevatten tijdstempels. En de gegevensstroom zelf kan tijdgevoelig zijn en waarde verliezen na een bepaalde tijd. In sommige gevallen moet u de gegevensverwerkingsorder behouden.

Technologieopties voor realtime verwerking

Om u te helpen de juiste technologie te kiezen, worden in deze sectie algemene opties in Azure beschreven, van opname tot verbruik. Elke subsectie markeert aanbevolen technologieën op basis van hun rol binnen de stroom voor streamingverwerking.

Stroomverwerking op hoog niveau

Een diagram met de gegevensstroom voor de end-to-end gegevensverwerkingsoplossing.

Een Visio-bestand van deze architectuur downloaden.

Streamingproducenten

Streamproducenten genereren en pushen gegevens naar Azure-opnameservices. Ze produceren continu gegevens uit bronnen zoals IoT-apparaten (Internet of Things), toepassingslogboeken of databases.

Stream-producenten bieden de volgende voordelen:

  • Gegevens in bijna realtime vastleggen. Producenten kunnen voortdurend gegevens verzamelen uit bronnen zoals IoT-apparaten, gebruikersinteracties en toepassingslogboeken. Ze streamen de gegevens naar Azure-services, zoals Azure Event Hubs of Azure IoT Hub.

  • Optimaliseer de doorvoer met batchverwerking en compressie. Producenten kunnen berichten batcheren en compressie toepassen om de gegevensgrootte tijdens de verzending te minimaliseren. Deze mogelijkheden verbeteren de efficiëntie.

  • Zorg voor een betrouwbare overdracht met foutafhandeling en nieuwe pogingen. Producenten kunnen netwerkonderbrekingen of brokerfouten beheren via automatische nieuwe pogingen om betrouwbare levering van gegevens te garanderen.

  • Garanderen van gegevensintegriteit met idempotentie. U kunt producenten configureren om exact één keer levering te ondersteunen, waardoor dubbele berichten worden voorkomen en een consistente gegevensstroom wordt gegarandeerd.

Onderdeel

  • IoT Hub neemt IoT-gegevens op. Het biedt functies zoals bidirectionele communicatie, apparaatverificatie en offline berichtbuffering. Het is ideaal voor het beheren van IoT-apparaten en hun gegevensstromen.

  • Change Data Capture (CDC)-producenten omvatten Azure-databases zoals Azure SQL Database en Azure Cosmos DB.

    Voor toegang tot CDC-gegevens kunt u connectors gebruiken, zoals Debezium voor SQL Database of de Azure Cosmos DB-wijzigingenfeed. Deze connectors worden vaak gehost in Azure Functions- of Azure App Service-omgevingen. Als u de functie Microsoft Fabric EventStreams gebruikt, hebt u geen afzonderlijke toepassingen nodig, zoals Debezium, om CDC-producenten te verbinden met downstreamgebruikers.

  • Aangepaste toepassingen zoals Debezium kunnen ook worden gehost als zelfstandige toepassingen op beheerde services, zoals Azure Kubernetes Service (AKS) of App Service-omgevingen. Deze aanpak biedt meer controle of aanpassing.

Algemene mogelijkheden

Mogelijkheid IoT-hub CDC-producenten Aangepaste toepassingen
Apparaattelemetrie Ja Nee Nee
Beheerde service Ja Nee Nee
Schaalbaarheid Ja Ja Ja

Streamverwerking

Producenten, zoals web- en mobiele toepassingen, IoT-apparaten en sensoren, genereren continu gegevens. De pijplijn voor stroomverwerking moet deze gegevens efficiënt opnemen voor realtime- en batchanalyse.

Houd rekening met de volgende factoren:

  • Snelheid van gegevens: Bepaal hoe u gegevens met een hoge frequentie van meerdere bronnen kunt verwerken, die vaak verschillen in indeling en grootte.

  • Schaalbaarheid: Zorg ervoor dat de opnamelaag dynamisch kan worden geschaald naarmate het gegevensvolume, de variëteit en de snelheid toenemen.

  • Gegevensintegriteit en betrouwbaarheid: Voorkom gegevensverlies of duplicatie tijdens verzending.

Onderdeel

  • Event Hubs is een realtime service voor gegevensopname die miljoenen gebeurtenissen per seconde kan verwerken, waardoor het ideaal is voor scenario's met hoge doorvoer. Het kan dynamisch worden geschaald en enorme hoeveelheden gegevens verwerken met lage latentie.

    Event Hubs ondersteunt functies zoals partitionering voor parallelle verwerking en beleid voor gegevensretentie. Het integreert met Azure-services zoals Azure Stream Analytics, Fabric, Azure Databricks en Azure Functions. Event Hubs kan ook worden geïntegreerd met Apache Kafka en u kunt bestaande Kafka-workloads uitvoeren zonder codewijzigingen.

  • Event Grid is een volledig beheerde service voor gebeurtenisroutering. Het neemt gebeurtenissen op, distribueert en reageert op gebeurtenissen uit verschillende bronnen, dus het is ideaal voor realtime, gebeurtenisgestuurde architecturen. Het verwerkt efficiënt gebeurtenismeldingen en integreert met Azure-services, aangepaste toepassingen en partnersystemen. Event Grid speelt een kritieke rol bij de verwerking van streams.

  • Kafka in Azure HDInsight is een beheerde Apache Kafka-service voor realtime gegevensopname en -verwerking op schaal. Gebruik deze service om streaminggegevens van verschillende bronnen vast te leggen en op te slaan, zoals IoT-apparaten, toepassingslogboeken en feeds voor sociale media. Deze service biedt extra controle over een Kafka-configuratie op een beheerde infrastructuur.

  • Apache Kafka in Confluent Cloud is een volledig beheerde Apache Kafka-service voor realtime gegevensopname. Het is geïntegreerd met Azure om de implementatie en schaal te vereenvoudigen. Deze oplossing omvat functies zoals schemaregister, ksqlDB voor streamquery's en beveiliging op bedrijfsniveau. Gebruik deze optie als u het uitgebreide ecosysteem van connectors en stroomverwerkingsprogramma's van Confluent gebruikt.

Algemene mogelijkheden

Mogelijkheid Event Hubs Kafka op HDInsight Kafka op Confluent
Bewaarperiode van berichten Ja Ja Ja
Limiet voor berichtgrootte 1 MB Configureerbaar Configureerbaar
Beheerde service Ja Beheerde infrastructuur als een service Ja
Automatisch schalen Ja Ja Ja
Partneraanbod Nee Nee Ja
Prijsmodel Op basis van niveau Per clusteruur Verbruiksmodellen

Stroomverwerking

Deze stap omvat processen voor het transformeren van gegevens in realtime en het filteren, aggregeren, verrijken of analyseren van opgenomen gegevens.

Houd rekening met de volgende factoren:

  • Stateful versus stateless verwerking: Bepaal of uw verwerking afhankelijk is van eerder geziene gegevens (stateful) of onafhankelijke (stateless) gebeurtenissen.

  • Verwerking van gebeurtenistijd: Neem rekening met scenario's waarbij u gegevensstromen uit meerdere bronnen samen moet verwerken, met name voor records die te laat binnenkomen.

  • Windowing: Gebruik schuif- of tumblingvensters om op tijd gebaseerde aggregaties en analyses te beheren.

  • Fouttolerantie: Zorg ervoor dat het systeem fouten kan herstellen zonder gegevensverlies of fouten opnieuw te verwerken.

Onderdeel

  • Stream Analytics is een beheerde service die gebruikmaakt van een querytaal op basis van SQL om realtime analyse mogelijk te maken. Gebruik deze service voor eenvoudige verwerkingstaken, zoals filteren, aggregeren en samenvoegen van gegevensstromen. Het integreert naadloos met Event Hubs, IoT Hub en Azure Blob Storage voor invoer en uitvoer. Stream Analytics past het beste bij complexe, realtime taken waarbij een eenvoudige, beheerde oplossing met SQL-query's voldoende is.

  • Spark Structured Streaming wordt ondersteund door services zoals Fabric, Azure Databricks en Azure Synapse Analytics. Deze services bieden een geïntegreerd analyseplatform dat is gebouwd op Apache Spark en complexe gegevenstransformaties, machine learning-pijplijnen en big data-workloads kan verwerken. Spark-streaming-API's ondersteunen diepgaande integratie met Delta Lake voor gegevensversiebeheer en consistentie.

  • Fabric eventstreams is een realtime mogelijkheid voor het streamen van gegevens in Fabric. Dit is een geïntegreerd analyseplatform. Eventstreams maakt naadloze opname, verwerking en integratie van streaminggegevens mogelijk voor realtime analyse en toepassingen. Gebruikers hebben toegang tot eventstreams met minimale technische expertise. Het biedt slepen-en-neerzetten interfaces voor het instellen van gegevenspijplijnen.

  • Azure Functions is een serverloze rekenservice voor gebeurtenisgestuurde verwerking. Het is handig voor lichtgewicht taken, zoals het transformeren van gegevens of het activeren van werkstromen op basis van realtimegebeurtenissen. Azure-functies zijn standaard staatloos. De Durable Functions-functionaliteit breidt de mogelijkheden uit om met status bewaakte werkstromen te ondersteunen voor complexe coördinatie van gebeurtenissen.

Algemene mogelijkheden

Mogelijkheid Streamanalyse Spark Structured Streaming (Fabric, Azure Databricks, Azure Synapse Analytics) Fabric gebeurtenissenstromen Azure Functions (serverloze computerdiensten van Azure)
Microbatchverwerking Ja Ja Ja Nee
Verwerking op basis van gebeurtenissen Nee Nee Ja Ja
Toestandsgebonden verwerking Ja Ja Ja Nee
Ondersteuning voor controlepunten Ja Ja Ja Nee
Interface met weinig code Ja Nee Ja Nee
Prijsmodel Streaming-eenheden Ja Fabric-SKU Ja

Streaming-sinks

Nadat het systeem de gegevens heeft verwerkt, worden de gegevens naar de juiste bestemmingen of sinks geleid voor opslag, verdere analyse of gebruik in realtime-toepassingen. Deze bestemmingen kunnen databases, data lakes, analysehulpprogramma's of dashboards bevatten voor visualisatie.

Houd rekening met de volgende factoren:

  • Gegevensverbruik en -gebruik: Power BI gebruiken voor realtime analyses of rapportagedashboards. Het is goed geïntegreerd met Azure-services en biedt livevisualisaties van gegevensstromen.

  • Vereisten voor lage latentie: Bepaal of uw systeem analyses moet leveren op realtime gegevensstromen, zoals apparaattelemetrie en toepassingslogboeken. Voor sommige toepassingen is mogelijk ook een ultra lage latentie vereist voor lees- en schrijfbewerkingen, waardoor ze geschikt zijn voor operationele analyses of realtime-toepassingen.

  • Schaalbaarheid en volume: Evalueer de noodzaak van uw workload om grote hoeveelheden gegevens op te nemen, verschillende gegevensindelingen te ondersteunen en efficiënt en rendabel te schalen.

Onderdeel

  • Azure Data Lake Storage is een schaalbare, gedistribueerde en rendabele oplossing voor het opslaan van ongestructureerde en semi-gestructureerde gegevens. Het biedt ondersteuning voor opslag op petabyte-schaal en workloads met hoge doorvoer voor het opslaan van grote hoeveelheden streaminggegevens. Het maakt ook snelle lees- en schrijfbewerkingen mogelijk, die analyse van streaminggegevens en realtime gegevenspijplijnen ondersteunen.

  • Een Fabric-eventhouse is een KQL-database voor real-time analyses en verkenning van op event gebaseerde gegevens, zoals telemetrie- en logboekgegevens, tijdreeksgegevens en IoT-gegevens. Het biedt ondersteuning voor opname van miljoenen gebeurtenissen per seconde met lage latentie. Met deze functie hebt u bijna direct toegang tot streaminggegevens. Een eventhouse is diep geïntegreerd met het Fabric-ecosysteem. Hiermee kunnen gebruikers direct query's uitvoeren en streaminggegevens analyseren met behulp van hulpprogramma's zoals Power BI.

  • Azure Cosmos DB is een NoSQL-database voor lage latentie, wereldwijd gedistribueerde en zeer schaalbare gegevensopslag. Het is compatibel met meerdere API's, zoals SQL, MongoDB, Cassandra, Table en Gremlin, die flexibiliteit biedt voor diverse toepassingen. Azure Cosmos DB levert hoge doorvoer en kan grote hoeveelheden streaminggegevens verwerken met consistente prestaties.

  • SQL Database is een volledig beheerde relationele databaseservice in de cloud. Het is gebouwd op de SQL Server-engine. Het biedt dus de mogelijkheden van een traditionele SQL Server-database met de voordelen van schaalbaarheid, betrouwbaarheid en verminderde beheeroverhead in de cloud.

Algemene mogelijkheden

Mogelijkheid Data-opslag in een data lake Fabric Evenementenhuis Azure Cosmos DB SQL Databank
Objectarchief voor algemeen gebruik Ja Nee Nee Nee
Streaminggegevensaggregaties Nee Ja Nee Nee
Lees- en schrijfbewerkingen met lage latentie voor JSON-documenten Nee Ja Ja Nee
Gestructureerde gegevensaggregaties voor Power BI Nee Ja Nee Ja
Prijsmodel Per GB of TB Fabric-SKU Aanvraageenheden Database transaction unit (DTU) of vCore

Bijdragers

Microsoft onderhoudt dit artikel. De volgende inzenders hebben dit artikel geschreven.

Hoofdauteur:

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen

Verken de volgende trainingsmodules: