Förstå batch- och dataströmbearbetning
Databehandling handlar helt enkelt om att omvandla rådata till meningsfull information genom en process. Det finns två allmänna sätt att bearbeta data:
- Batchbearbetning, där flera dataposter samlas in och lagras innan de bearbetas tillsammans i en enda åtgärd.
- Dataströmbearbetning, där en datakälla ständigt övervakas och bearbetas i realtid när nya datahändelser inträffar.
Förstå batchbearbetning
Vid batchbearbetning samlas nya dataelement in och lagras, och hela gruppen bearbetas tillsammans som en batch. Exakt när varje grupp bearbetas kan fastställas på flera olika sätt. Du kan till exempel bearbeta data baserat på ett schemalagt tidsintervall (till exempel varje timme), när en viss mängd data har anlänt eller till följd av en annan händelse.
Anta till exempel att du vill analysera vägtrafiken genom att räkna antalet bilar på en vägsträcka. En batchbearbetningsmetod för detta skulle kräva att du samlar in bilarna på en parkeringsplats och sedan räknar dem i en enda åtgärd medan de är i vila.
Om vägen är upptagen, med ett stort antal bilar som kör med jämna mellanrum, kan detta tillvägagångssätt vara opraktiskt; och observera att du inte får några resultat förrän du har parkerat ett parti bilar och räknat dem.
Ett verkligt exempel på batchbearbetning är hur kreditkortsföretag hanterar fakturering. Kunden får inte en faktura för varje separat kreditkortsköp utan en månadsfaktura med alla inköp under månaden.
Här är några av fördelarna med batchbearbetning:
- Stora mängder data kan bearbetas vid en lämplig tidpunkt.
- Bearbetningen kan schemaläggas vid en tidpunkt när datorer eller system normalt är inaktiva, till exempel på natten eller när belastningen annars är låg.
Här är några av nackdelarna med batchbearbetning:
- Tidsfördröjningen mellan att data matas in och att de bearbetas.
- Alla indata i ett batchjobb måste vara redo innan batchen kan bearbetas. Det här innebär att data måste kontrolleras noga. Problem med data, fel och programkrascher under ett batchjobb kan stoppa hela processen. Indata måste kontrolleras noga innan jobbet kan köras igen. Även mindre datafel kan förhindra att ett batchjobb körs.
Förstå dataströmbearbetning
Vid strömmande bearbetning bearbetas varje ny dataelement när det tas emot. Till skillnad från batchbearbetning finns det ingen väntan till nästa batchbearbetningsintervall – data bearbetas som enskilda enheter i realtid i stället för att bearbetas en batch i taget. Dataflödesbearbetning är fördelaktigt i scenarier där nya dynamiska data genereras kontinuerligt.
En bättre metod för vårt hypotetiska bilräkningsproblem kan till exempel vara att tillämpa en strömningsmetod genom att räkna bilarna i realtid när de passerar:
I den här metoden behöver du inte vänta tills alla bilar har parkerat för att börja bearbeta dem, och du kan aggregera data över tidsintervall. till exempel genom att räkna antalet bilar som passerar varje minut.
Verkliga exempel på strömmande data är:
- Ett finansinstitut spårar förändringar på aktiemarknaden i realtid, beräknar riskvärden och balanserar automatiskt om portföljer baserat på de nya aktiekurserna.
- Ett onlinespelföretag samlar in realtidsdata om interaktionen mellan spelare och spel, och matar data till spelplattformen. Data analyseras sedan i realtid så att företaget kan ge spelarna incitament och dynamiska upplevelser.
- En fastighetswebbplats som spårar en delmängd data från mobila enheter och ger fastighetsrekommendationer i realtid för egenskaper som ska besökas baserat på deras geo-plats.
Strömmande bearbetning passar perfekt för tidskänsliga åtgärder där det krävs svar i realtid. Ett system som övervakar rök- och värmeutveckling i en byggnad måste till exempel kunna utlösa larm och låsa upp dörrar så att de boende kan fly omedelbart om det börjar brinna.
Förstå skillnaden mellan batchdata och strömmande data
Det finns fler skillnader mellan batchbearbetning och strömmande bearbetning än bara själva hanteringen:
Dataomfång: Batchbearbetning kan bearbeta alla data i datamängden. En strömmande bearbetning har vanligtvis bara tillgång till de data som tagits emot senast, eller inom en rullande tidsperiod (till exempel de senaste 30 sekunderna).
Datastorlek: Batchbearbetning är lämplig för effektiv hantering av stora datamängder. Strömmande bearbetning är avsedd för enskilda poster eller mikrobatchar med få poster.
Prestanda: Svarstid är den tid det tar för data att tas emot och bearbetas. Svarstiden vid batchbearbetning är vanligtvis några timmar. Strömmande bearbetning utförs vanligtvis omedelbart med svarstider på några sekunder eller millisekunder.
Analys: Du använder vanligtvis batchbearbetning för att utföra komplexa analyser. Strömmande bearbetning används till enkla svarsfunktioner, aggregeringar eller beräkningar som löpande medelvärden.
En kombination av batchbearbetning och strömmande bearbetning
Många storskaliga analyslösningar omfattar en blandning av batch- och dataströmbearbetning, vilket möjliggör både historisk dataanalys och realtidsdataanalys. Det är vanligt att dataströmbearbetningslösningar samlar in realtidsdata, bearbetar dem genom att filtrera eller aggregera dem och presentera dem via realtidsinstrumentpaneler och visualiseringar (till exempel att visa den löpande summan av bilar som har passerat längs en väg inom den aktuella timmen), samtidigt som de bearbetade resultaten bevaras i ett datalager för historisk analys tillsammans med batchbearbetade data (till exempel för att möjliggöra analys av trafikvolymer under det senaste året).
Även om realtidsanalys eller visualisering av data inte krävs används strömningstekniker ofta för att samla in realtidsdata och lagra dem i ett datalager för efterföljande batchbearbetning (detta motsvarar att omdirigera alla bilar som färdas längs en väg till en parkeringsplats innan de räknas).
Följande diagram visar några sätt på vilka batch- och dataströmbearbetning kan kombineras i en storskalig dataanalysarkitektur.
- Datahändelser från en strömmande datakälla samlas in i realtid.
- Data från andra källor matas in i ett datalager (ofta en datasjö) för batchbearbetning.
- Om realtidsanalys inte krävs skrivs de insamlade strömmande data till datalagret för efterföljande batchbearbetning.
- När realtidsanalys krävs används en dataströmbearbetningsteknik för att förbereda strömmande data för realtidsanalys eller visualisering. ofta genom att filtrera eller aggregera data över tidsmässiga fönster.
- Icke-strömmande data bearbetas regelbundet för att förbereda dem för analys, och resultaten sparas i ett analysdatalager (kallas ofta ett informationslager) för historisk analys.
- Resultatet av dataströmbearbetningen kan också sparas i analysdatalagret för att stödja historisk analys.
- Analys- och visualiseringsverktyg används för att presentera och utforska realtidsdata och historiska data.
Kommentar
Vanliga lösningsarkitekturer för kombinerad bearbetning av batch- och dataströmmar är lambda - och deltaarkitekturer . Information om dessa arkitekturer ligger utanför den här kursens omfång, men de innehåller tekniker för både storskalig batchdatabearbetning och dataströmbearbetning i realtid för att skapa en analyslösning från slutpunkt till slutpunkt.