09-03-2017 Door: Rick van der Lans

Hoe bedoel je, SQL is niet geschikt voor big data?

Deel dit bericht

Hardnekkig blijft er gezegd en geschreven worden dat SQL niet geschikt is voor de ontwikkeling van big data systemen. Er wordt verondersteld dat SQL niet de performance en schaalbaarheid heeft die big data systemen vereisen. Sommigen definiëren de term big data zelfs door te stellen dat het data is dat te groot is voor SQL.  

Deze schrijvers en sprekers gebruiken niet altijd de term SQL maar relationele database, terwijl ze wel SQL bedoelen. Het is alsof ze de twee termen ‘relationeel’ en ‘SQL’ als synoniemen beschouwen. Dit is trouwens niet geheel correct. Ten eerste, er zijn niet veel relationele systemen die geen ondersteuning voor SQL bieden, dus naar welke producten wordt dan eigenlijk verwezen? Ten tweede, de meeste SQL-systemen zijn niet 100 procent relationeel, maar laten we die oude discussie maar even vergeten.  Ze gebruiken de term relationeel, maar ze bedoelen SQL.

Enkele voorbeelden van citaten:
• “Relational databases, the dominant technology for storing and managing data, are not designed to handle big data.”
• “There are times when data is either being updated too quickly or the data sets are simply too large to be handled practically by a relational database.”
• “Achieving scalability […] is a huge challenge for relational databases. Relational databases were designed in a period when data could be kept small […].”

Voor de duidelijkheid, om verschillende redenen slaan deze beweringen nergens op:
Ten eerste, SQL is een taal en geen product. SQL kent geen performance, schaalbaarheid of prijs. Een specifiek SQL-product heeft een performanceniveau en kan al dan niet moeite hebben met de ondersteuning van big data. Bijvoorbeeld, sommige SQL-producten, zoals SQLite, hebben een heel kleine footprint, waardoor ze op kleine machines kunnen draaien. Dergelijke SQL-producten zijn zeker niet toegerust voor big data systemen. Maar daar tegenover zijn er SQL-producten die wel degelijk ontwikkeld zijn voor het opslaan en analyseren van big data, zoals Amazon RedShift, Exasol, HP/Vertica,  IBM PureData Systems for Analytics (Netezza), Kognitio en de Teradata databases en  Teradata Aster.

Op de tweede plaats hebben SQL-producten bewezen dat ze gebruikt kunnen worden voor het ontwikkelen van big data systemen. De hoeveelheid gegevens die, bijvoorbeeld, eBay elke dag verwerkt, loopt gemakkelijk op tot een verbazingwekkende 50 petabytes. En zij gebruiken Teradata. Er zijn nog veel meer organisaties die SQL producten inzetten om hun big data systemen te draaien.

Uiteraard zijn er use cases van big data waarvoor specifieke SQL-producten niet over de juiste opslagtechnologie beschikken en waar, bijvoorbeeld, Hadoop of NoSQL-producten beter gebruikt kunnen worden. Maar het tegenovergestelde geldt eveneens, voor sommige big data use cases zal een specifiek SQL-product juist de meeste geschikte optie zijn.
Het punt is dat je dergelijke, generaliserende opmerkingen over SQL niet kunt maken. Zo kan je ook niet zeggen dat films te lang zijn of dat boeken moeilijk te lezen zijn. Je moet specifiek zijn, het moet duidelijk zijn naar welke producten verwezen wordt. Niet alle SQL-producten zijn gelijk.  

En vergeet ook niet dat steeds meer immense big data systemen die ontwikkeld zijn met Hadoop een SQL-on-Hadoop-engine gebruiken, zoals Apache Hive or Impala. Is een SQL-on-Hadoop-engine die draait op Hadoop niet een SQL-product? Een onderzoek verricht door het TDWI laat zien dat 28 procent van de organisaties reeds Hadoop gebruiken, dat 22 procent van al die organisaties met SQL-on-Hadoop werken en dat 36 procent van de organisaties van plan zijn binnen drie jaar Hadoop te gebruiken en ongeveer hetzelfde percentage is van plan een SQL-on-Hadoop-engine in te zetten. Met andere woorden, door deze SQL-on-Hadoop-engines worden steeds vaker SQL-producten gebruikt om big data systemen te ontwikkelen.

Laten we dus niet langer melden dat SQL of relationele databases niet geschikt zijn voor big data. Het is een zinloze bewering. Met SQL-producten kunnen en worden big data systemen ontwikkeld. Naast NoSQL-producten en Hadoop is SQL een effectieve technologie voor de bouw van big data systemen.

Rick van der Lans

Rick van der Lans is onafhankelijk adviseur, docent en auteur op het terrein van datawarehousing, business intelligence, big data en databasetechnologie. Als consultant heeft hij door de jaren heen veel grote bedrijven geadviseerd bij het ontwerpen van hun datawarehouse- en big data architecturen. Rick heeft als spreker op conferenties een zeer goede naam verworven zowel in binnen- als buitenland en is chairman van de jaarlijkse Datawarehousing & BI Summit.  Hij weet als geen ander een goede balans te vinden tussen op de praktijk toegesneden technologische ontwikkelingen en strategische zaken. Hij schrijft voor diverse bekende websites waaronder BI-Platform. Verschillende van zijn boeken, waaronder het populaire "SQL Leerboek", zijn in vele talen gepubliceerd. Recent is van zijn hand verschenen "Data Virtualization for Business Intelligence Systems", alsook tientallen whitepapers over BI. Rick verzorgt bij Adept Events een seminar over Hadoop, NoSQL en Big Data alsmede een seminar over de architectuur, ontwerp en technologie van het Logisch Datawarehouse.

Alle blogs van deze auteur

Partners