Realtid vs Batch Processing vs Stream Processing

apr 14, 2021
admin

Med den ständiga innovationstakten kan utvecklare förvänta sig att analysera terabyte och till och med petabyte av data under en given tidsperiod. (Data lockar trots allt till sig mer data.)

Detta ger naturligtvis många fördelar. Men vad ska man göra med alla dessa data? Det kan vara svårt att veta vilket som är det bästa sättet att accelerera och påskynda den här tekniken, särskilt när reaktionerna måste ske snabbt.

För företag som är digitalt först har en växande fråga blivit hur man bäst ska använda realtidsbehandling, batchbehandling och strömbearbetning. Det här inlägget kommer att förklara de grundläggande skillnaderna mellan dessa typer av databehandling.

Realtidsoperativsystem

Realtidsoperativsystem hänvisar vanligtvis till reaktioner på data. Ett system kan kategoriseras som realtid om det kan garantera att reaktionen kommer att ske inom en snäv tidsfrist i verkligheten, vanligtvis inom några sekunder eller millisekunder.

Ett av de bästa exemplen på realtidssystem är de som används på aktiemarknaden. Om en aktiekurs skulle komma från nätet inom 10 millisekunder efter det att den har placerats, skulle detta betraktas som en realtidsprocess. Om detta uppnåddes genom att använda en mjukvaruarkitektur som utnyttjar strömbehandling eller bara bearbetning i hårdvara är irrelevant; garantin om den snäva tidsfristen är det som gör det till realtid.

Andra situationer där det skulle vara fördelaktigt att använda realtidssystem är:

  • ATMs
  • Flygtrafikledning
  • Anti-låsbromssystem i din bil

Utmaningar

Men även om den här typen av system låter som en spelförändring, så är verkligheten att realtidssystem är extremt svåra att implementera genom användning av vanliga mjukvarusystem. Eftersom dessa system tar kontroll över programutförandet medför det en helt ny abstraktionsnivå.

Vad detta innebär är att skillnaden mellan kontrollflödet i ditt program och källkoden inte längre är uppenbar, eftersom realtidssystemet väljer vilken uppgift som ska utföras i det ögonblicket. Detta är fördelaktigt, eftersom det möjliggör högre produktivitet med hjälp av högre abstraktion och kan göra det lättare att utforma komplexa system, men det innebär mindre kontroll totalt sett, vilket kan vara svårt att felsöka och validera.

En annan vanlig utmaning med realtidsoperativsystem är att uppgifterna inte är isolerade enheter. Systemet bestämmer vilka som ska schemaläggas och skickar ut uppgifter med högre prioritet före uppgifter med lägre prioritet, vilket fördröjer deras utförande tills alla uppgifter med högre prioritet är slutförda.

Mer och mer börjar vissa programvarusystem att gå över till en variant av realtidsbehandling där tidsfristen inte är så absolut som en sannolikhet. Dessa system, som kallas mjuka realtidssystem, kan vanligtvis eller i allmänhet hålla tidsfristen, även om prestandan börjar försämras om alltför många tidsfrister missas.

Batchbearbetning

Batchbearbetning är behandling av en stor mängd data på en gång. Uppgifterna består lätt av miljontals poster för en dag och kan lagras på olika sätt (fil, post osv.). Jobben avslutas vanligtvis samtidigt i non-stop, sekventiell ordning.

Ett typexempel på ett batchbehandlingsjobb är alla de transaktioner som ett finansföretag kan lämna in under loppet av en vecka. Batching kan också användas i:

  • Löneprocesser
  • Linjedelfakturor
  • Försörjningskedja och uppfyllande

Batch databehandling är ett extremt effektivt sätt att bearbeta stora mängder data som samlas in under en viss tidsperiod. Det bidrar också till att minska de driftskostnader som företag kan spendera på arbetskraft eftersom det inte kräver specialiserade datainmatare för att stödja dess funktion. Den kan användas offline och ger chefer fullständig kontroll över när behandlingen ska påbörjas, oavsett om det är över natten eller i slutet av en vecka eller löneperiod.

Utmaningar

Som med allt annat finns det några nackdelar med att använda programvara för batchbehandling. Ett av de största problemen som företagen ser är att det kan vara svårt att felsöka dessa system. Om du inte har ett dedikerat IT-team eller en professionell person kan det vara skadligt att försöka åtgärda systemet när ett fel uppstår, vilket leder till att en extern konsult behöver hjälp.

Ett annat problem med batchbearbetning är att företag vanligtvis implementerar det för att spara pengar, men programvaran och utbildningen kräver en ordentlig summa utgifter i början. Chefer måste utbildas för att förstå:

  • Hur man schemalägger en batch
  • Vad som utlöser dem
  • Vad vissa meddelanden betyder

(Läs mer om modern batchbehandling.)

Strömbearbetning

Strömbearbetning är processen att nästan omedelbart kunna analysera data som strömmar från en enhet till en annan.

Denna metod för kontinuerlig beräkning sker i takt med att data flödar genom systemet utan några obligatoriska tidsbegränsningar för resultatet. Med det nästan omedelbara flödet kräver systemen inte att stora mängder data lagras.

Stream processing är mycket fördelaktigt om de händelser som du vill spåra sker ofta och nära varandra i tiden. Det är också bäst att använda om händelsen måste upptäckas direkt och besvaras snabbt. Stream processing är alltså användbart för uppgifter som bedrägeridetektion och cybersäkerhet. Om transaktionsdata strömbearbetas kan bedrägliga transaktioner identifieras och stoppas innan de ens är färdiga.

Utmaningar

En av de största utmaningarna som organisationer möter med strömbearbetning är att systemets långsiktiga datautmatningshastighet måste vara lika snabb eller snabbare än den långsiktiga datainmatningshastigheten, annars kommer systemet att börja få problem med lagrings- och minnesutrymmen.

En annan utmaning är att försöka komma fram till hur man på bästa sätt ska hantera den enorma mängd data som genereras och flyttas. För att hålla flödet av data genom systemet som fungerar på den högsta optimala nivån är det nödvändigt för organisationer att skapa en plan för hur man kan minska antalet kopior, hur man kan rikta in sig på beräkningskärnor och hur man kan utnyttja cache-hierarkin på bästa möjliga sätt.

Slutsats

Alla dessa system har fördelar, men i slutändan bör organisationerna överväga de potentiella fördelarna med vart och ett av dem för att avgöra vilken metod som är bäst lämpad för användningsfallet.

Att ytterligare resurser

  • BMC Workload Automation Blog
  • BMC Big Data Blog
  • Begynnarguide för automatisering av arbetsplatsen
  • Vad är ett batchjobb?
  • Vad är en datapipeline?

Hantera sl som för dina batch-tjänster joe goldberg från BMC Software

Hantera ett modernt tillvägagångssätt för batch-bearbetning

Arbetsprocessorkestrering av applikationer är ett modernt tillvägagångssätt för batch som kan förhindra produktionsstörningar för att leverera tjänster i tid, varje gång. Läs e-boken ’

Dessa inlägg är mina egna och representerar inte nödvändigtvis BMC:s ståndpunkt, strategier eller åsikter.

Se ett fel eller ha ett förslag? Meddela oss genom att skicka ett e-postmeddelande till [email protected].

Lämna ett svar

Din e-postadress kommer inte publiceras.