Inhoudsopgave:
- Minder behoefte aan ETL
- Ondersteuning voor ongestructureerde tekst
- Mogelijkheid om wijzigingen in de tijd af te handelen
- Geen vertrouwen op SQL-magie
- Horizontaal schalen op commodity-hardware
- Breedte van functionaliteit
- Ondersteuning voor meerdere gegevensstructuren
- Leverancierskeuze
- Geen oude code
- Code uitvoeren naast de gegevens
Video: What is Database & SQL? 2024
bieden. NoSQL-databases zijn geen directe vervanging voor een relationeel databasebeheersysteem (RDBMS). Voor veel gegevensproblemen is NoSQL echter een betere combinatie dan een RDBMS.
Minder behoefte aan ETL
NoSQL-databases ondersteunen het opslaan van gegevens "zoals het is. "Sleutelwaardevoorraden bieden u de mogelijkheid om eenvoudige gegevensstructuren op te slaan, terwijl document NoSQL-databases u de mogelijkheid bieden om een reeks platte of geneste structuren aan te kunnen.
De meeste gegevens die tussen systemen vliegen, doen dit als een bericht. Doorgaans nemen de gegevens een van de volgende indelingen:
-
Een binair object dat door een reeks lagen wordt geleid
-
Een XML-document
-
Een JSON-document
Deze indelingen native kunnen verwerken in een reeks van NoSQL-databases verminderen de hoeveelheid code die u moet converteren van het brongegevensformaat naar het formaat dat moet worden opgeslagen. Dit wordt genoemd, extraheer, transformeer en laad (ETL).
Met deze aanpak vermindert u de hoeveelheid code die nodig is om een NoSQL-database te gebruiken aanzienlijk. Bovendien, omdat u niet hoeft te betalen voor updates van deze "sanitair" -code, zijn de doorlopende onderhoudskosten aanzienlijk lager.
Ondersteuning voor ongestructureerde tekst
Het overgrote deel van de gegevens in bedrijfssystemen is ongestructureerd. Veel NoSQL-databases kunnen indexering van ongestructureerde tekst verwerken als een native functie (MarkLogic Server) of een geïntegreerde set van services, waaronder Solr of Elasticsearch.
Het kunnen beheren van ongestructureerde tekst vergroot de informatie aanzienlijk en kan organisaties helpen betere beslissingen te nemen. Geavanceerde toepassingen omvatten bijvoorbeeld ondersteuning voor meerdere talen met gefacetteerde zoekopdrachten, snippetfunctionaliteit en ondersteuning voor woorden. Geavanceerde functies omvatten ook ondersteuning voor woordenboeken en thesauri.
Bovendien kunt u met behulp van zoekwaarschuwingsacties op gegevensinvoer genoemde entiteiten extraheren uit mappen, zoals lijsten met personen, plaatsen en organisaties, waardoor tekstgegevens beter kunnen worden gecategoriseerd, getagd en doorzocht.
Diensten voor verrijking van entiteiten, zoals SmartLogic, OpenCalais, NetOwl en TEMIS Luxid die uitgepakte informatie combineren met andere informatie, bieden een uitgebreid verweven informatieweb en verbeteren efficiënte analyse en gebruik.
Mogelijkheid om wijzigingen in de tijd af te handelen
Vanwege de schema-agnostische aard van NoSQL-databases zijn ze zeer goed in staat veranderingen te beheren - u hoeft ETL-routines niet te herschrijven als de XML-berichtenstructuur tussen systemen verandert.
Sommige NoSQL-databases gaan nog een stap verder en bieden een universele index voor de structuur, waarden en tekst in informatie.Microsoft DocumentDB en MarkLogic Server bieden beide deze mogelijkheid.
Als een documentstructuur verandert, stellen deze indexen organisaties in staat de informatie onmiddellijk te gebruiken, in plaats van enkele maanden te moeten wachten voordat u systemen kunt testen en herschrijven.
Geen vertrouwen op SQL-magie
Structured Query Language (SQL) is de overheersende taal die wordt gebruikt voor het opvragen van relationele databasebeheersystemen. Query's kunnen structureren zodat ze goed presteren, is door de jaren heen een netelige kunst geworden. Complexe multitable-joins zijn niet eenvoudig om uit het geheugen te schrijven.
Hoewel verschillende NoSQL-databases SQL-toegang ondersteunen, doen ze dit voor compatibiliteit met bestaande applicaties zoals BI-tools (Business Intelligence). NoSQL-databases ondersteunen hun eigen toegangstalen die de opgeslagen gegevens kunnen interpreteren in plaats van een relationeel model binnen de onderliggende database te vereisen.
Deze meer op ontwikkelaars gerichte mentaliteit bij het ontwerpen van databases en hun toegang tot API's (application programming interfaces) zijn de reden dat NoSQL-databases erg populair zijn geworden onder applicatie-ontwikkelaars.
Applicatieontwikkelaars hoeven niet de interne werking en grillen van databases te kennen alvorens ze te gebruiken. NoSQL-databases stellen ontwikkelaars in staat om te werken aan wat nodig is in de applicaties in plaats van te proberen relationele databases te dwingen te doen wat nodig is.
Horizontaal schalen op commodity-hardware
NoSQL-databases verwerken partitionering ( sharding ) van een database over meerdere servers. Dus als uw vereisten voor gegevensopslag te hoog worden, kunt u doorgaan met het toevoegen van goedkope servers en deze koppelen aan uw databasecluster ( horizontale schaal ) waardoor ze als een enkele gegevensservice werken.
Vergelijk dit met de relationele databasewereld waar u nieuwe, krachtigere en dus duurdere hardware moet aanschaffen om op te schalen ( verticaal schalen ). Als u de hoeveelheid gegevens die u opslaat verdubbelt, verviervoudigt u gemakkelijk de kosten van de hardware die u nodig hebt.
Het bieden van duurzaamheid en hoge beschikbaarheid van een NoSQL-database met behulp van goedkope hardware en opslag is een van de belangrijkste troeven van NoSQL. In staat zijn om dit te doen terwijl het royale schaalbaarheid biedt voor vele toepassingen, doet ook geen pijn!
Breedte van functionaliteit
De meeste relationele databases ondersteunen dezelfde functies, maar op een enigszins andere manier, dus ze zijn allemaal vergelijkbaar.
NoSQL-databases bevatten vier kerntypen: sleutelwaarde-, kolom-, document- en drievoudige winkels. Binnen deze typen kunt u een database vinden die past bij uw specifieke (en bijzondere!) Behoeften. Met zo veel keuze vindt u ongetwijfeld een NoSQL-database die uw problemen met de toepassing zal oplossen.
Ondersteuning voor meerdere gegevensstructuren
Veel toepassingen hebben eenvoudige objectopslag nodig, terwijl andere zeer complexe en onderling gerelateerde structuuropslag vereisen. NoSQL-databases bieden ondersteuning voor een reeks datastructuren.
-
Eenvoudige binaire waarden, lijsten, kaarten en strings kunnen met hoge snelheid worden afgehandeld in winkels met belangrijke waarden.
-
Verwante informatiewaarden kunnen worden gegroepeerd in kolomfamilies binnen Bigtable-klonen.
-
Zeer complexe ouder-kind hiërarchische structuren kunnen worden beheerd binnen documentdatabases.
-
Een web van onderling gerelateerde informatie kan flexibel worden beschreven en gerelateerd aan triple- en graph-winkels.
Leverancierskeuze
De NoSQL-industrie is overspoeld met databases, hoewel er al veel minder dan tien jaar bestaan. IBM, Microsoft en Oracle hebben bijvoorbeeld pas onlangs hun tenen in deze markt gedompeld. Veel leveranciers richten zich dus op een specifiek publiek met hun eigen innovatiebron.
Open-] bronvarianten zijn beschikbaar voor de meeste NoSQL-databases, waardoor bedrijven NoSQL-databases met minimaal risico kunnen verkennen en beginnen te gebruiken. Deze bedrijven kunnen hun nieuwe methoden vervolgens naar een productieplatform brengen met behulp van bedrijfsaanbiedingen.
Geen oude code
Omdat ze zo nieuw zijn, hebben NoSQL-databases geen oudere code, wat betekent dat ze geen ondersteuning hoeven te bieden voor oude hardwareplatforms of vreemde en zelden gebruikte functionaliteit moeten bijwerken.
NoSQL-databases hebben een snel tempo op het gebied van ontwikkeling en rijping. Nieuwe functies worden de hele tijd vrijgegeven en nieuwe en bestaande functies worden regelmatig bijgewerkt (dus hoeven NoSQL-leveranciers geen erg grote codebasis te onderhouden). In feite vinden nieuwe grote releases jaarlijks plaats in plaats van elke drie tot vijf jaar.
Code uitvoeren naast de gegevens
Er zijn in het tijdperk van Hadoop NoSQL-databases gemaakt. Hadoop's sterk gedistribueerde bestandssysteem (HDFS) en batchverwerkingsomgeving (Map / Reduce) signaleerden veranderingen in de manier waarop gegevens worden opgeslagen, bevraagd en verwerkt.
Query's en verwerkingswerk gaan nu over naar meerdere servers, die hoge niveaus van parallellisatie bieden voor zowel ingest als query-workloads. Het kunnen berekenen van aggregaties naast de gegevens is ook de norm geworden.
U hebt niet langer een afzonderlijk gegevensmagazijnsysteem nodig dat 's nachts wordt bijgewerkt. Met snelle aggregaties en queryafhandeling wordt de analyse doorgegeven aan de database voor uitvoering naast de gegevens, wat betekent dat u niet veel gegevens rond een netwerk hoeft te verzenden om lokaal gecombineerde analyse te realiseren.