En elefant i din IT-miljö löser inte alla problem

Topic: advanced analytics

Fredrik Moeschlin
26.04.2016

För många är Hadoop den lösning man först tänker på för Big Data. Visst är det ett intressant verktyg men det finns ingen färdig lösning som passar alla behov. Det behövs en bra översikt innan man väljer en viss teknik.

Hadoop – ett tekniskt ramverkHadoop

För den som googlar efter bilder på ”big data” kommer kategorin ”Hadoop” upp direkt vid sidan om visualisering, Internet of Things och Analytics. Apache Hadoop består i grunden av ett distribuerat filsystem (HDFS), ett verktyg för att styra arbeten (YARN) samt metoder för att bearbeta data (MapReduce och tillägg). Det växte fram ur behovet av att tugga igenom gigantiska (TB++) datamängder i batch-körningar där allt kan parallelliseras. Detta är en bra teknik i många fall men ingen generisk analysmiljö för att utvinna värde ur data för alla företag i alla situationer. Det är just bara en teknik bland många.

google search big data Hadoop i topp när man söker efter "big data"

Avancerad analys är mycket mer

Det finns flera krav på en bra plattform för avancerad analys och inget verktyg för alla situationer. Låt oss ge lite perspektiv på Hadoop, när det passar och vilka begränsning det har. Dessutom: vad innebär alla alternativ med parallelliserade relationsdatabaser, analys i arbetsminnet med mera? Vilken lösning ger mest värde för pengarna?

Flera begränsningar med Hadoop

Ledsen elefantApache Hadoop är ett open-source-ramverk för utfördelad lagring och bearbetning av data. Grundtanken är att data är parallelliserbara (kan splittas i likartade mindre bitar) och kan fördelas ut på en stor mängd noder som hanterar lagring och beräkning. För att bearbeta data används MapReduce skrivet i Java vilket är låg nivå om man jämför med till exempel SQL. Hadoop är byggt för att köras på vanlig hårdvara och skyddar sig mot fel genom att duplicera data flera gånger, lagrad som read only. Det finns ingen inbyggd optimering av den MapReduce man programmerat så det gäller att tänka rätt från början.

Ständig förbättring och utveckling

Bristerna leder till en ständig vidareutveckling av ramverket Hadoop. Därför tillkom exempelvis: Pig för att göra skriptandet lättare än i Java, Hive och Impala för att erbjuda SQL-syntax, HBase för kolumnbaserad lagring och Mahout för maskininlärning. Tillväxten med öppen källkod är organisk och svår att överskåda.

Men faktum kvarstår, i grunden passar Hadoop bäst för parallelliserbara data, kräver flera gånger lagringskapaciteten, erbjuder ett omständligt analysgränssnitt och begränsar användaren från att uppdatera enbart vissa delar av data. Är dina data tillräckligt stora kan det vara ett alternativ – men inte det enda.

Många alternativa lösningar!

I arbetet som data scientist är högnivåspråk som Python, R, Scala och Julia att föredra. De gör det enkelt att interaktivt bearbeta, analysera och visualisera flera gigabyte data i arbetsminnet. Det blir lätt att koppla upp och nyttja kraften i olika datakällor, och språken bjuder på förstklassiga paket för statistik, maskininlärning, data mining, språkanalys med mera.

logo_python   logo_r       logo_scala  logo_julia      logo_openmpi

Dessa språk bygger på öppen källkod, är fria från licenskostnader, har stora användargrupper och fungerar utmärkt i beräkningskluster (exempel: Python, R, OpenMPI).

Hybrid mellan Hadoop och in-memory

Spark-logo-192x100px

Ett alternativ till traditionella beräkningskluster är Apache Spark (öppen källkod) som erbjuder en hybrid mellan Hadoop och beräkningar i minnet. Spark lagrar data i arbetsminnet på ett stort antal maskiner och kan även köras i en Hadoop-miljö. Till skillnad från Hadoop bygger Spark på språket Scala vilket gör det lättanvänt med färdiga kopplingar till Python, R och Java.

Behåll strukturen men parallellisera din databas

Inom näringslivet är en stor del av informationen strukturerad – eller kan lätt bli. Det finns inget självändamål att köra ”Big Data”-lösningar som Hadoop och NoSQL när större delen av informationen utgörs av strukturerade data. Här kan man få ut mycket mer av att växla upp till en parallelliserad kolumnbaserad databas som exempelvis Amazon Redshift eller Google Big Query. Även Microsoft har lanserat Column Store Index för SQL Server 2016 och erbjuder nu parallellisering i molnet med Azure SQL Data Warehouse. Plötsligt blir det enklare att replikera sina system, göra update och delete, indexera och partitionera för riktigt snabb analys. För analytikerna går det fint att köra Python direkt i Redshift eller R i SQL Server. Även IBM är med på advanced analytics-tåget och erbjuder analytiska funktioner genom Bluemix och Watson, och lanserade nyligen en data scientist workbench (än så länge på beta-nivå).

Värdet av avancerad analys ligger inte i tekniken

Hadoop har varit en viktig ögonöppnare för många men är ingen universallösning. Det är uppenbart att det finns flera andra möjligheter men för att bygga värde med avancerad analys krävs mer än teknik. Vårt mål är att guida dig till avancerad analys, koppla tekniska möjligheter till dina behov och hjälpa till att snabbt komma igång. Det finns mycket att vinna på att börja!

Business Intelligence

Bloggen för Business Intelligence.