Maandelijks Archief: maart 2017

Wat weet je al van NoSQL-databases?

Laatst kwam het voorbij in een gesprek: NoSQL-databases. Al eens wat over gehoord of gelezen? Deze manager wel, maar hij dacht dat er geen link was tussen NoSQL-databases en het ArcGIS-platform. Toen ik vertelde dat ze ook onderdeel zijn van het ArcGIS-platform nam het gesprek een verrassende wending.

Decennialang waren relationele databases de standaard. De laatste jaren zijn NoSQL-databases in opkomst en voltrekt zich in de IT-wereld een paradigmashift. Is er iets mis met relationele databases? Als we prof. Michael Stonebraker (MIT) mogen geloven wel. Stonebraker is een vooraanstaand computerwetenschapper en won diverse prijzen, waaronder in 2015 een IEEE-prijs voor het 10-Year Most Influential Paper.

Volgens Stonebraker zijn relationele databases achterhaald. Eigenlijk zijn het allemaal doorontwikkelingen van System R-software uit de jaren 70, dat weer is gebaseerd op hardware uit de jaren 70. Stonebraker stelt dus dat de softwarearchitectuur van de relationele databases van vandaag is geoptimaliseerd voor de hardware van eergisteren.

blog-boris-Michael-Stonebraker-esri

NoSQL-databases zijn een alternatief voor de gebruikelijke relationele databases, zoals Oracle, SQL Server en PostgreSQL. Op een aantal plekken in het ArcGIS-platform worden NoSQL-databases meegeleverd:

  • De Tile Cache Datastore (nieuw in 10.3.1) van Portal for ArcGIS gebruikt onder de motorkap Couchbase, een NoSQL-database.
  • De Spatiotemporal Datastore (nieuw in 10.4) van GeoEvent maakt onder de motorkap gebruik van ElasticSearch, een NoSQL-database.
  • De Big Datastore van GeoAnalytics (nieuw in 10.5) gebruikt onder de motorkap ook ElasticSearch.

Het is scherp gesteld, maar het klopt. Relationele databases hebben zich bewezen, maar er kleven ook beperkingen aan. Allereerst zijn ze ontworpen voor een statische wereld, waarin data strak is gestructureerd. Maar de praktijk is niet statisch en niet altijd strak gestructureerd. Het toevoegen, verwijderen of veranderen van kolommen is daardoor lastig: we zijn er zo vertrouwd mee dat we ons erbij hebben neergelegd dat dit nou eenmaal lastig is.

Verder hebben relationele databases moeite met big data. Ze zijn niet gemaakt om met echt veel data om te gaan. Ten slotte is horizontale schaalbaarheid (uitbreiden) duur en moeilijk. Hier heb je al snel een Storage Area Network (SAN) voor nodig – dit soort storage is duur en vraagt gespecialiseerde kennis.

NoSQL-databases winnen terrein. Ze worden onder de motorkap gebruikt bij Facebook, LinkedIn en Google. Wat zijn NoSQL-databases en wat heb je eraan? Ze bieden support voor on- of semi-gestructureerde data en gaan flexibel om met wijzigingen in de structuur van de data.

En: NoSQL-databases bieden een betere performance. Een verklaring wordt vaak gezocht in het normaliseren van data, zoals gebruikelijk bij relationele databases. Door het normaliseren wordt data die bij elkaar hoort opgeslagen op verschillende plaatsen ‘op disk’. Er is al snel een join nodig om data bij elkaar te brengen die op verschillende plaatsen op de disk is opgeslagen. Zoals bekend zijn joins zware operaties. Oftewel: bij relationele databases komt er voor een eenvoudige dataraadpleging  al veel kijken.

blog-boris-nosql-esri

NoSQL-databases slaan data anders op: bij elkaar, zodat er maar op een plek geschreven hoeft te worden. En voor het ophalen van data hoeft maar op een plek ‘op disk’ worden gekeken. De gedachte is dat NoSQL-databases juist daardoor zo snel zijn. Het is dus een heel andere denkwijze, vandaar dat er wordt gesproken over een paradigmashift.

Dit geeft te denken. Ook voor de manager die ik sprak. NoSQL-databases bieden horizontale schaalbaarheid op de hardware van nu. Gebruik daarom geen duur SAN, maar gebruik een stel dertien-in-een-dozijn computers. NoSQL-databases zijn ontworpen om daarop te kunnen werken. Daardoor is de specifieke specialistische kennis van SAN niet meer nodig (voor beheer) en leidt dat ertoe dat de uiteindelijke investering een stuk lager uitvalt.

 

Ook al bieden NoSQL-databases grote voordelen, Esri blijft relationele databases gewoon ondersteunen.

LinkedInFacebookTwitterDeel deze blogpost
Posted in ArcGIS, Databases, Esri | Tags: , , , | Plaats een reactie