Teknik som stödjer Big Data analys

2018, nytt år och nya spännande möjligheter, det är dags för teknikskifte i Big Data världen!

Efter att arbetat i många år med analys ser vi att det Nya Svarta, dvs. Data Science gjort att gamla stofiler och t.o.m dagstidningar börjar prata om AI och Machine Learning. Detta är mycket bra för de som arbetar med Big Data analys eftersom att det driver innovation och framåtanda. Det dessa stofiler inte vet om är hur svårt och komplext det är att få fram värde ur Big Data men också att kunna “produkttionsätta” analyser för bättre insikt.

För att få lite ordning på branschen tror vi att Lincube har en oerhörd viktig roll att spela, vi förstår och har sett i våra projekt att man inte kan låta en hord av Data Engineers koda fram något som en Data Scientist eventuellt får fram någon intressant analys av för att ev. visualiseras i något menlöst men grafiskt attraktivt sätt i Tableau.

Detta resulterar i massa filer med data som innehåller dubletter, när dessa personer slutar efter 1år finns ingen som vet eller förstår hur man kan få fram värde av denna Data Swamp.

Det måste finnas en teknik som förhindrar att data skapar denna oreda, vi har här listat ett antal tekniker som idag finns och vilka fördelar och nackdelar de har. Kontakta oss gärna för en mer utförlig genomgång.

Hadoop

En av de största utmaningarna är att Hadoop är byggd för IT och data science, snarare än för affärsanvändare. De data som går in i en Hadoop lösning kan vara till stor nytta hos företag, men det är inte lätt att få data i ett lämpligt format som de kan arbeta med.

Det finns idag många implementationer i operativa datalager som Cassandra, Cloudera, Hortonworks, Mongo DB eller andra NoSQL databaser. För analys av data använder dessa lösningar egna varianter som Shark, Drill, Impala eller Hive.

Spark & Presto

På senare tid har enklare sätt att komma åt data tex. SparkSQL och Presto dykt upp. Spark SQL är en distribuerad beräkningsmotor i minnet med ett SQL lager på datasets för både ostrukturerat och strukturerat data. Open source communityn runt Apache Spark växer kraftigt men du behöver fortfarande vara en tekniker för att skriva SparkSQL. SparkSQL kan tex. inte koppas till ditt BI-verktyg och stödjer inte avancerad SQL.

Presto är ännu ett annat sätt att komma åt data med stöd för vanliga BI-verktyg men även här behöver man vara tekniker för att få upp prestanda genom att trimma nätverk, minne, cpu, HDFS, filsystem, blockstorlekar etc. Enligt Pinterest är Presto långsammare än en kolumnbaserad databas som Redshift, blogg finns här!

MPP Databaser

Lincube har länge arbetat med MPP databaser, även kallad DW Appliance. Dessa är anpassade för sitt syfte dvs. att snabbt ge svar på frågor och hantera stora datamängder, både genom komplex SQL och avancerad analys inne i databasen, läs mer här. Generellt får man mellan upp till 100x bättre prestanda än andra tekniker.

Molnbaserade MPP databaser

På senare år finns nu också MPP databaser i molnet som överbygger de problem som finns med dyra on-premise DW appliance som Teradata, IBM Pure Data (Netezza), Oracle Exadata och Microsoft Analytics Platform System (Parallel Data Warehouse).

Dessa nya lösningar kombinerar fantastisk prestanda med en elastisk prismodell och är oslagbar för att få upp prestanda på frågor på ett öppet och enkelt sätt. Förutom MPP databasens tuningsfria fördelar har den också den fördelen att den är en fullt hanterad tjänst, dvs. back-up, driftövervakning, underhåll, mjukvaruppgraderingar. Man behöver inte ens byta hårdvara utan när ny bättre hårdvara kommer så finns dom tillgängliga via en knapp. Några exempel på molnbaserade MPP databaser är AWS Redshift, Google Big Query och Azure SQL Datawarehouse men också den mest spännande databasen Snowflake.

Minnesdatabaser

Med en minnesdatabas ligger sk. “cold data” i en Data Lake som AWS S3, Azure Blob Storage, Hadoop HDFS eller på annan billig disk. Allt tungt arbete görs i minnet, efter att lyft upp data till minnet extremt snabbt och parallellt utförs alla beräkningar som datatvätt, beräknade nyckeltal extremt snabbt. Klassiskt arbetet för en databasadministratör eller applikationsutvecklare som generering av kuber, index, materialiserade vyer och aggregat blir i många fall helt överflödiga. Precis som traditionella databaser har också en minnesdatabas en Cash som standardrapporter “slår mot”. Skillnaden är att vid ad-hoc frågor får man svar extremt snabbt eftersom att data ligger i minne och inte på långsam disk.

