Real Time vs Batch Processing vs Stream Processing
Med den konstante innovationshastighed kan udviklere forvente at analysere terabytes og endda petabytes af data i et givet tidsrum. (Data tiltrækker trods alt flere data.)
Dette giver naturligvis mange fordele. Men hvad skal man gøre med alle disse data? Det kan være svært at vide, hvordan man bedst fremskynder og fremskynder disse teknologier, især når reaktionerne skal ske hurtigt.
For digital-første virksomheder er et voksende spørgsmål blevet, hvordan man bedst kan bruge realtidsbehandling, batchbehandling og streambehandling. Dette indlæg vil forklare de grundlæggende forskelle mellem disse databehandlingstyper.
Real-Time Operating Systems
Real-Time Operating Systems henviser typisk til reaktioner på data. Et system kan kategoriseres som realtid, hvis det kan garantere, at reaktionen vil ske inden for en snæver tidsfrist i den virkelige verden, normalt inden for få sekunder eller millisekunder.
Et af de bedste eksempler på et realtidssystem er de systemer, der anvendes på aktiemarkedet. Hvis en aktiekurs skal komme fra nettet inden for 10 millisekunder efter at være blevet placeret, vil dette blive betragtet som en realtidsproces. Om dette blev opnået ved hjælp af en softwarearkitektur, der udnyttede stream processing eller blot behandling i hardware, er irrelevant; det er garantien for den stramme deadline, der gør det til realtid.
Andre situationer, hvor det ville være gavnligt at bruge realtidssystemer, er:
- ATM’er
- Flyvekontrol
- Anti-lock bremsesystemer i din bil
Udfordringer
Mens denne type system lyder som en game changer, er virkeligheden, at realtidssystemer er ekstremt svære at implementere ved hjælp af almindelige softwaresystemer. Da disse systemer overtager kontrollen over programudførelsen, medfører det et helt nyt abstraktionsniveau.
Det betyder, at forskellen mellem kontrolflowet i dit program og kildekoden ikke længere er tydelig, fordi realtidssystemet vælger, hvilken opgave der skal udføres på det pågældende tidspunkt. Dette er en fordel, da det giver mulighed for højere produktivitet ved hjælp af højere abstraktion og kan gøre det lettere at designe komplekse systemer, men det betyder generelt mindre kontrol, hvilket kan være vanskeligt at fejlfinde og validere.
En anden almindelig udfordring med realtidsoperativsystemer er, at opgaverne ikke er isolerede enheder. Systemet beslutter, hvilke der skal planlægges, og sender opgaver med højere prioritet ud før opgaver med lavere prioritet, hvorved deres udførelse forsinkes, indtil alle opgaver med højere prioritet er afsluttet.
Mere og mere begynder nogle softwaresystemer at gå efter en smag af realtidsbehandling, hvor tidsfristen ikke er så absolut som en sandsynlighed. De kaldes bløde realtidssystemer og er i stand til normalt eller generelt at overholde deres deadline, selv om ydelsen vil begynde at falde, hvis for mange deadlines overskrides.
Batchbehandling
Batchbehandling er behandling af en stor mængde data på én gang. Dataene består let af millioner af poster for en dag og kan gemmes på forskellige måder (fil, post osv.). Opgaverne udføres typisk samtidigt i non-stop, sekventiel rækkefølge.
Et godt eksempel på et batchbehandlingsjob er alle de transaktioner, som en finansiel virksomhed kan indsende i løbet af en uge. Batching kan også bruges i:
- Lønprocesser
- Linjedelfakturaer
- Lagekæde og opfyldelse
Batch databehandling er en yderst effektiv måde at behandle store datamængder, der indsamles over en periode. Det hjælper også med at reducere de driftsomkostninger, som virksomheder kan bruge på arbejdskraft, da det ikke kræver specialiserede dataindtastningsmedarbejdere til at støtte dets funktion. Det kan bruges offline og giver lederne fuld kontrol over, hvornår behandlingen skal starte, uanset om det er i løbet af natten eller i slutningen af en uge eller lønperiode.
Udfordringer
Som med alt andet er der et par ulemper ved at bruge batchbehandlingssoftware. Et af de største problemer, som virksomhederne ser, er, at det kan være vanskeligt at fejlfinde disse systemer. Hvis du ikke har et dedikeret it-team eller en professionel, kan det være skadeligt at forsøge at reparere systemet, når der opstår en fejl, hvilket gør det nødvendigt at få en ekstern konsulent til at hjælpe.
Et andet problem med batchbehandling er, at virksomheder normalt implementerer det for at spare penge, men softwaren og træningen kræver en ordentlig mængde udgifter i starten. Ledere skal uddannes til at forstå:
- Hvordan man planlægger en batch
- Hvad der udløser dem
- Hvad visse notifikationer betyder
(Læs mere om moderne batchbehandling.)
Stream Processing
Stream Processing er en proces, hvor man næsten øjeblikkeligt kan analysere data, der strømmer fra en enhed til en anden.
Denne metode til kontinuerlig beregning sker, mens data strømmer gennem systemet uden obligatoriske tidsbegrænsninger på output. Med det næsten øjeblikkelige flow kræver systemerne ikke, at der lagres store datamængder.
Stream processing er yderst fordelagtigt, hvis de begivenheder, du ønsker at spore, sker ofte og tæt på hinanden i tid. Det er også bedst at udnytte, hvis hændelsen skal opdages med det samme og reageres hurtigt. Stream processing er således nyttig til opgaver som f.eks. opdagelse af svig og cybersikkerhed. Hvis transaktionsdata strømbehandles, kan svigagtige transaktioner identificeres og stoppes, før de overhovedet er afsluttet.
Udfordringer
En af de største udfordringer, som organisationer står over for med strømbehandling, er, at systemets langsigtede dataoutputhastighed skal være lige så hurtig eller hurtigere end den langsigtede datainputhastighed, ellers vil systemet begynde at få problemer med lagerplads og hukommelse.
En anden udfordring er at forsøge at finde ud af, hvordan man bedst håndterer den enorme mængde data, der genereres og flyttes. For at holde datastrømmen gennem systemet i gang på det mest optimale niveau, er det nødvendigt for organisationer at lave en plan for, hvordan man reducerer antallet af kopier, hvordan man målretter beregningskerner, og hvordan man udnytter cache-hierarkiet bedst muligt.
Slutning
Selv om alle disse systemer har fordele, bør organisationer i sidste ende overveje de potentielle fordele ved hver enkelt for at beslutte, hvilken metode der er bedst egnet til den pågældende use-case.
Til yderligere ressourcer
- BMC Workload Automation Blog
- BMC Big Data Blog
- Begynderguide til Workplace Automation
- Hvad er et Batch Job?
- Hvad er en Data Pipeline?
Administrer sl som for dine batch-tjenester joe goldberg fra BMC Software
Få en moderne tilgang til batchbehandling
Disse indlæg er mine egne og repræsenterer ikke nødvendigvis BMC’s holdning, strategier eller mening.
Ser du en fejl eller har du et forslag? Lad os venligst vide det ved at sende en e-mail til [email protected].