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 een gerespecteerd en onafhankelijk analist, adviseur, auteur en internationaal bekende spreker. Hij is gespecialiseerd in datawarehousing, business intelligence, big data en databasetechnologie. Hij heeft vele seminars en webinars gepresenteerd en keynotes bij industry-leading conferenties. Hij weet als geen ander een goede balans te vinden tussen op de praktijk toegesneden technologische en strategische zaken. Al meer dan tien jaar is hij de voorzitter van de jaarlijkse European Enterprise Data and Business Intelligence Conference in Londen en de jaarlijkse Data Warehousing en Business Intelligence Summit in Nederland. Rick helpt cliënten wereldwijd met het ontwerpen van hun data warehouse, big data en business intelligence architecturen en begeleid hen bij het selecteren van de geschikte producten. Hij is invloedrijk geweest bij het wereldwijd introduceren van de nieuwe logische datawarehouse architectuur waarmee organisaties meer flexibele business intelligence systemen kunnen ontwikkelen. Rick heeft honderden artikelen en blogs geschreven voor toonaangevende vakbladen en websites en van zijn hand zijn vele educatieve en populaire whitepapers verschenen voor een groot aantal leveranciers. Hij was de auteur van het eerste beschikbare boek over SQL, getiteld Introduction to SQL, dat in vele talen gepubliceerd is en waarvan meer dan 100.000 exemplaren verkocht zijn. Recentelijk publiceerde hij het boek Data Virtualization for Business Intelligence Systems.

Rick verzorgt bij Adept Events een seminar over de architectuur, ontwerp en technologie van het Logisch Datawarehouse alsmede een seminar over het Ontwerpen van Nieuwe Data Architecturen.

Alle blogs van deze auteur

Partners