Azure Event Hub

Azure Event Hub

Inleiding tot Azure Event Hubs

Azure Event Hubs is een volledig beheerde, real-time data-inname service die is ontworpen om miljoenen gebeurtenissen per seconde te streamen en te verwerken. Het wordt vaak gebruikt voor het verzamelen van log- en telemetriegegevens van verschillende bronnen zoals applicaties, apparaten en infrastructuur, en kan deze gegevens vervolgens doorsturen naar andere services voor opslag of verdere verwerking.

Event Hubs speelt een cruciale rol in big data architecturen door als een buffer en router te fungeren voor enorme hoeveelheden binnenkomende gegevens, waardoor analyses in real-time mogelijk zijn en vertragingen worden geminimaliseerd.

Belangrijkste functies van Event Hubs

  • Massale gegevensinname: Ondersteunt het streamen van miljoenen gebeurtenissen per seconde.

  • Real-time verwerking: Integreert naadloos met Azure Stream Analytics en Apache Kafka voor real-time data-analyse.

  • Betrouwbare gegevensopslag: Biedt robuuste replicatie en retentieopties om gegevens veilig te bewaren.

  • Flexibele schaalbaarheid: Schaal dynamisch op of af op basis van de hoeveelheid binnenkomende gegevens.

  • Beveiliging: Ondersteunt end-to-end versleuteling en integratie met Azure Active Directory (AAD) voor rolgebaseerde toegangscontrole.

Basisconcepten van Azure Event Hubs

  • Event Hub: Dit is de centrale entiteit in Event Hubs, waar gebeurtenissen naar worden verzonden. Het kan worden gezien als een “poort” die gebeurtenissen accepteert en distribueert.

  • Event Producer: Een applicatie of service die gegevens naar een Event Hub stuurt.

  • Partitions: Fysieke logische indelingen van de Event Hub, die zorgen voor parallelle verwerking van gegevens.

  • Event Consumer: Een applicatie die gebeurtenissen leest van een Event Hub, zoals een log-analyse systeem of een data pipeline.

Event Schema

Hieronder vindt u de structuur en de validatieregels voor een JSON-object dat een 'Event' representeert volgens de aangeleverde JSON-schema-definitie. Deze handleiding is bedoeld voor ontwikkelaars en system integrators die werken met de Event datastructuur binnen systemen die gebruikmaken van JSON voor data uitwisseling.

Schema Diagram

event_schema_diagram.png

Schema Overzicht

Eigenschap

Type

Beschrijving

Vereisten

Eigenschap

Type

Beschrijving

Vereisten

aanvraag

Object

Bevat de aanvraaggegevens

Vereist

aanvraagId

Integer

Unieke ID voor de aanvraag

1000000000 - 9999999999

aansluitingsObjecten

Array

Lijst van aansluitingsobjecten

Unieke items, objectId vereist

objectId

Integer

Unieke ID voor het aansluitingsobject

1000000000 - 9999999999

disciplineIds

Array

Unieke IDs voor de disciplines

1000000000 - 9999999999 (array)

bijlageIds

Array

IDs van bijlagen

1000000000 - 9999999999

operation

String

Operatie die uitgevoerd moet worden

4-64 alfanumerieke tekens of underscores, Vereist

aanvraag Object Structuur

Het aanvraag object is het kernonderdeel van de Event structuur.

aanvraagId

  • Type: Integer

  • Omschrijving: Een unieke identificatiecode voor de aanvraag.

  • Restricties: Moet een waarde hebben tussen 1.000.000.000 en 9.999.999.999.

aansluitingsObjecten Array

  • Type: Array

  • Omschrijving: Een verzameling van objecten die de verschillende aansluitingsentiteiten beschrijven.

Structuur van objecten in aansluitingsObjecten

  • objectId

    • Type: Integer

    • Omschrijving: Unieke identificatiecode voor een aansluitingsobject.

    • Restricties: Waarde tussen 1.000.000.000 en 9.999.999.999.

  • disciplineIds

    • Type: Array

    • Omschrijving: Een lijst van unieke identificatiecodes voor de betrokken disciplines.

    • Restricties: Unieke items binnen de gespecificeerde numerieke grenzen.

bijlageIds Array

  • Type: Array

  • Omschrijving: Een lijst van identificatiecodes voor bijlagen.

  • Restricties: Waarden tussen 1.000.000.000 en 9.999.999.999.

operation String

  • Type: String

  • Omschrijving: De naam van de operatie die moet worden uitgevoerd.

  • Restricties: Moet voldoen aan de reguliere expressie die een patroon van 4 tot 64 alfanumerieke tekens of underscores specificeert.

Beschikbare operaties

  • AanvraagIngediend - Deze operatie geeft aan dat de aanvraag succesvol is ingediend en klaar is om opgehaald te worden door de netbeheerder.

  • Intake - Deze operatie geeft aan dat er een intake vraag beschikbaar is voor de netbeheerder.

  • OfferteUpdate - Deze operatie geeft aan dat er een handmatige status update is voor een offerte (bv. aanvrager heeft offerte goedgekeurd/geweigerd).

  • StatusGeannuleerd - Deze operatie geeft aan dat er een status update is geweest met status 9.5

  • StatusGeannuleerdBuitenLIP - Deze operatie geeft aan dat er een status update is geweest met status 9.6

Voorbeelden

Voorbeeld 1: Alleen een aanvraagId

{ "aanvraag": { "aanvraagId": 1000000001, "aansluitingsObjecten": [], "bijlageIds": [] }, "operation": "AanvraagIngediend" }

Voorbeeld 2: Aansluitingsobjecten zonder disciplineIds

{ "aanvraag": { "aanvraagId": 1000000002, "aansluitingsObjecten": [ { "objectId": 1000000001 }, { "objectId": 1000000002 } ], "bijlageIds": [] }, "operation": "Intake" }

Voorbeeld 3: Met aansluitingsobjecten en disciplineIds

{ "aanvraag": { "aanvraagId": 1000000003, "aansluitingsObjecten": [ { "objectId": 1000000003, "disciplineIds": [1000000004, 1000000005] }, { "objectId": 1000000004, "disciplineIds": [1000000006, 1000000007] } ], "bijlageIds": [1000000008, 1000000009] }, "operation": "OfferteUpdate" }

JSON Schema

{ "$id": "<https://example.com/person.schema.json>", "$schema": "<https://json-schema.org/draft/2020-12/schema>", "type": "object", "description": "Event", "additionalProperties": false, "properties": { "aanvraag": { "type": "object", "additionalProperties": false, "properties": { "aanvraagId": { "type": "integer", "minimum": 1000000000, "maximum": 9999999999 }, "aansluitingsObjecten": { "type": "array", "uniqueItems": true, "items": { "type": "object", "additionalProperties": false, "properties": { "objectId": { "type": "integer", "minimum": 1000000000, "maximum": 9999999999 }, "disciplineIds": { "type": "array", "uniqueItems": true, "items": { "type": "integer", "minimum": 1000000000, "maximum": 9999999999 } } }, "required": [ "objectId" ] } }, "bijlageIds": { "type": "array", "items": { "type": "integer", "minimum": 1000000000, "maximum": 9999999999 } } }, "required": [ "aanvraagId" ] }, "operation": { "type": "string", "pattern" : "^[a-zA-Z_]{4,64}$" } }, "required": [ "aanvraag", "operation" ] }

Related content