Azure Event Hubs kiezen

Voltooid

Er zijn bepaalde toepassingen die een groot aantal gebeurtenissen voortbrengen uit bijna net zoveel bronnen. Naar dit soort situaties wordt vaak verwezen met de term "Big Data" en er is een unieke infrastructuur vereist om deze grote hoeveelheden gegevens te verwerken.

Stel dat u voor Contoso Aircraft Engines werkt. De motoren die uw werkgever fabriceert, zijn uitgerust met honderden sensoren. Voordat er met een vliegtuig kan worden gevlogen, worden de motoren elke ochtend aangesloten op een automatische test en doorlopen ze hun stappen. Daarnaast worden in de cache opgeslagen vluchtgegevens gestreamd wanneer het vliegtuig is aangesloten op de grondapparatuur.

U wilt historische sensorgegevens gebruiken om patronen in de sensormetingen te vinden, die erop wijzen dat er in de nabije toekomst waarschijnlijk een motorstoring zal plaatsvinden. U wilt dat de realtime sensormetingen worden vergeleken met deze storingspatronen. U kunt gebruikers dan bijna op hetzelfde moment waarschuwen als er voor een motor verontrustende metingen worden afgelezen.

Wat is Azure Event Hubs?

Event Hubs fungeert als intermediair binnen het communicatiepatroon publiceren-abonneren. In tegenstelling tot Event Grid is het echter geoptimaliseerd voor extreem hoge doorvoer, een groot aantal uitgevers, beveiliging en tolerantie.

Event Grid past perfect in het patroon publiceren-abonneren, omdat hiermee eenvoudigweg abonnementen worden beheerd en communicatie naar deze abonnees wordt gerouteerd, voert Event Hubs nogal wat extra services uit. Deze extra services maken het meer lijken op een servicebus of berichtenwachtrij dan een eenvoudige gebeurteniszender.

Partities

Wanneer Azure Event Hubs communicatieberichten ontvangt, verdeelt de oplossing deze over partities. Partities zijn buffers waarin de communicatieberichten worden opgeslagen. Vanwege de gebeurtenisbuffers zijn gebeurtenissen niet kortstondig en wordt een gebeurtenis niet gemist omdat een abonnee bezet of zelfs offline is. De abonnee kan altijd de buffer gebruiken om 'in te halen'. Gebeurtenissen blijven standaard 24 uur in de buffer voordat ze automatisch verlopen. De buffers worden partities genoemd omdat de gegevens hierover worden verdeeld. Elke partitie heeft een afzonderlijke set abonnees.

Capture

Azure Event Hubs kan al uw gebeurtenissen onmiddellijk naar Azure Data Lake of Azure Blob Storage verzenden zodat ze goedkoop en permanent kunnen worden bewaard.

Verificatie

Alle uitgevers worden geverifieerd en krijgen een token. Dit betekent dat Event Hubs gebeurtenissen van externe apparaten en mobiele apps kan accepteren zonder dat u zich zorgen hoeft te maken dat frauduleuze gegevens van prankers uw analyse kunnen ruïneren.

Event Hubs gebruiken

Azure Event Hubs biedt ondersteuning voor de pipelining van gebeurtenisstreams naar andere Azure-services. Wanneer u Azure Event Hubs bijvoorbeeld in combinatie met Azure Stream Analytics gebruikt, kan er in bijna realtime een complexe analyse van gegevens worden uitgevoerd en kunnen daarbij meerdere gebeurtenissen aan elkaar worden gerelateerd om patronen te zoeken. In dit geval zou Stream Analytics als een abonnee worden beschouwd.

Voor onze vliegtuigmotoren stellen we onze architectuur zo in dat de communicatie die afkomstig is uit onze motoren door Azure Event Hubs wordt geverifieerd. Vervolgens gebruiken we capture om alle gegevens op te slaan in Data Lake. Later kunnen we al die gegevens gebruiken om onze machine learning-modellen opnieuw te trainen en te verbeteren. Tot slot halen Stream Analytics-abonnees onze gebeurtenisstreams op. Stream Analytics maakt gebruik van ons machine learning-model om te zoeken naar patronen in de sensorgegevens die mogelijk problemen aangeven.

Omdat we over verschillende partities beschikken en elke engine alle eigen gegevens naar slechts één partitie verzendt, hoeft elke instantie van onze Stream Analytics-abonnee alleen maar met een subset van de totale hoeveelheid gegevens te werken. Het hoeft niet te filteren en correleren over alles.

Welke service moet ik kiezen?

Net als onze keuze voor een wachtrij, kan selecteren tussen deze twee services voor het leveren van gebeurtenissen in eerste instantie lastig lijken. Beide bieden ondersteuning voor de At Least Once-semantiek (minstens één maal verzenden).

Overweeg het gebruik van Azure Event Hubs als:

  • U een groot aantal uitgevers moet kunnen verifiëren.
  • U een stroom gebeurtenissen moet opslaan in Data Lake of Blob Storage.
  • U gegevens moet samenvoegen of analyses moet uitvoeren voor uw gebeurtenisstroom.
  • U behoefte hebt aan een betrouwbare uitwisseling van berichten of tolerantie.

Als u een eenvoudige infrastructuur voor publiceren/abonneren op gebeurtenissen nodig hebt met vertrouwde uitgevers (bijvoorbeeld uw eigen webserver), moet u Event Grid kiezen.

Met Azure Event Hubs kunt u een big data-pijplijn ontwikkelen die miljoenen gebeurtenissen per seconde kan verwerken met een lage latentie. Het kan gegevens verwerken uit gelijktijdige bronnen en deze routeren naar verschillende infrastructuren en analyseservices voor stroomverwerking. Hiermee is verwerking in realtime mogelijk en wordt ondersteuning geboden voor herhaald terugkijken van opgeslagen onbewerkte gegevens.