Behovet av att analysera data i realtid nämns allt oftare i diskussioner om beslutsstöd. Men vad betyder realtid egentligen? När är nu?

En rimlig definition är att realtidsdata är data som är tillgängliga direkt efter att de samlats in. Lägg på tiden det krävs för att analysera dessa data och vi har realtidsanalys, så långt det är möjligt. Frågan är hur ofta det finns ett verkligt krav på realtidsanalys. Om ett fraktföretag släpper i väg sina bilar kl 08:00 på morgonen, är det då verkligen nödvändigt att kontinuerligt, under dagen, uppdatera information om hur många bilar som har kört i väg? Exemplen är otaliga när det faktiskt inte är nödvändigt med realtidsinformation mer än under ett specifikt antal tillfällen under ett dygn, eller en vecka eller någon annan tidsperiod.

Läs mer: Analysen viktigare än datan

Ett tecken på att den här insikten sjunkit in hos vissa är att begrepp som ”right-time” och ”fast data” används för att beskriva tillämpningar med höga krav på snabb tillgänglighet till information. Yves de Montcheuil formulerade följande intressanta definition i Infoworld: ”Realtidsdata ger användare möjlighet att påverka utfallet av pågående processer”. Han skriver vidare: ”Realtid måste ställasmot etablerat faktum (”post-mortem”) som handlar om att förbättra en process nästa gång den genomförs”.

Om vi lämnar de filosofiska aspekterna kan man konstatera att behovet av snabb och kontinuerlig tillgång till färska data och snabba analyser av dem ökar. Det går att kategorisera önskemål om snabba analyser av data i två grupper:

När det verkligen krävs snabba analyser av färska data för att en tillämpning överhuvudtaget ska vara möjlig. Ett exempel är att kontinuerligt bevaka medelvärden för ett stort antal sensorer, ett annat att kontinuerligt kontrollera genomströmningshastigheten i kassorna i en butikskedja.

När det finns ett missnöje med hur färsk information är och hur ofta den levereras. Ett typfall är att höga chefer vill se färskare ekonomiska nyckeltal oftare.

Läs mer: Tacka it för tillväxten

Vilken anledningen till en realtidssatsning än är så finns det olika alternativ för att genomföra den. Det positiva är att det aldrig tidigare funnits så många billiga och lättillgängliga tekniska lösningar för att ordna realtidsanalys.

Analysera direkt eller spara data?


Niklas Packendorff, lösningsspecialist på SAP.

Hur går realtidsanalys av data till? Det går att dela in lösningarna i två olika grupper:

Analysen sker direkt, på strömmande data. Det kan handla om allt från att hitta specifika värden och att göra beräkningar av till exempel medelvärden för ett stort antal värden under en viss tidsperiod, till att hitta mönster i datamängder.

Data som genereras lagras, till exempel i en relationsdatabas eller i en Hadoopimplementation, för att sedan analyseras på ett traditionellt sätt, till exempel med ett beslutsstödsverktyg.

Läs mer: Multidatabaser blir nästa stora grej

– Det finns också mellanting. Man kanske letar efter mönster i strömmande data som sedan lagras för att användas i andra analyser, säger Niklas Packendorff, lösningsspecialist på SAP.

Det finns olika varianter inom de olika alternativen. Ett exempel är att analyser av strömmande data genomförs på alla datavärden, medan bara vissa värden eller aggregat av värden lagras.

Läs mer: Forskare sammanstrålar för bättre dataanalys

Vilka alternativ som kommer till användning bestäms lämpligtvis av en kompromiss mellan behovet av realtidsanalys och hur mycket en lösning får kosta i form av pengar, resurser och tid för utveckling. En generell iakttagelse är att ju fler olika strategier som kommer i bruk, till exempel för att analysera strömmande data och för att lagra data för senare analys, desto större risk är det att fler tekniska komponenter behövs. Och ju fler tekniska komponenter som behövs, desto mer komplex blir den tekniska arkitekturen, med allt vad det medför av högre kostnader och större risk för fel.

Apache ofta arkitekten


Johan Pettersson, konsult på Big Data AB. Foto: Kristina Sahlén.

Johan Pettersson som är konsult på Big Data AB har arbetat en del med realtidsanalys. Han använder ofta mjukvaruprodukter som har sitt ursprung hos Apache Software Foundation. I botten av lösningarna finns ofta ett Hadoopkluster, alltså ett antal samverkande datorer som hanterar data inom ramen för Apaches Hadoopplattform, vilket innebär att filsystemet HDFS och programmeringsmodellen Mapreduce för distribuerad databehandling används.

– Det blir mer och mer vanligt att använda Yarn, som kan beskrivas som ett operativsystem för distribuerade applikationer i kluster, säger Johan Pettersson.

Läs mer: Fem förutsägelser för big data

Apaches Yarn används för hantera datorresurser i kluster och för att schemalägga jobb som ska köras. Nästabyggsten är Apaches Kafka som är en köhanterare, eller meddelandehanterare, för att hantera dataströmmar.

För att få ihop realtidsanalys är det vanligt att använda Apaches ramverk Spark för klusterlösningar. Spark kan användas för att ersätta delar av Hadoop, som användningen av Mapreduce, men analyser kan fortfarande göras på data som lagras med filsystemet HDFS. Spark kan också användas för att analysera strömmande data.

Läs mer: Pigga utmanare tar upp databasstriden

Utöver de nämnda Apachelösningarna finns det fler, som plattformen Storm för realtidsbearbetning, till exempel analys av strömmande data. Ramverket Tez används som ett alternativ till Mapreduce för hantering av data. Mesos är ett annat ramverk som är ett alternativ till Yarn för att hantera resurser som processorer, minne och lagring för hela datacenter och för molnmiljöer, i stället för att göra det baserat på fysiska eller virtuella servrar.