Hopp til hovedinnhold

Teknologi / 4 minutter /

Hvordan håndtere Big Data

Størsteparten av tilgjengelige data har ikke den strukturen man finner i databaser og regneark. Så hvordan kan man trekke ut og håndtere de store datamengdene man gjerne kaller Big Data?

Tradisjonelt er det svært strukturerte data man er flinke til å dra verdier ut av. Dette er typisk data man kan beskrive i form av definerte tabeller og som er egnet for å lagres i relasjonsdatabaser og behandles i regneark. Samtidig er dette den typen data det finnes minst av. Størsteparten av tilgjengelige data har ikke en slik definert og fast struktur.

Big Data handler om å dra verdier ut av hele spekteret av data. Her vil jeg gå inn på teknologier som gjør dette mulig. I en tidligere bloggartikkel har jeg skrevet om verdien av Big Data

Hadoop

I 2004 publiserte Jeffrey Dean og Sanjay Ghemawat fra Google artikkelen "MapReduce: Simplified Data Processing on Large Clusters". Denne artikkelen beskriver hvordan et nettverk av datamaskiner kan bygge et alternativ til tradisjonelle stormaskiner for å håndtere og prosessere store datamengder. Google kaller denne programmeringsmodellen MapReduce og benytter den som basis for det meste av tjenestene de tilbyr. Fordelen med denne arkitekturen er at både prosesseringskraften og tilknyttede kostnader skalerer lineært.

Hadoop tilbyr et rammeverk for å bygge dataprosesserende tjenester på toppen av svært mange datamaskiner

Innenfor åpen kildekode-miljøet har man bygget et åpent alternativ til MapReduce som kalles Apache Hadoop. Hadoop tilbyr et rammeverk for å bygge dataprosesserende tjenester på toppen av svært mange datamaskiner. Hadoop tilbyr et abstraksjonsnivå over de allokerte maskinene slik at de fremstår som en enhet.

Dersom behovet for prosesseringskraft øker kan man legge til flere allokerte maskiner, uten at programvaren som kjører i Hadoop må endres. Hadoop tar av seg jobben med å distributere data, skedulere prosesseringsjobber, og håndtere maskinfeil.

NoSQL

Relasjonsdatabaser er en optimalisert teknologi som håndterer data med en fast og tabulær struktur svært godt. Miljøet rundt NoSQL er i stor grad spunnet frem fra store internettselskaper som Google, Amazon og Facebook som har utfordringer med å lagre store mengder med data som tradisjonelle relasjonsdatabaser ikke håndterer.

Mange NoSQL-systemer har samme skaleringsevne som mye av annen teknologi innenfor Big Data, nemlig muligheten til å skalere lineært

NoSQL er kommet som et komplement og alternativ til tradisjonelle relasjonsdatabaser og dekker et bredt spekter av databaseteknologi som gjør det mulig å lagre mer ustrukturerte data og spre lagringen over flere servere.

NoSQL databaser kan grupperes innenfor key-value-databaserBigTable-implementasjoner, dokumentdatabaser og grafdatabaser. Hver av disse har ulike egenskaper knyttet til håndtering av datastruktur og datamengder. Mange NoSQL-systemer har samme skaleringsevne som mye av annen teknologi innenfor Big Data, nemlig muligheten til å skalere lineært. Hvis behovet for lagring øker, møter man dette behovet ved å allokere flere maskiner.

Strømprosessering (Storm og S4)

Rammeverk for å prosessere store datamengder, som Apache Hadoop, håndterer dataene ved å kjøre prosesseringsoppgavene i batch. Denne fremgangsmåten har sine klare begrensninger hvis man trenger å prosessere og vise resultatene i sanntid. Rammeverk for strømprosessering som Storm og S4 har en litt annen tilnærming til prosessering av data en Apache Hadoop.

Med strømprosessering overvåker man datastrømmene kontinuerlig, reagerer på mønstre i dataene og vedlikeholder relevante tilstander

I stedet for å lage batchjobber som prosesserer store mengder data ved hver kjøring, overvåker man datastrømmene kontinuerlig, reagerer på mønstre i dataene og vedlikeholder relevante tilstander. I likhet til Hadoop, settes denne typen strømprosesseringsrammeværk opp på toppen av flere allokerte maskiner.

Natural Language Processing (NLP)

Verktøy innenfor naturlig språk-prosessering (NLP) gjør det mulig å dra mening og struktur ut av fritekst. Dette inkluderer teknologi som kan bryte ned og forstå setningstrukturer, finne prominente ord og fraser, og trekke ut hvor positiv eller negativ en forfatter er til innhold i tekster.

Ved å bygge NLP inn i arkitekturer som utnytter flere maskiner i parallell er det mulig å bygge tjenester som forstår fritekst og som takler stor last

NLP verktøy er typisk prosesseringsintensive og krever mye maskinkraft, men ved å bygge det inn i arkitekturer som utnytter flere maskiner i parallell er det mulig å bygge tjenester som forstår fritekst og som takler stor last. NLP er ofte en nyttig og sentral komponent i systemer som analyserer innhold fra sosiale medier.

Teknologi som skalerer

Jeg har beskrevet teknologiområder som gjør det mulig å behandle store datamengder, datastrømmer, og data med fleksibel struktur.

Felles for disse teknologiområdene er at det er teknologi som skalerer og som gjør det mulig å dra verdier ut av ustrukturerte datakilder. Ved å tenke skalerbarhet kan man håndtere store datamengder i dag og man legger til rette for håndtering av ytterligere datavekst i fremtiden.