Vindt Hadoop de spelden in de data hooiberg?

 

Niemand kan tegenwoordig meer om big data heen en het gaat niet alleen meer om grote hoeveelheden gegevens. Bedrijven zien tegenwoordig door de bomen het bos niet meer aan wat voor tools zij kunnen gebruiken om deze digitale bergen informatie te doorgronden en die informatie naar boven te halen die iets voor hun business kan betekenen. Wellicht biedt data analytics-oplossing Hadoop uitkomst.

 

De term ‘big data’ viel voor het eerst midden jaren ‘90 toen het volume aan data snel toenam. Marktonderzoeker Gartner noemde het in 2005 al een hype waarbij de drie factoren volume, snelheid en variëteit, de ‘3Vs of big data’, door Gartner in 2005 als concept werden geïntroduceerd. Tien jaar later schrapte de marktonderzoeker de big data hype weer uit haar rapport ‘Hyper Cycle for Emerging Technologies’. De nieuwe hypes, het Internet of Thing (IoT) en autonome voertuigen, hebben big data op de lijst vervangen. Dit betekent echter niet dat big data voorgoed was verdwenen. Het is inmiddels mainstream geworden.

‘NoSQL beter geschikt voor opslag (semi) ongestructureerde data’

Big data gaat niet alleen over de enorme hoeveelheid digitaal vergaarde informatie, maar ook over de analysetools die wat zinvols moeten opmaken uit deze informatieberg. Big data is alom aanwezig, de omvang blijft toenemen en het wordt voor ondernemingen steeds lastiger om te doorgronden wat het voor de business kan betekenen. Naast de traditionele data warehouses ontstaan nieuwe ontwikkelingen als Hadoop en NoSQL-databases en is het lastig om een keuze te maken tussen de diverse analysetools en storage-strategieën.

Big data analytics

Big data analytics gaat over grote hoeveelheden data onderzoeken op verborgen patronen, onbekende correlaties, marktontwikkelingen, klantenvoorkeur en andere bruikbare informatie die ondernemingen helpen bij het makenvan zakelijke beslissingen. Het stelt datawetenschappers, statistici en andere professionele analisten in staat om grote hoeveelheden data en bepaalde vormen van data die door conventionele Business Intelligence (BI)-applicaties onaangeroerd blijven te analyseren. De data-analyse gebeurt met behulp van complexe applicaties waarin technieken als predictive modelling, statische algoritmes en what-if analyses zijn opgenomen.

Data warehouses

Een data warehouse bestaat meestal uit een relationele database die speciaal is ontworpen voor het uitvoeren van data-analyses, in plaats van een standaard transactionele processing SQL-database. Gedeelten van de database kunnen in een ‘data mart’ worden opgeslagen voor een snellere toegang (zie kader). Voorafgaande aan het gebruik van een beslissingstool is het noodzakelijk dat de van verschillende databronnen afkomstige data wordt genormaliseerd en gecontroleerd op inconsistenties. Na dit ‘data preparation’-proces kan de data worden geanalyseerd als onderdeel van Business Intelligence (BI) of Business Analytics (BA) programma’s.

Applicaties data analytics

Na het ETL-proces (zie kader) kan de data worden geanalyseerd met behulp van geavanceerde analytische processen. Deze processen bestaan uit tools als data mining die de data sets doorzoeken op het voorkomen van patronen of relaties, predictive analyse voor het bouwen van modellen voor toekomstig klantgedrag en toekomstige ontwikkelingen, machine learning voor de analyse van grote data sets en, ten slotte, deep learning, een meer geavanceerde offshoot van machine learning. Text mining en statistical analysis software spelen ook een rol in analytische processen voor big data, net zoals mainstream BI-software en data visualization tools. Voor zowel ETL als analytische applicaties kunnen queries in batch-mode worden geschreven met behulp van programmeertalen als R, Python, Scale en SQL, de standaardtaal voor relationele databases die door SQL-on-Hadoop-technologieën worden ondersteund.

Big data en ongestructureerde data

Naast gestructureerde data kan ook een mix van semi- en ongestructureerde data worden geanalyseerd. Bij dergelijke vormen van data moeten we denken aan internet clickstream data, web server logs, social media content, tekst van e-mails, mobiele telefoongegevens, records en machine data afkomstig van sensors die verbonden zijn met IoT-devices. Maar deze type data passen niet zo goed bij de traditionele data warehouses die relationele databases op basis van gestructureerde data sets gebruiken. Verder zijn data warehouses vaak niet in staat om dergelijke grote hoeveelheden data realtime te verwerken. Als gevolg daarvan zijn veel ondernemingen voor het verzamelen, verwerken en analyseren van big data overgestapt naar de oplossing Hadoop met de bijbehorende tools als YARN, MapReduce, Spark, HBase, Hive, Kafka en NoSQL-databases. In sommige gevallen worden Hadoop clusters en NoSQL-databases als primaire opslagsystemen gebruikt. De data wordt daarna naar een data warehouse of een analytical database gestuurd en ten slotte naar de uitvoering van de analyse.

