Een jaar geleden was ik met een project bezig waarbij we een tool probeerden te bouwen die van alle content nauwkeurig bij kon houden wanneer deze populair werd. Feitelijk stuurde het programmaatje iedere URL naar Facebook en Twitter, en kreeg daarbij het aantal keer terug dat de pagina gedeeld, geliked en geshared was. Niks bijzonders.
Tot de hoeveelheid URL’s die we aan Facebook ‘voerden’ groeide snel, omdat we RSS feeds gebruikten waarvan de omloopsnelheid hoog was. Waar Facebook van iedere like moeiteloos opslaat hoe vaak die voorkomt (vaak het getalletje naast de like button) is dit zelf iets ingewikkelder. Daarom gingen we over van iedere minuut naar ieder kwartier om onze eigen servers te ontlasten. En toen dat niet helemaal werkte switchte de developer van server technologie (naar MongoDB voor de liefhebbers) en begon te werken met threaded crons die meerdere batches aan data tegelijkertijd op konden halen.
Waar de datahoeveelheid onder MongoDB relatief snel groeide (paar honderd mb per dag) rezen hele andere problemen. Hoe vertoon je op een snelle en vooral eenvoudige manier al deze data. Gelukkig hadden we niet het probleem dat de data nog moest worden bewerkt, we waren al blij met simpele metrics, bijvoorbeeld datum- en tijdsstempel, URL van de pagina en het aantal likes op die gegeven periode en die konden in eén keer zonder nabewerking de database in worden gestopt.
Interessanter is het pas aan de voorkant. Hoe toon je relatief eenvoudige data die toch groot is qua omvang? Ik zal je de details besparen, maar feit is dat we lang hebben lopen aanrommelen om de data op een eenvoudige manier weer te geven zodat deze niet alleen leesbaar was, maar ook nuttig voor marketeers en productmanagers. Hier strande het project ook: we konden geen manieren vinden om een bruikbare interface om de data heen te bouwen, en dat was uiteindelijk wel een vereiste. Big data is geen probleem: er is genoeg (open source) technologie voorhanden om er iets mee te doen, maar het vereist kennis, doorzettingsvermogen en duidelijke doelstellingen om ook daadwerkelijk tot een product te komen dat op een goede manier iets kan doen met grote hoeveelheden data. Het sprekendste voorbeeld zijn de hoeveelheid Twitter-monitoring tools. Er zijn extreem veel pakketten beschikbaar, maar weinig zijn er maar eécht goed, hoewel ze in wezen allemaal hetzelfde doen: intappen op een rijke datasource, en het resultaat hiervan weergeven in een dashboard.