Gartner definieert Big Data als "... een hoog volume, hoge snelheid en / of hoge verscheidenheid van informatie die nieuwe vormen van verwerking, een betere besluitvorming, het ontdekken van inzichten en procesoptimalisatie mogelijk maakt". Dat klinkt misschien als een hele mond vol, maar het maakt ook duidelijk dat big data niet alleen gaat over dataopslag, maar meer over de mogelijkheid om gegevens te verwerken. Aangezien de groei van gegevens exponentieel is, is het gemakkelijk te begrijpen dat zonder nieuwe technologieën en instrumenten de enorme mogelijkheden van de enorme hoeveelheden gegevens niet gebruikt kunnen worden.

Als ontwikkelaar moet je schipperen tussen mogelijkheden, tijd en eisen van de business. Bekijk de special over Development in de Cloud en geef je mening!

Big Data is ook een gebied dat bij uitstek geschikt is voor cloud computing. Voor Amazon Web Services (AWS) is dit nog meer het geval. De meeste Big Data technologieën vereisen grote clusters van servers die in lange provisioning- en setup-cycli resulteren. Met AWS kun je de noodzakelijke infrastructuur met een paar muisklikken onmiddellijk implementeren. Dit betekent dat je teams productiever kunnen zijn, dat het makkelijker is om nieuwe dingen uit te proberen, en dat projecten sneller uitgerold kunnen worden. Net als bij andere AWS-mogelijkheden, kun je er via on-demand en pay per use gebruik van maken, je kunt dus de behoefte van de klant volgen en hoeft niet op voorhand te investeren. Het is ook ideaal voor pieken in de verwerking van data, bijvoorbeeld wanneer eenmaal per jaar of per kwartaal financiële gegevens verwerkt moeten worden of bij het doen van onderzoek met behulp van grote datasets.

Importeren van gegevens

Laten we eens een kijkje nemen bij de verschillende onderdelen en fasen van het werken met Big Data en naar AWS' aanbod. Big Data begint met het importeren van de gegevens - behalve wanneer zij al bij AWS opgeslagen zijn. In principe zijn er daarvoor vier mogelijkheden: gewoon via het internet, met behulp van een eigen glasvezellijn met AWS Direct Connect, AWS Import / Export Snowball service en Amazon Kinesis.

Terwijl de eerste twee voor zich spreken, hebben de laatste twee wat extra verduidelijking nodig. Wanneer ik AWS Import / Export Snowball heel eenvoudig beschrijf, dan zou ik het een enorme externe schijf kunnen noemen, om er lokaal gegevens op te zetten. Anders gezegd: Het is een datatransportoplossing op petabyte-schaal die beveiligde apparaten gebruikt om grote hoeveelheden gegevens naar en van AWS over te dragen. Je sluit hem aan op je lokale netwerk, laadt je gegevens en stuurt hem terug. Het is vooral waardevol als je extra beveiliging nodig hebt bij het verzenden van je gegevens en/of als je grote hoeveelheden data naar AWS of naar je klanten wil vervoeren. Het is niet alleen gemakkelijk, snel en veilig, het is ook economisch: het transport van 100 terabyte aan gegevens via Snowball is ongeveer vijf keer kosteneffectiever dan het gebruik van het internet. Je kunt het ook gebruiken om gegevens uit de cloud naar je lokale servers te exporteren, bijvoorbeeld in het geval van een lokaal verlies van gegevens. Hier in Europa moeten we alleen nog even wachten op Snowball, aangezien het hier nog niet ondersteund wordt.

Als je werkt met streaming data, is Amazon Kinesis een ideale oplossing. Het heeft krachtige services om streaming data gemakkelijk te laden en te analyseren, en biedt ook de mogelijkheid om aangepaste streaming data-applicaties voor speciale doeleinden te bouwen.

SSD

Omdat Big Data vaak over snelheid gaat, biedt AWS ook de mogelijkheid SSD's (solid state harde schijven) te gebruiken. Amazon DynamoDB gebruikt ze standaard, maar als je alternatieven van de AWS Marketplace gebruikt, zoals Cassandra en MongoDB, kun je de toegang tot terabytes aan solid state opslag on-demand versnellen, met de hoge I/O instance class met Amazon Elastic Block Store (Amazon EBS).

NoSQL