ChannelConnect-Moderne-data-architectuur
Moderne data-architectuur (Bron: Hortonworks)

NoSQL en SQL-on-Hadoop

Not Only SQL (NoSQL) databases bieden een alternatief voor traditionele SQL relationele databases in big data-omgevingen. In tegenstelling tot relationele databases, volgt NoSQL niet de relationele schema’s en is daarom meer geschikt voor de opslag van (semi) ongestructureerde data. Volgens marktonderzoeker 451 Research groeit de markt voor NoSQL-systemen groeien van 814 miljoen in 2015 tot 4.9 miljard in 2020. Tegen die tijd zal het marktaandeel van NoSQL rond de 9 procent liggen, toch nog wel klein in vergelijking met de 90 procent van de traditionele relationele databases.

De huidige rage in de Hadoop community is ‘SQL-on-Hadoop’ dat een subset van de ANSI 1992 SQL-taal toevoegt. Het is een surrogaat voor de standaard SQL-database. Door het ontbreken van een databasefundament, is het ook geen echte ‘performer’. Een van de klachten van gebruikers is dat het vooral slecht presteert bij grote table joins. Het mist ook het de robuuste indexering, in- database operators, geavanceerd memory management, concurrency en dynamic work load management die we van de SQL-databases kennen.

Nieuwe typen data

De hoeveelheid data en een aantal specifieke eigenschappen daarvan leveren voor de traditionele data warehouses problemen op. In de eerste plaats de exponentiele groei. Onderzoek van IDC toont aan dat 85 procent van deze groei van nieuwe typen data afkomstig is. De verwachting is dat de door machines genereerde data met een factor 15 zal toenemen. Dit type data kent weinig of geen structuur of een structuur die te vaak verandert voor een betrouwbare creatie van een dataschema. Een tweede probleem is dat de inkomende data individueel of in kleine aantallen records weinig of geen waarde heeft voor gebruik in geavanceerde analytische applicaties. De opkomst en explosieve groei van nieuwe typen data kan een enorme belasting zijn voor alle datasystemen binnen enterprise-omgevingen. Een toenemend aantal ondernemingen hebben zich daarom tot Apache Hadoop gewend om de enorme toename van deze data te beheren.

Hadoop

Apache Hadoop is een software library, een framework voor het gedistribueerd verwerken van grote hoeveelheden data sets die verspreid zijn over een aantal clusternodes. Het is ontworpen om te schalen van enkele tot duizenden servers waarbij elke server zijn eigen storage en computing hardware heeft.

Hadoop is bijna volledig modulair van opzet zodat iedere component door een andere softwaretool kan worden verwisseld. Hadoop bestaat uit twee delen, een data processing frame work en een gedistribueerd file system, het Hadoop Distributed File System (HDFS), voor de opslag van data. Het dataprocessing framework is de tool die met de data zelf aan de slag gaat. Default is het een op Java-gebaseerd systeem, MapReduce genaamd.

‘Hadoop is een middlewareinfrastructuur voor parallelisme’

De tool is niet echt een database. Het slaat weliswaar data op en data kan weer worden opgevraagd, maar er zijn geen SQL-queries bij betrokken. Hadoop is meer een data warehouse-systeem, reden waarom het een systeem als MapReduce nodig heeft om de data te verwerken. MapReduce bestaat uit een aantal jobs, waarbij elke job in feite als een aparte Java-applicatie draait dat informatie uit de opgevraagde data haalt. In plaats van SQL-queries, biedt het de data-analist meer kracht en flexibiliteit, maar het voegt tegelijkertijd meer complexiteit toe. Er zijn tools die het leven makkelijker maken, waaronder Hive, die helpen om de query-taal naar MapReduce jobs te converteren.

De complexiteit en beperking van een ‘one-job-at-a-time’ batch processing-omgeving had echter als resultaat dat Hadoop meer als data warehousing werd gebruikt dan als een data analytic tool. Het batch-georiënteerde format bleek ook een beperking te zijn in het gebruik bij interactieve analyse en realtime operaties. De komst van Hadoop versie 2 heeft daarin verandering gebracht.

Versie 2

ChannelConnect-Future-Adoption-of-Big-Data
Adoptie van Big Data (Bron: Dresner Advisory Services, LLC)

