Innehållsförteckning:
- Det går inte att skriva SQL
- Behöver inte spendera månader utforma schema
- Mindre datatransformationskod (ETL)
- Det är enklare att behålla koden
- Kör koden nära data för bästa prestanda
- Massor av öppna källalternativ
- Lätt att skala
- Eventuell konsistensdatamodell
- Esoteriskt språkstöd
- End-to-end-JavaScript för JavaScript
Video: The dawn of the age of holograms | Alex Kipman 2024
Populariteten hos NoSQL-databaser härrör från det stora antalet utvecklare som är glada att använda dem. Utvecklare ser NoSQL som en möjlig och befriande teknik. Till skillnad från det traditionella relationella tillvägagångssättet ger NoSQL dig ett sätt att arbeta med data som ligger närmare applikationen än relationsdatamodellen.
Utvecklare antar NoSQL-teknik av många anledningar, varav några är markerade här:
Det går inte att skriva SQL
Skriva strukturerat fråge språk (SQL) - och göra det bra - är banan för många företagsutvecklare. Denna smärta beror på att det är inte lätt att skriva mycket komplexa frågor med flera anslag i relaterade tabeller. Dessutom, med tanke på regelbunden databasförändring över tid, är det ett jobb i sig själv att upprätthålla komplexa frågekoder.
Företagsutvecklare har uppfunnit ett antal sätt att undvika att skriva SQL. Ett av de mest populära sätten är genom användning av Objekt-Relational Mapping (ORM) biblioteket, Hibernate. Hibernate tar en konfigurationsfil och ett eller flera objekt och abstraherar bort den otäcka SQL så att utvecklare inte behöver använda den. Detta kommer till en kostnad i form av prestanda, och löser inte alla användningsfall för frågor. Ibland måste du komma tillbaka till SQL.
NoSQL-databaser ger sina egna fråge språk, som är anpassade till hur data hanteras av databasen och till de operationer som utvecklare oftast utför. Detta tillvägagångssätt ger en enklare sökmekanism än kapslade SQL-satser som gör.
Vissa NoSQL-databaser ger också ett SQL-gränssnitt för att fråga NoSQL-databaser, om utvecklare inte kan bryta SQL-vanan!
Behöver inte spendera månader utforma schema
Schema-agnosticism i NoSQL-databaser gör att du kan ladda data snabbt utan att behöva skapa ett relationsschema över en period av månader. Du behöver inte analysera framsidan varje enskild dataobjekt du behöver lagra i NoSQL, som du gör med en RDBMS.
Mindre datatransformationskod (ETL)
Ett vanligt problem med relationsdatabaser som kommer från att ha en schemaläggning på framsidan är att du måste tvinga icke-relationella data i rader och kolumner. Denna fragmenteringsmekanism, tillsammans med andra kodmetoder som förbehandlar information för lagring och efterprocess för återhämtning, kallas extrakt, transformera och ladda (ETL) .
Den här koden tvingar utvecklarna att ta sina snygga objekt och dokumentmodeller och skriva kod för att lagra varje sista element. Att göra det är otäckt och leder också till högkvalificerade utvecklare som skriver dåligt fungerande och ointressant VVS-kod.
Med NoSQL databaser kan du behålla de lagrade datastrukturerna mycket närmare sin ursprungliga form. Data som flyter in mellan system är vanligtvis i ett XML-format, medan det gäller webapplikationer formateras data i ett JSON-dokument. Att kunna lagra, hantera och söka Jons är en stor fördel för applikationsutvecklare.
Det är enklare att behålla koden
All kod som du skriver måste bibehållas. Genom att hålla databasstrukturer nära programkodens dataformat minimerar du mängden kod, som i sin tur minimerar underhållet av kod- och regressionstestning som du behöver göra över tiden.
När datastrukturer ändras på en RDBMS måste du granska all SQL-kod som kan använda de ändrade tabellerna. I NoSQL lägger du helt enkelt till stöd för de nya elementen, eller bara ignorerar dem! Mycket lättare att underhålla, tack vare schematisk agnostiska naturen hos NoSQL-databaser.
Kör koden nära data för bästa prestanda
En RDBMS tillhandahåller lagrade procedurer för körning av kod på en databasserver. Denna kod utförs på ett ställe. Denna användbara metod är grunden för många analytiska och komplexa datahanteringsapplikationer.
Många NoSQL-databaser tillåter att denna typ av kod distribueras över alla servrar som lagrar relevant data, vilket möjliggör en större parallellisering av arbetsbelastningen. Detta tillvägagångssätt är särskilt viktigt för stora intag av data som behöver bearbetning och för komplex aggregeringsanalys vid förfrågningstid.
Användardefinierade funktioner (UDF) och skript på serversidan i en mängd olika NoSQL-databaser ger denna distribuerade kapacitet. UDF: s liknar Hadops MapReduce-kapacitet, förutom att UDF kan hända i realtid i stället för i batch-läge och kräver inte samma utlägg i infrastruktur som Hadoop plus en databas skulle kräva.
Massor av öppna källalternativ
I många företagsprogramvaror saknas valet av en solid öppen källkodslösning. Endast en eller två utbredda alternativ kan finnas. Tillgängligheten av kompetens och lokalt stöd i landet är ännu större problem.
Det finns dock en myriad av NoSQL-databaser med öppen källkod. Många av dessa har fullfjädrada kommersiella företag som erbjuder stöd och har kontor globalt. Så om du behöver support eller fler funktioner kan du flytta till dessa versioner så småningom.
Detta minskar kostnaden för att anta NoSQL-teknik och låter dig "försöka innan du köper. "Denna tillgänglighet av open source-alternativ har lett till att kommersiella företag i NoSQL-rymden erbjuder gratis men välfungerade versioner av deras programvara eller att erbjuda speciella startlicenser till små organisationer.
Lätt att skala
Du behöver inte få en dyr DBA för att spendera dagar som refactoring SQL och skapa materialiserade visningar för att eeka varje tum av prestanda ur NoSQL-system.
Viktiga butiker kan hantera hundratusentals operationer per server. Alla typer av NoSQL kan skala horisontellt över relativt billiga råvararservrar.Så det är mycket lättare att skala din databaskluster med NoSQL än med traditionella relationsdatabaser.
Dessutom, på grund av sin förmåga att skala, passar NoSQL-databaser också bra in i offentliga och privata moln. NoSQL databaser är utformade för att vara flexibla och expandera och kontrakt som användningen för din ansökan förändring. Denna egenskap kallas ofta elasticitet .
Eventuell konsistensdatamodell
Även om missionskritiska fall kräver ACID-överensstämmelse, behöver inte varje applikation göra det. Att kunna slappna av konsistens över mycket stora kluster kan vara användbart för vissa applikationer.
Med NoSQL databaser kan du slappna av dessa hinder eller blanda och matcha stark konsistens och svag konsistens i samma databas, för olika skivtyper.
Esoteriskt språkstöd
Nästan alla databaser stöder de viktigaste programmeringsspråken som Java och C #. NETTO. Många databaser stöder liknande som PHP, Python och Ruby on Rails.
NoSQL har en blomstrande uppsättning språkdrivrutiner för ett ännu större utbud av programmeringsspråk. Om din organisation har ett domänspecifik språk kan du få stöd för det i en NoSQL-databas.
End-to-end-JavaScript för JavaScript
Användning av JavaScript har exploderat de senaste åren. Det är ett bekvämt skriptspråk både på webben och tack vare nod. js, på serverns sida.
Många NoSQL-databaser stöder nu fullständig end-to-end-JavaScript-utveckling. Det innebär att din organisation nu kan använda samma pool av programmeringsspråksförmåga för att skapa webbapplikationer och API-datorer för mellanslagsdata och affärslogik, samt hantera backend-databasutlösare och MapReduce-baserad analytisk bearbetning bredvid data.
Som ett resultat är den totala kostnaden för ägande (TCO) för NoSQL i jämförelse med andra databassteknologier lägre.