Gebeurtenisverwerking begrijpen

Voltooid

Azure Stream Analytics is een service voor complexe gebeurtenisverwerking en analyse van streaminggegevens. Stream Analytics wordt gebruikt voor het volgende:

  • Gegevens opnemen uit een invoer, zoals een Azure Event Hub, Azure IoT Hub of Azure Storage-blobcontainer.
  • De gegevens verwerken met behulp van een query om gegevenswaarden te selecteren, te projecteren en samen te voegen.
  • Schrijf de resultaten naar een uitvoer, zoals Azure Data Lake Storage Gen2, Azure SQL Database, Azure Cosmos DB, Azure Functions, Azure Event Hubs, Microsoft Power BI of andere.

Diagram met een Stream Analytics-taak met invoer, een query en uitvoer

Zodra een Stream Analytics-query is gestart, blijft deze continu uitvoeren, waarbij nieuwe gegevens worden verwerkt wanneer deze binnenkomen in de invoer en resultaten worden opgeslagen in de uitvoer.

Stream Analytics garandeert precies één gebeurtenisverwerking en ten minste eenmaal uitgevoerde levering van gebeurtenissen, zodat gebeurtenissen nooit verloren gaan. Exact-once-verwerking is gegarandeerd met geselecteerde uitvoer. Zie Garanties voor levering van gebeurtenissen voor meer informatie. Stream Analytics heeft ingebouwde herstelmogelijkheden voor het geval de levering van een gebeurtenis mislukt. Stream Analytics biedt ook ingebouwde controlepunten om de status van uw taak te behouden en herhaalbare resultaten te produceren. Omdat Azure Stream Analytics een PaaS-oplossing (Platform-as-a-Service) is, wordt deze volledig beheerd. De ingebouwde integratie met verschillende bronnen en bestemmingen biedt een flexibel programmeermodel. De Stream Analytics-engine maakt berekeningen in het geheugen mogelijk, zodat deze hoge prestaties biedt.

Azure Stream Analytics-taken en clusters

De eenvoudigste manier om Azure Stream Analytics te gebruiken, is door een Stream Analytics-taak te maken in een Azure-abonnement, de invoer(en) en uitvoer(en) te configureren en de query te definiëren die door de taak wordt gebruikt om de gegevens te verwerken. De query wordt uitgedrukt met behulp van sql-syntaxis (Structured Query Language) en kan statische referentiegegevens uit meerdere gegevensbronnen bevatten om opzoekwaarden op te geven die kunnen worden gecombineerd met de streaminggegevens die zijn opgenomen uit een invoer.

Als uw stroomprocesvereisten complex of resource-intensief zijn, kunt u een Stream Analytics cluster maken dat gebruikmaakt van dezelfde onderliggende verwerkingsengine als een Stream Analytics-taak, maar in een implementatie met één tenant (zodat uw verwerking niet wordt beïnvloed door andere klanten) en met configureerbare schaalbaarheid waarmee u de juiste balans tussen doorvoer en kosten voor uw specifieke scenario kunt definiëren. Zie Overzicht van Azure Stream Analytics cluster voor meer informatie.

Invoer

Azure Stream Analytics kan gegevens opnemen uit de volgende soorten invoer:

  • Azure Event Hubs
  • Azure IoT Hub
  • Azure Blob-opslag
  • Azure Data Lake Storage Gen2
  • Apache Kafka

Invoer wordt doorgaans gebruikt om te verwijzen naar een bron van streaminggegevens, die worden verwerkt als nieuwe gebeurtenisrecords worden toegevoegd. Daarnaast kunt u verwijzingsinvoer definiëren die worden gebruikt om statische gegevens op te nemen om de realtime gebeurtenisstreamgegevens te verbeteren. U kunt bijvoorbeeld een stroom realtime weerobservatiegegevens opnemen die een unieke id voor elk weerstation bevatten en die gegevens uitbreiden met een statische referentie-invoer die overeenkomt met de id van het weerstation naar een zinvollere naam.

Uitgangen

Uitvoer zijn bestemmingen waarnaar de resultaten van de stroomverwerking worden verzonden. Azure Stream Analytics biedt ondersteuning voor een breed scala aan uitvoersinks, die kunnen worden gebruikt voor het volgende:

  • Permanente resultaten voor verdere analyse; Bijvoorbeeld door te schrijven naar Azure Data Lake Storage Gen2, Azure SQL Database of Azure Cosmos DB.
  • Logboek- en telemetriegegevens op schaal analyseren; Bijvoorbeeld door resultaten te verzenden naar Azure Data Explorer.
  • Een realtime visualisatie van de gegevensstroom weergeven; Bijvoorbeeld door gegevens toe te voegen aan een gegevensset in Microsoft Power BI.
  • Gefilterde of samengevatte gebeurtenissen genereren voor downstreamverwerking; Bijvoorbeeld door resultaten naar Azure Event Hubs te schrijven.

Opvragen

De logica voor stroomverwerking wordt ingekapseld in een query. Query's worden gedefinieerd met behulp van SQL-instructies die gegevensvelden SELECTERENUIT een of meer invoergegevens, de gegevens filteren of aggregeren en de resultaten naar een uitvoer schrijven. De volgende query filtert bijvoorbeeld de gebeurtenissen uit de invoer van weergebeurtenissen om alleen gegevens van gebeurtenissen met een temperatuurwaarde kleiner dan 0 op te nemen en schrijft de resultaten naar de uitvoer van cold-temps :

SELECT observation_time, weather_station, temperature
INTO cold-temps
FROM weather-events TIMESTAMP BY observation_time
WHERE temperature < 0

Er wordt automatisch een veld met de naam EventProcessedUtcTime gemaakt om het tijdstip te definiëren waarop de gebeurtenis wordt verwerkt door uw Azure Stream Analytics-query. Stream Analytics gebruikt standaard het tijdstip waarop de gebeurtenis bij de invoer binnenkomt als tijdstempel, of u kunt expliciet een ander datum-/tijdveld opgeven met behulp van de TIMESTAMP BY-clausule, zoals in dit voorbeeld wordt weergegeven. Afhankelijk van de invoer van waaruit de streaminggegevens worden gelezen, kunnen een of meer potentiële tijdstempelvelden automatisch worden gemaakt; Wanneer u bijvoorbeeld een Event Hubs-invoer gebruikt, wordt een veld met de naam EventEnqueuedUtcTime gegenereerd om de tijd vast te leggen waarop de gebeurtenis is ontvangen in de Event Hub.

Het veld dat wordt gebruikt als een tijdstempel is belangrijk bij het samenvoegen van gegevens via tijdelijke vensters, wat hierna wordt besproken.

Geen code-editor

Als u liever uw streamverwerkingstaak bouwt zonder SQL te schrijven, bevat Azure Stream Analytics een editor zonder code. U kunt deze openen via de Azure Stream Analytics-portal (preview) of de Azure Event Hubs-portal. De editor zonder code biedt een canvas voor slepen en neerzetten waarin u invoerbronnen verbindt, transformaties toevoegt (inclusief tijdvensteraggregaties zoals tumbling-, hopping- en sessievensters) en uitvoer configureert, zonder code te schrijven. Voor meer informatie, zie No-code streamverwerking in Azure Stream Analytics.