In 2013 heeft de Apache Software Foundation Hadoop versie 2 uitgebracht. Een van de belangrijkste verbeteringen was de ondersteuning van non-batch applicaties. Hierdoor is het mogelijk om ook met andere programmeermodellen dan MapReduce applicaties te creëren. Het ondersteunt ook de federatie van HDFS en configuratie van redundante clusternodes. De komst van Yet Another Resource Negotiator (YARN) in Hadoop versie 2 ondersteunt realtime operaties en maakte een einde aan de afhankelijkheid van MapReduce. Het is verworden tot een van de vele processing engines die bovenop YARN in Hadoop clusters draaien. Het is nu mogelijk om gelijktijdig MapReduce en niet-MapReduce applicaties bovenop YARN te draaien. Naast MapReduce batch jobs, kunnen event stream processing applicaties, NoSQLdatabases, interactive queries, graph processing en analysis applicaties draaien. Deze veranderingen geven Hadoop’s framework de mogelijkheid om realtime data analyse en ad hoc querying te ondersteunen. YARN is een soort lanceerplatform voor nieuwe applicaties bij de realtime verwerking en analyse van streaming data uit IoT-devices. De koppeling van Hadoop 2 met Storm, een open source streaming engine, ondersteunt realtime high-velocity data streams van remote devices. Al deze veranderingen hebben positieve effecten op Hadoop’s framework-mogelijkheden ter ondersteuning van realtime analyse en ad hoc queries.

Alternatieve oplossingen

Eindgebruikers van Hadoop hoeven niet strikt noodzakelijk HDFS of MapReduce te gebruiken. Voor haar Elastic Compute Cloud-oplossingen heeft bijvoorbeeld Amazon Web Services (AWS) zijn eigen S3 file-systeem voor Hadoop aangepast. Andere oplossingen zijn DataStax Brisk, dat de HDFS vervangt door Apache Cassandra’s CassandraFS. Hadoop ondersteunt ook een aantal gerelateerde producten die het framework aanvullen.

Epiloog

Met de komst van Hadoop kwam er onvermijdelijk in de IT-industrie de ‘Haadop vs. Data Warehouses’-discussie op gang. Gaat Hadoop de vele data warehouses vervangen? De praktijk laat zien dat, tot voor zover bekend, Hadoop nog geen enkel groot data warehouse met succes heeft vervangen. Dat is ook niet mogelijk, want technisch gezien is Hadoop geen ETL-oplossing, maar is het een middleware-infrastructuur voor parallelisme. Voor Hadoop is ook nog steeds de handmatige codering van ETL- transformaties nodig. Eenvoudige RDBMS-taken als referentiële integriteitscontroles en key lookup bestaan niet in Hadoop of Hive. Hadoop ondersteunt ook niet de typische out-of-the-box ETL subsystem features als data-type conversies, metadata, workflow management en role-based security.

Het meest aansprekende voordeel van Hadoop is de ondersteuning van complexe ongestructureerde data. Veel Hadoopexperts denken dat een geïntegreerd data warehouse eenvoudigweg een grote verzameling data is. Echter, data volumes hebben niets te maken met wat een data warehouse vertegenwoordigt: een data analyse-architectuur. De opkomst van de Hadoop data warehouse moet daarom niet als de neergang van de legacy data warehouse-oplossingen worden gezien. Hadoop is een uitbreiding op en optimalisatie van de bestaande traditionele data warehouses. Het is een welkome aanvulling op de bestaande data warehouse-architectuur in combinatie waarmee nu ook (semi) ongestructureerde data in analyses kunnen worden meegenomen. «

Data Lake

In het algemeen bestaat een data lake uit een gedistribueerd, schaalbaar file system, zoals HDFS, of Amazon S3 dat aan een of meerdere query en processing engines als Apache Spark, Drill, Impala en Presto is gekoppeld. Steeds vaker adopteren big data- analisten het concept van een Hadoop data lake, dat als primaire repository gaat dienen voor inkomende raw data streams. In een dergelijke architectuur wordt de data gelijk in een Hadoop cluster geanalyseerd of door een processing engine als Spark gehaald.

ETL en ELT

Bij het beheer van databases refereert de term ETL (Extract, Transform en Load) aan drie aparte functies die in een enkele programmeertool zijn verenigd. De extract functie leest de data van een specifieke database en extraheert deze in een gewenste data subset. De transformeerfunctie gaat vervolgens aan de slag met de data en gebruikt van rules of lookup tables of creëert combinaties met andere data. De load-functie schrijft ten slotte het resultaat naar een target database. ETL kan gebruikt worden als een tijdelijke subset van data voor rapportage of als permanente data in een data mart of data warehouse. Dit in contrast met ELT (Extract, Load en Transform), dat raw data transformeert tot servers of data warehouses en vervolgens de data prepareert voor downstream-gebruik.

[Dit artikel is eerder gepubliceerd in ChannelConnect magazine nummer 4/5-2017]

Lees het artikel hier in PDF