De term ‘big data’ heeft de afgelopen jaren veel stof doen opwaaien in it-land. Geruime tijd was het een hot topic en nog steeds raken zowel organisaties als de media er niet over uitgepraat. Toch lijkt de hype wat af te nemen en landt iedereen nu langzamerhand weer met zijn voeten op de grond. Zo wordt zelfs in de laatste Gartner Hype Cycle for Advanced Analytics and Data Science 2015 big data niet meer apart benoemd.
De meeste organisaties realiseren zich tegenwoordig dan ook dat grote hoeveelheden data, afkomstig van binnen dan wel buiten de bedrijfsmuren, hen nieuwe kansen maar zeker ook uitdagingen biedt. Dat wordt onder andere versterkt door de internet of things (IoT)-revolutie die volop gaande is. Steeds meer slimme sensoren leveren namelijk steeds meer verschillende soorten data. Deze data vragen om andere databases en andere oplossingen.
Dataopslag
De grootste uitdaging van big data zit ‘m niet zo zeer in de hoeveelheid, maar vooral in de nieuwe soorten data die van verschillende (nieuwe) bronnen afkomstig zijn. Hoe combineer je al deze soorten data zodat het uiteindelijk ook meerwaarde biedt? Een juiste database ligt hieraan ten grondslag.
De keuze voor opslag vormt dus de belangrijkste uitdaging. Anno 2015 zijn er zo veel mogelijkheden, dat het lastig is door de bomen het bos te zien. Waar je tien jaar geleden alleen nog hoefde te kiezen tussen Oracle, SQL Server of een andere relationele database, zijn daar tegenwoordig heel wat mogelijkheden bij gekomen. Zoals de vele NoSQL-varianten en Hadoop, of de in-memory mogelijkheden. En ga je voor on-premise of cloud? Er is intussen een enorm palet aan database-oplossingen met allemaal verschillende sterke en zwakke punten. Maar welke oplossing is de beste match voor jouw data?
Kenmerken data
Een belangrijke eerste stap van deze selectie is bepalen wat voor kenmerken de data heeft die je wilt opslaan. Als je bijvoorbeeld heel erg geïnteresseerd bent in het vastleggen van relaties, dan leent een graph database zich daar erg goed voor. Maar een heel financieel systeem implementeren in een graph database is weer niet zo’n goed idee.
Een volgende stap is het bepalen van de randvoorwaarden die aan het systeem worden gesteld. Wanneer je bijvoorbeeld kijkt naar de acid-aspecten van een database, zijn die voor de beschikbare database-typen verschillend (of voor sommige database-typen niet eens geïmplementeerd). Ieder type heeft zijn eigen kenmerken die voor- en nadelen kunnen hebben.
Polygot persistence
Met alle keuzes die je hebt, is het bijna onmogelijk geworden alle data voor een toepassing in één soort database op te slaan. Een mix van verschillende databases wordt dan ook steeds meer de norm, ook wel polyglot persistence genoemd. Hierbij implementeer je verschillende soorten data-opslag met verschillende soorten databases. Zo heb je de beste en juiste data-opslag-oplossingen voor de verschillende datasets. Dit wordt steeds belangrijker en kenmerkt de toekomst van de database-specialist: welk type database kies je voor een bepaald type data?
Het grootste nadeel van polyglot persistence is dat je veel meer kennis nodig hebt. Waar tien jaar geleden de database administrator, die alles van Oracle of SQL Server af wist, nog koning was, heb je nu specialisten met verschillende disciplines nodig en is een goede samenwerking een vereiste. Ook zijn de nieuwe databases vaak niet veel meer dan een slimme vorm van opslag, waarbij de ontwikkelaar veel meer effort moet steken in zaken als performance, bewaking van consistentie en het schrijven van slimme queries. In de relationele wereld deed het rdbms veel van deze taken voor je (onder supervisie van de dba). In de nieuwe wereld wordt het onderdeel van de programmatuur. Wanneer je de oplossing overdraagt aan een beheerder, zal deze ook kennis moeten hebben van alle systemen die je hebt toegepast. Hier dien je rekening mee te houden bij de keuze van de databases en het ontwikkel- en beheertraject.
Experimenteren
Een ander belangrijk punt waar organisaties tegenaan lopen bij het kiezen van een juiste database-oplossing is onbekendheid. Er is veel kennis over de datawereld en ook over relationele databases. Maar over de nieuwe databases en mogelijkheden is nog relatief weinig bekend. Daardoor zijn de nadelen (nog) niet bekend. Verkennen en uitproberen zijn dan ook sleutelwoorden bij het kiezen van een juiste database. Je moet accepteren dat je dingen opnieuw zult moeten doen en je moet zeker niet bang zijn om verkeerde keuzes te maken.
Door de komst van data-opslag-oplossingen in de cloud wordt dit laatste gemakkelijker. Met deze oplossingen kun je makkelijker switchen en testen. Wanneer je vroeger voor bijvoorbeeld Oracle koos, zat je daar vaak lange tijd aan vast. Als je er dan achter kwam dat het toch de verkeerde database was, was dat vaak een pijnlijke en kostbare conclusie. Met de cloud-oplossingen van tegenwoordig kun je gemakkelijker wisselen en experimenteren. Uiteraard moet je tijd investeren, maar op het moment dat je een keuze voor cloud-oplossingen maakt, hoef je niet te investeren in hard- en software en betaal je voor wat je gebruikt.
Geen compromissen
De keuze voor een juiste data-oplossing zit hem dus in het kiezen van een best passende oplossing voor ieder deelprobleem binnen je dataset. Het kiezen van een juiste database-oplossing, en de keuze voor polyglot persistence, vergt zeker verdieping. Het vraagt andere vaardigheden van mensen en het vraagt ruimte om te experimenteren.
Maar als je kiest voor maar één database, zul je compromissen moeten sluiten en beschik je over een suboptimale oplossing. Als je kiest voor verschillende databases krijg je altijd de beste match bij ieder zelfstandig probleem. Dat zorgt ervoor dat de oplossing er qua performance uiteindelijk op vooruit gaat; het wordt sneller, relevanter en sluit beter aan bij de behoeften van eindgebruikers.