Big data analyseren door freelance programmeur

Big data sets is een buzz-word van de laatste tijd. "Big data" is met de hardware van tegenwoordig redelijk relatief geworden. Een zwaardere workstation van tegenwoordig kan namelijk al voor een betaalbare prijs 32GB RAM bevatten en tientallen terabytes aan storage.

Mocht u met "big data" aan de gang gaan is het daarom belangrijk eerst de volgende 2 vragen te stellen,

  1. welke data is er? en wat is de omvang hiervan?
  2. wat is er gewenst hiermee te doen


Rapportages
Wilt u rapportages uitdraaien en is de data onder de terabyte, dan is vaak een verstandige aanpak om de data te analyseren middels programmeercode/scripts en overzichten te genereren in Excel-sheets of databases. Hierna kan het uiteraard verder verwerkt worden.


Big data op websites - zoekmachine / zoekmodule

Heeft u veel data - bijvoorbeeld feeds van vakantiehuizen, hotels, nieuws-sites - dan is het vaak verstandig een zoekmodule te maken op basis van bestaande open source search-engines. Voorbeelden hiervan zijn bijvoorbeeld Elasticsearch en Apache Solr. Één Apache Solr instance is in staat vele miljoenen documenten te indexeren en de load van 10.000+ bezoekers/dag af te handelen, mits uiteraard goed ingericht.


Database te klein
Vaak worden relationele databases toegepast voor het ontwikkelen van applicaties en websites. Gezien vele mensen bekend zijn met databases als MySQL, MSSQL en Oracle is dit vaak een goede keuze.

Het probleem met relationele databases is dat dit goed werkt tot een zekere omvang bereikt wordt. Hierbij moet onderscheid gemaakt worden tussen een aantal punten,

Hoeveelheid data
Gezien de performance van servers kunnen databases tegenwoordig eenvoudig vele gigabytes worden voordat dit performance problemen gaat geven. Verstandig is vooraf na te denken hoe om te gaan met tabellen die eeuwig groeien, zoals bijvoorbeeld log-tabellen.

Ook kunnen er andere gegevens zijn die uit de klauwen kunnen lopen. Als dit vooraf bekend is, zal een strategie moeten worden bedacht hoe dit uit te kunnen splitsen over verschillende tabellen. Dit heet 'sharden'.


Aantal writes

Met relationele databases is het vaak de intentie alles transactioneel uit te voeren. Dit houdt in dat als er een wijziging plaats vind, dit in z'n geheel direct wordt doorgevoerd (of in z'n geheel niet als er een fout optreed).

Dit kan een struikelblok zijn als er honderden mensen tegelijk gebruik maken van een systeem.

Aantal reads
Queries kunnen traag worden als er teveel gebruikers tegelijk gebruik maken van een systeem. Dit kan worden opgelost door gebruik te maken van caching of door een database-cluster neer te zetten. In de praktijk is er dan vaak 1 "Master"-database en meerdere "Slave"-databases. Write-acties worden uitgevoerd op de master en reads worden uitgevoerd op de slaves. Deze opzet is goed op te schalen.


Hoe aan te pakken
Er bestaan diverse open source projecten met elk hun eigen aanpak, bijvoorbeeld,

In bovenstaande lijst is het ene een zoekmachine, andere een programmeertaal en weer een ander een framework. Wat voor uw situatie handig is om te gebruiken zal moeten bekeken afhankelijk van uw dataset en welke huidige systemen er reeds in gebruik zijn.

Heeft u een vraagstuk en wilt u hier een keer over sparren? Neem dan contact op om vrijblijvend kennis te maken!


- Bent u opzoek naar een Php of Java programmeur voor uw website of applicatie? (freelance / detachering)
- Losse tickets, opdrachten, of gehele projecten in de planning?

Dan kom ik graag met u in contact! Meer informatie over mij vindt u hier.
Sitemap | Op alle producten & diensten zijn de algemene voorwaarden van toepassing