Batch- en stroomverwerking begrijpen

Voltooid

Gegevensverwerking is niet meer dan het omzetten van onbewerkte gegevens in betekenisvolle informatie door middel van een proces. Er zijn twee algemene manieren om gegevens te verwerken:

  • Batchverwerking, waarin meerdere gegevensrecords worden verzameld en opgeslagen voordat ze samen in één bewerking worden verwerkt.
  • Streamverwerking, waarbij een gegevensbron voortdurend wordt bewaakt en in realtime wordt verwerkt wanneer er nieuwe gegevensgebeurtenissen plaatsvinden.

Informatie over batchverwerking

Bij batchverwerking worden nieuw binnenkomende gegevenselementen verzameld en opgeslagen en wordt de hele groep samen verwerkt als een batch. Wanneer elke groep precies wordt verwerkt, kan op een aantal manieren worden bepaald. U kunt bijvoorbeeld gegevens verwerken op basis van een gepland tijdsinterval (bijvoorbeeld elk uur) of de gegevensverwerking kan worden geactiveerd wanneer een bepaalde hoeveelheid gegevens is binnengekomen of als er een andere gebeurtenis plaatsvindt.

Stel dat u wegverkeer wilt analyseren door het aantal auto's op een stuk weg te tellen. Een batchverwerkingsmethode hiervoor vereist dat u de auto's op een parkeerplaats verzamelt en ze vervolgens in één bewerking telt terwijl ze in rust zijn.

Diagram van auto's die in een parkeerplaats worden geteld.

Als de weg bezet is, met een groot aantal auto's die met regelmatige tussenpozen rijden, kan deze aanpak onpraktisch zijn; en houd er rekening mee dat u geen resultaten krijgt totdat u een reeks auto's hebt geparkeerd en ze hebt geteld.

Een praktijkvoorbeeld van batchverwerking is de manier waarop creditcardbedrijven facturering verwerken. De klant ontvangt geen factuur voor elke afzonderlijke aankoop met zijn creditcard, maar ontvangt één maandelijkse factuur voor alle aankopen in die maand.

Voordelen van batchverwerking zijn onder andere:

  • Grote hoeveelheden gegevens kunnen op een geschikt tijdstip worden verwerkt.
  • Batchverwerking kan worden ingepland om te worden uitgevoerd op een tijdstip waarop computers of systemen voor niets anders worden gebruikt, zoals 's nachts of buiten piektijden.

Nadelen van batchverwerking zijn onder andere:

  • De vertraging in tijd tussen de opname van gegevens en het verkrijgen van resultaten.
  • Alle invoergegevens van een batchtaak moeten gereed zijn voordat een batch kan worden verwerkt. Dit betekent dat gegevens zorgvuldig moeten worden gecontroleerd. Problemen met gegevens, fouten en vastlopende programma's die zich voordoen tijdens de uitvoering van batchtaken, brengen het hele proces tot stilstand. De invoergegevens moeten zorgvuldig worden gecontroleerd voordat de taak opnieuw kan worden uitgevoerd. Zelfs kleine gegevensfouten kunnen voorkomen dat een batchtaak wordt uitgevoerd.

Inzicht in streamverwerking

Bij de verwerking van streaminggegevens wordt elk nieuw gegevenselement verwerkt wanneer dit binnenkomt. In tegenstelling tot batchverwerking is er geen wachttijd tot het volgende batchverwerkingsinterval. Gegevens worden in realtime verwerkt als afzonderlijke eenheden in plaats van een batch tegelijk te verwerken. Streamgegevensverwerking is nuttig in scenario's waarin nieuwe, dynamische gegevens continu worden gegenereerd.

Een betere benadering van ons hypothetische probleem met het tellen van auto's kan bijvoorbeeld zijn om een streaming-benadering toe te passen door de auto's in realtime te tellen wanneer ze passeren:

Diagram van auto's die worden geteld terwijl ze passeren.

In deze benadering hoeft u niet te wachten totdat alle auto's zijn geparkeerd om ze te gaan verwerken en u kunt de gegevens samenvoegen met tijdsintervallen; Bijvoorbeeld door het aantal auto's te tellen dat elke minuut passeert.

Voorbeelden van streaminggegevens in de praktijk zijn:

  • Een financiële instelling houdt wijzigingen op de aandelenmarkt in realtime bij, berekent het risico van potentiële verliezen en maakt automatisch een herverdeling van portefeuilles op basis van wijzigingen in aandelenkoersen.
  • Een online-gamingbedrijf verzamelt realtimegegevens over interacties tussen de speler en de game, en koppelt de gegevens terug naar het gamingplatform. Vervolgens worden de gegevens in realtime geanalyseerd, worden er prikkels en dynamische ervaringen geboden om spelers nog meer amusement te kunnen bieden.
  • Een vastgoedwebsite die een subset van gegevens van mobiele apparaten bijhoudt en realtime aanbevelingen doet voor eigenschappen die moeten worden bezocht op basis van hun geografische locatie.