Zoals we hebben gezien in het artikel over databases, is Big Data niet noodzakelijkerwijs gelijk aan NoSQL; een relationele database, en vooral Amazon Aurora, kan big data ook aan. NoSQL databases bieden echter voordelen ten opzichte van relationele databases, omdat zij minder beperkingen kennen, wat betreft snelheid en omvang. Als je een NoSQL database nodig hebt die je zonder veel moeite kunt inzetten, is Amazon DynamoDB is een zeer goede keuze. Het is een snelle, volledig managed NoSQL-database service die het eenvoudig en kosteneffectief maakt om iedere datahoeveelheid op te slaan en op te halen, en die ieder niveau data-aanvragen aankan. Amazon DynamoDB voorziet in gegarandeerde throughput, heeft een latency van enkele milliseconden en is zeer geschikt voor gaming, ad-tech, mobiele data en vele andere Big Data-toepassingen.

Data warehousing op Petabyte-schaal data binnen enkele minuten

Amazon Redshift biedt een snel, volledig beheerd, data warehouse op petabyte-schaal voor minder dan $ 1.000 per terabyte per jaar. Amazon Redshift levert snelle query en I/O-prestaties voor datasets van vrijwel elke grootte met behulp van column-opslagtechnologie en het parallelliseren en distribueren van query's over meerdere nodes. In niet meer dan een paar minuten, kun je gemakkelijk een volledig managed data warehouse met automatische back-ups en ingebouwde encryptie deployen. Je kunt je bestaande business intelligence-tools er heel eenvoudig mee combineren.

Analyseren met Hadoop

Big Data wordt pas echt interessant wanneer je de data analyseert. Natuurlijk kun je voor dat doel Amazon EC2 gebruiken en iedere denkbare eigen applicatie daarvoor schrijven. De meeste mensen zullen echter de voorkeur geven aan Apache Hadoop bovenop Amazon EC2. Apache Hadoop is een open-source Java-framework voor gedistribueerde opslag en gedistribueerde verwerking van zeer grote datasets op computerclusters gebouwd met standaard hardware. De kern van Apache Hadoop bestaat uit een opslaggedeelte, Hadoop Distributed File System (HDFS), en een verwerkend deel dat MapReduce heet. In plaats van Hadoop kun je uiteraard ook van het bovengenoemde Amazon Kinesis gebruik maken voor het analyseren van de data. Een zeer intrigerende optie is Amazon Machine Learning - zoals we in een eerder artikel zagen.

EMR en MapReduce

Amazon Elastic MapReduce (Amazon EMR) maakt het gemakkelijk Hadoop in de AWS Cloud te implementeren en te beheren. Je kunt eenvoudig een Hadoop cluster deployen en opschalen - van één tot duizenden servers - met Amazon EMR en managed Apache Spark clusters maken en opstarten. Bovendien kun je van de voordelen van populaire tools en frameworks binnen het Hadoop ecosysteem gebruikmaken, zoals van Presto, Hive, Pig en meer. Amazon EMR laat je kiezen tussen de Amazon Distribution of de MapR Distribution voor Hadoop.

De Amazon distributie heeft zo zijn voordelen, maar als je MapR wilt gebruiken maakt AWS het ook makkelijk voor je. Je kunt dat met één klik deployen op EC2 in de Amazon Marketplace. Nu kun je kiezen tussen de M3, M5 en M7 versies van MapR. Zoals MapR zegt: "Klanten die MapR gebruiken in combinatie met Amazon Elastic MapReduce (EMR) zullen merken dat het betrouwbaarder is, een betere beschikbaarheid heeft, makkelijker te gebruiken en sneller is in hun Hadoop, NoSQL en streaming applicatie." Aangezien het een keuze is in Amazon EMR, behoud je het voordeel dat je het kunt provisionen en beheren over dynamisch schaalbare Amazon EC2 instances.

Bieden op extra machines

Tot slot zou ik de Amazon spotmarkt willen noemen. Deze kan de economische voordelen van AWS voor Big Data nog vergroten, en is geïntegreerd in Amazon EMR. Hij laat je je eigen prijs bepalen voor de IT-middelen die je nodig hebt om analyses te doen met cloud computing. Dat betekent dat je je eigen balans tussen kosten en prestaties kunt kiezen, je analyses enorm kunt versnellen wanneer dat nodig is, of de kosten aanzienlijk kunt verminderen. Je zou 1000 en zelfs 10.000 extra virtuele machines tegen zeer lage prijs kunnen gebruiken. Je kunt erop bieden, dus als je ze niet kunt krijgen voor de prijs die je wil, heb je geen enkele verplichting. Zelfs zonder de lagere prijzen van de spotmarkt, kan hij erg aantrekkelijk zijn door het aanbod aan extra resources. Met behulp van 100x meer resources zal het zware werk 100x sneller gedaan kunnen worden. Dit betekent dat je voor meer klanten in dezelfde tijd kunt werken, dus meer geld kunt verdienen zonder meer te betalen voor de noodzakelijke extra rekenkracht.

Probeer het zelf en maak gratis een account aan op AWS