Inhoudsopgave:
- SQL-opdracht schrijven is niet nodig
- U hoeft geen maanden te besteden aan het ontwerpen van schema
- Minder gegevens-transformatiecode (ETL)
- Eenvoudiger om code te onderhouden
- Voer code uit dicht bij de gegevens voor de beste prestaties
- Veel open source-opties
- Eenvoudig te schalen
- Uiteindelijk consistentiegegevensmodel
- Esoterische taalondersteuning
- JavaScript end-to-end
Video: The future of gaming at Google 2024
De populariteit van NoSQL-databases vloeit voort uit het grote aantal ontwikkelaars dat enthousiast is over het gebruik ervan. Ontwikkelaars zien NoSQL als een enabling en bevrijdende technologie. In tegenstelling tot de traditionele relationele aanpak, biedt NoSQL u een manier om met gegevens te werken die dichter bij de toepassing staan dan met het relationele gegevensmodel.
Ontwikkelaars gebruiken NoSQL-technologieën om vele redenen, waarvan sommige hier worden benadrukt:
SQL-opdracht schrijven is niet nodig
Het schrijven van gestructureerde querytaal (SQL) - en dat doet het goed - is de vloek van het bestaan van veel zakelijke ontwikkelaars. Deze pijn is omdat het schrijven van zeer complexe query's met meerdere joins in gerelateerde tabellen niet eenvoudig is. Bovendien is het bijhouden van complexe query-code, in het licht van regelmatige wijzigingen in de database in de tijd, een taak op zich.
Enterprise-ontwikkelaars hebben een aantal manieren verzonnen om te voorkomen dat er SQL wordt geschreven. Een van de populairste manieren is het gebruik van de bibliotheek Object-Relational Mapping (ORM), Hibernate. Hibernate neemt een configuratiebestand en een of meer objecten weg en abstraheert de vervelende SQL zodat ontwikkelaars deze niet hoeven te gebruiken. Dit levert uiteraard kosten op voor de prestaties en lost niet alle gebruiksgevallen van vragen op. Soms moet je terugvallen op SQL.
NoSQL-databases bieden hun eigen query-talen, die zijn afgestemd op de manier waarop de gegevens worden beheerd door de database en op de bewerkingen die ontwikkelaars het vaakst uitvoeren. Deze aanpak biedt een eenvoudiger query-mechanisme dan geneste SQL-instructies.
Sommige NoSQL-databases bieden ook een SQL-interface om query's uit te voeren op NoSQL-databases, voor het geval ontwikkelaars de SQL-gewoonte niet kunnen doorbreken!
U hoeft geen maanden te besteden aan het ontwerpen van schema
Schema-agnostiek in NoSQL-databases stelt u in staat om gegevens snel te laden zonder dat u gedurende een periode van maanden een relationeel schema hoeft aan te maken. U hoeft niet elk gegevensitem afzonderlijk te analyseren dat u in NoSQL moet opslaan, net als bij een RDBMS.
Minder gegevens-transformatiecode (ETL)
Een veelvoorkomend probleem met relationele databases die het gevolg zijn van een schemaontwerp vooraf, is dat u niet-relationele gegevens in rijen en kolommen moet forceren. Dit vernietigingsmechanisme, samen met andere codemethoden die informatie verwerken voor opslag en post-proces voor ophalen, wordt aangeduid als uitpakken, transformeren en laden (ETL) .
Deze code dwingt ontwikkelaars hun mooie glanzende object en documentmodellen te nemen en code te schrijven om elk laatste element op te slaan. Dit is smerig en leidt ook tot zeer bekwame ontwikkelaars die slecht presterende en oninteressante sanitaire code schrijven.
Met NoSQL-databases kunt u de opgeslagen gegevensstructuren veel dichter bij hun oorspronkelijke vorm houden. Gegevens die tussen systemen doorlopen, zijn meestal in een XML-indeling, terwijl als het op webtoepassingen aankomt, de gegevens in een JSON-document zijn opgemaakt. Het kunnen opslaan, beheren en doorzoeken van JSON is een groot voordeel voor applicatieontwikkelaars.
Eenvoudiger om code te onderhouden
Alle code die u schrijft moet worden gehandhaafd. Door databasestructuren dicht bij de gegevensindelingen van de toepassingscode te houden, minimaliseert u de hoeveelheid code, die op zijn beurt het onderhoud van code- en regressietests die u in de loop van de tijd moet doen, tot een minimum beperkt.
Wanneer gegevensstructuren op een RDBMS worden gewijzigd, moet u alle SQL-code die de gewijzigde tabellen gebruikt, controleren. In NoSQL voegt u simpelweg ondersteuning toe voor de nieuwe elementen of negeert u ze gewoon! Veel eenvoudiger te onderhouden, dankzij de schema-agnostische aard van NoSQL-databases.
Voer code uit dicht bij de gegevens voor de beste prestaties
Een RDBMS biedt opgeslagen procedures voor het uitvoeren van code op een databaseserver. Deze code wordt op één plaats uitgevoerd. Deze nuttige benadering vormt de basis van vele analytische en complexe toepassingen voor gegevensbeheer.
Veel NoSQL-databases staan toe dat dit type code wordt gedistribueerd over alle servers die relevante gegevens opslaan, waardoor een grotere parallellisatie van de werkbelasting mogelijk is. Deze aanpak is vooral belangrijk voor grote hoeveelheden gegevens die moeten worden verwerkt en voor complexe aggregatieanalyses tijdens de query.
Door de gebruiker gedefinieerde functies (UDF's) en server-side scripting in verschillende NoSQL-databases bieden deze gedistribueerde mogelijkheid. UDF's zijn vergelijkbaar met de MapReduce-mogelijkheden van Hadoop, behalve dat UDF's in realtime kunnen plaatsvinden in plaats van in de batchmodus en niet dezelfde infrastructuuruitrusting vereisen als Hadoop plus een database zou vereisen.
Veel open source-opties
In veel zakelijke softwaregebieden ontbreekt de keuze voor een solide open-sourceoplossing. Er kunnen slechts een of twee wijdverspreide opties bestaan. Beschikbaarheid van vaardigheden en lokale ondersteuning door het land zijn nog grotere problemen.
Er zijn echter een groot aantal open-source NoSQL-databases. Veel van deze hebben volwaardige commerciële bedrijven die ondersteuning bieden en wereldwijd kantoren hebben. Dus als je ondersteuning of meer functies nodig hebt, kun je uiteindelijk naar die versies gaan.
Dit vermindert de kosten van het gebruik van NoSQL-technologie en stelt u in staat om "te proberen voordat u koopt. "Deze beschikbaarheid van open source-alternatieven heeft ervoor gezorgd dat commerciële bedrijven in de NoSQL-ruimte gratis maar goed uitgeruste versies van hun software hebben aangeboden of speciale opstartlicenties voor kleine organisaties bieden.
Eenvoudig te schalen
U hoeft geen dure DBA te kopen om dagen te besteden aan het reviseren van SQL en het creëren van gematerialiseerde views om elke centimeter aan prestaties uit NoSQL-systemen te kunnen bekijken.
Key-value-winkels kunnen honderdduizenden bewerkingen per server afhandelen. Alle typen NoSQL kunnen horizontaal worden geschaald over relatief goedkope commodity-servers.Het is dus veel eenvoudiger om uw databasecluster te schalen met NoSQL dan met traditionele relationele databases.
Bovendien passen NoSQL-databases vanwege hun schaalvaardigheden ook goed in publieke en private clouds. NoSQL-databases zijn ontworpen om flexibel te zijn en uit te breiden en samen te trekken naarmate het gebruik van uw toepassing verandert. Deze mogelijkheid wordt vaak elasticiteit genoemd.
Uiteindelijk consistentiegegevensmodel
Hoewel bedrijfskritieke zaken ACID-conformiteit vereisen, hoeft niet elke toepassing dit te doen. Het kunnen gebruiken van consistentie over zeer grote clusters kan nuttig zijn voor sommige toepassingen.
Met NoSQL-databases kunt u deze beperkingen versoepelen of sterke consistentie en zwakke consistentie in dezelfde database combineren voor verschillende recordtypen.
Esoterische taalondersteuning
Vrijwel alle databases ondersteunen de belangrijkste programmeertalen zoals Java en C #. NETTO. Veel databases ondersteunen het graag van PHP, Python en Ruby on Rails.
NoSQL heeft een bloeiende verzameling taalstuurprogramma's voor nog meer programmeertalen. Als uw organisatie een domeinspecifieke taal heeft, vindt u hier mogelijk ondersteuning voor in een NoSQL-database.
JavaScript end-to-end
Het gebruik van JavaScript is de afgelopen jaren explosief toegenomen. Het is een handige scripttaal, zowel op internet als, dankzij Node. js, aan de serverzijde.
Veel NoSQL-databases ondersteunen nu volledige end-to-end JavaScript-ontwikkeling. Dit betekent dat uw organisatie nu dezelfde verzameling programmeertaalvaardigheden kan gebruiken om webtoepassingen en API's voor middelhoge niveaus en bedrijfslogica te maken, en om back-enddatabase-triggers en op MapReduce gebaseerde analytische verwerking naast de gegevens te verwerken. Als gevolg hiervan, in vergelijking met andere databasetechnologieën, is de total cost of ownership (TCO) van NoSQL lager.