Streamverwerking is ideaal voor bewerkingen waarbij tijd kritiek is en waarop een onmiddellijke reactie in realtime is vereist. Bijvoorbeeld in het geval van een systeem voor de detectie van rook en hitte in een gebouw. Dit systeem moet als er brand uitbreekt, alarmsignalen activeren en deuren ontgrendelen zodat bewoners onmiddellijk het gebouw kunnen verlaten.

Informatie over de verschillen tussen batch- en streaminggegevens

Afgezien van de manier waarop gegevens worden verwerkt bij batchverwerking en streamverwerking, zijn er nog andere verschillen:

  • Gegevensbereik: Batchverwerking kan alle gegevens in de gegevensset verwerken. Een streamverwerkingsproces heeft doorgaans alleen toegang tot de meest recent ontvangen gegevens, of binnen het bestek van een doorlopend tijdvenster (bijvoorbeeld de laatste 30 seconden).

  • Gegevensgrootte: Batchverwerking is geschikt voor het efficiënt verwerken van grote gegevenssets. Streamverwerking is bedoeld voor afzonderlijke records of microbatches die uit een klein aantal records bestaan.

  • Prestaties: Latentie is de tijd die nodig is om de gegevens te ontvangen en te verwerken. De latentie voor batchverwerking bedraagt doorgaans enkele uren. Streamverwerking gebeurt doorgaans onmiddellijk, met een latentie in de ordegrootte van seconden of milliseconden.

  • Analyse: Doorgaans gebruikt u batchverwerking om complexe analyses uit te voeren. Streamverwerking wordt gebruikt voor eenvoudige reactiefuncties, aggregaties of voor het berekenen van grootheden als voortschrijdende gemiddelden.

Verwerking van batches en gegevensstromen combineren

Veel grootschalige analyseoplossingen omvatten een combinatie van batch- en stroomverwerking, waardoor zowel historische als realtime gegevensanalyse mogelijk is. Het is gebruikelijk dat oplossingen voor stroomverwerking realtime gegevens vastleggen, verwerken door ze te filteren of te aggregeren, en deze te presenteren via realtime dashboards en visualisaties (bijvoorbeeld het totale aantal auto's dat binnen het huidige uur langs een weg is gepasseerd), terwijl de verwerkte resultaten ook worden bewaard in een gegevensarchief voor historische analyse naast batchgewijze gegevens (bijvoorbeeld om de analyse van verkeersvolumes in het afgelopen jaar mogelijk te maken).

Zelfs wanneer realtime analyse of visualisatie van gegevens niet vereist is, worden streamingtechnologieën vaak gebruikt om realtime gegevens vast te leggen en op te slaan in een gegevensarchief voor latere batchverwerking (dit is het equivalent van het omleiden van alle auto's die langs een weg naar een parkeerplaats reizen voordat ze worden geteld).

In het volgende diagram ziet u enkele manieren waarop batch- en stroomverwerking kan worden gecombineerd in een grootschalige architectuur voor gegevensanalyse.

Diagram van een architectuur voor gegevensanalyse met batch- en stroomverwerking.

  1. Gegevensgebeurtenissen uit een streaminggegevensbron worden in realtime vastgelegd.
  2. Gegevens uit andere bronnen worden opgenomen in een gegevensarchief (vaak een data lake) voor batchverwerking.
  3. Als realtime analyses niet vereist zijn, worden de vastgelegde streaminggegevens naar het gegevensarchief geschreven voor de volgende batchverwerking.
  4. Wanneer realtime analyses vereist zijn, wordt een technologie voor stroomverwerking gebruikt om de streaminggegevens voor te bereiden voor realtime analyse of visualisatie; vaak door de gegevens te filteren of samen te aggregatiëren via tijdelijke vensters.
  5. De niet-streaminggegevens worden periodiek verwerkt om deze voor te bereiden op analyse en de resultaten worden bewaard in een analytische gegevensopslag (ook wel een datawarehouse genoemd) voor historische analyse.
  6. De resultaten van stroomverwerking kunnen ook worden bewaard in de analytische gegevensopslag ter ondersteuning van historische analyse.
  7. Analytische en visualisatiehulpprogramma's worden gebruikt om de realtime en historische gegevens te presenteren en te verkennen.

Notitie

Veelgebruikte oplossingsarchitecturen voor gecombineerde batch- en stroomgegevensverwerking zijn lambda - en deltaarchitecturen . Details van deze architecturen vallen buiten het bereik van deze cursus, maar ze bevatten technologieën voor zowel grootschalige batchgegevensverwerking als realtime stroomverwerking om een end-to-end analytische oplossing te maken.