Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 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:
- Pratima Valavala | Hoofdoplossingsarchitect
Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.
Volgende stappen
Verken de volgende trainingsmodules:
- Azure Functions verkennen
- Aan de slag met Stream Analytics
- Geavanceerde streaminggegevenstransformaties uitvoeren
- Apache Spark gebruiken in Azure Databricks