Summering av användbara alternativ för Big Data finns här:

Plattform för Big Data Analys

Fördel

Nackdel

SQL För Hadoop: Shark, Impala, Drill, Presto, SparkSQL

Gratis mjukvara, Spark har inkluderad MLlib

Kräver mycket hårdvara, dålig SQL support, Dålig prestanda även med in-memory stöd

Redundans x3 per lagrad enhet, Single point of failure (namenode)

MPP Databaser: IBM Netezza (PureData), Oracle Exadata, Microsoft Analytics Platform System, Teradata

Mogen teknologi, OK prestanda, In-Database analytics

Mycket dyr mjukvara, måste köpa hårdvara för peakar (outnyttjad mestadels), Vissa ej kolumnära

MPP i molnet: Redshift, MS Azure SQL DW, Google BigQuery, Snowflake

Skalbar & Billigt, OK prestanda, Kolumnär, Full tjänst.

Snowflake – billig storage i AWS S3, betala bara för den Compute du använder, ersätter Hadoop som Data Lake.

Ej stöd för InDatabase analytics,

Redshift – konfiguration enbart av en kombination av storage/compute

Azure SQL DW ej så snabb och inte fri från tuning

Google Big Query ej så billig

In Memory MPP: EXASOL, SAP HanaExtrem prestanda,  Kolumnär och i minnet, In-database analytics, Betala enbart för den RAM du behöverDyrare hårdvara, Erbjuds ej som full tjänst

SAP Hana, Extremt dyrt

Benchmark

Vi har nedan gjort några jämförelser på prestanda mellan olika alternativ för Big Data plattformar genom att samla bloggar och prestandatester från webben samt vår erfarenhet av kunders tester. Observera att man jämför äpplen med päron och bananer när det gäller ant. noder, RAM och antalet kärnor i.e. cores. Detta bygger på att en nod i en minnesdatabas har dyrare hårdvara (minnet är fortfarande dyrt) jämfört med plattformar som kan köras på commodity hårdvara som Hadoop. Redshift och Azure SQL Datawarehouse är mer jämförbara i pris och antalet kärnor och minne.

  1. Enl. BI Coretex har samma uppsättning Redshift 65% snabbare svarstider i snitt än MS Azure SQL Datawarehouse.
  2. Enl. King har 4 noder EXASOL 96% snabbare svartider än 10 noder Hive
  3. Enl. en kunds erfarenhet har 2 noder EXASOL 59% snabbare svarttider än 10 noder Redshift.

Vem är vinnare då, det beror såklart på kostnader för hårdvara/mjukvara och användningsfall. Kontakta gärna oss så kan vi hjälpa er att räkna!

Länk till resp. benchmark finns om du klickar på bilderna

Användningsfall

Radar har gjort en jämförelse mellan Impala, Redshift och Shark. Man har testat dessa plattformar på tre viktiga användningsfall med Big Data plattformar, dessa är:

  1. Utforskande SQL frågor
  2. Aggregat
  3. Joins

Resultatet i denna undersökning blev återigen till MPP databasens fördel, man säger “Redshift is about 2-3x faster than Shark/on-disk, and 0.3-2x faster than Shark/in-memory”

Utmaningen handlar såklart om mer än att lagra data billigt eller svarstider, vi vill med denna blogg visa att en modern Big Data plattform måste ha stöd för multipla användningsfall. Företag måste också förstå vilken roll var och en av de nya Big Data verktygen ger och hur den passar in i datalandskapet. Arbete över avdelning-, divisions-/region-/landgränser kan också skapa olika silos av data och leda till svåra utmaningar. Hur syr man ihop en helhet då?

Birst Network BI är det perfekta sättet att kombinera olika användningsfall med lokala-, centrala- och Big Data källor i en och samma lösningar mha. federerade frågor, mer om detta i nästa blogg!

Registrera dig nu så bjuder vi på en jämförelse mellan EXASOL och Apache Spark! Läs mer om EXASOL HÄR

Lincube är certifierad partner med Amazon Web Services och återförsäljare av Exasol och Snowflake, läs mer om dess mer här: