Varför NoSQL?

Share on FacebookShare on Google+Email this to someoneTweet about this on TwitterShare on LinkedIn

Jag har jobbat med Business Intelligence och Data Warehouse lösningar sedan mitten av nittiotalet. Det har varit som konsult, anställd och presales (tekniskt säljstöd) i varierande roller så som utvecklare, arkitekt och projektledare på olika företag så som H&M, IBM och Oracle. Om någon hade frågat mig om NoSQL är något att satsa på för ett år sedan så hade jag nog sagt att det är en nischteknik som kanske är intressant för specifika lösningar men inget som revolutionerar.

Det var då.

Nu, när jag har ägnat min arbetstid de senaste månaderna till att förstå och jobba med en NoSQL lösning, MarkLogic, så är givetvis min åsikt en annan.

Det är klart att jag är färgad av faktumet att jag är anställd på ovan nämnda företag.

Men.

NoSQL är inte en lösning. NoSQL är olika tekniker som har en gemensam faktor att de inte är relationsbaserade, så som relationsdatabasen, och att SQL inte är det primära frågespråket. NoSQL betydde i början Inte SQL men har över tiden fått en ny betydelse, nämligen Inte Bara SQL då de flesta NoSQL lösningar stödjer SQL.

Det finns primärt fyra olika typer av NoSQL databaser Key-value, Kolumnbaserad, Graph och Dokument. Alla har de olika användning och fördelar.

MarkLogic, som jag arbetar med, är en dokumentdatabas med graph funktionalitet.

Så.

En av många utmaningar som relationsdatabasen har är att allt data som skall lagras måste in i fördefinierade tabeller. Jag måste innan jag läser in eller skapar data i min databas bestämma strukturen, tabeller och kolumner, som det skall lagras i.

Är det verkligen så svårt?

Inte om vi lever i en statisk värld. Om vi redan vet allt innan. Om vi bara behöver hantera en typ av data.

Tänk om…

Om jag i stället kunde läsa in mitt data utan att behöva bry mig om hur det skall lagras. Men ändå kunna söka och hitta i det. Kunna snabbt kombinera data från olika källor utan att skapa en massa nycklar och relationer först.

Det är det som en NoSQL Dokumentdatabas möjliggör, att det kallas för dokument har inte någonting med att det skulle endast vara till för att lagra tex Word dokument (även om man nu kan det) utan att datat lagras som ett dokument, i MarkLogic’s fall som ett XML dokument.

Tanken svindlar om man tänker på vad för nya möjligheter detta öppnar upp. Hur man som organisation kan dra nytta och använda all data.

Det är just detta som gjort att jag numera befinner mig på ett NoSQL företag, även om NoSQL är relativt nytt så är inte MarkLogic ett nytt företag man har funnits sedan 2001.

Så om du frågar mig i dag så kommer jag att svara att NoSQL borde vara en självklar del av varje organisations IT landskap. Det kommer inte helt ersätta relationsdatabasen men kommer att vara det självklara valet för att hantera data med olika strukturer och format.

Jag tänker använda denna blogg för att skriva hur NoSQL och dokumentdatabaser specifikt fungerar och kan användas. Merparten kommer givetvis kretsa runt hur det görs i MarkLogic, du kan ladda hem en gratis utvecklingslicens på http://developer.marklogic.com om du vill återskapa de exempel jag tänkte beskriva, men är i många fall applicerbart på andra lösningar.

/Mats Stellwall

Share on FacebookShare on Google+Email this to someoneTweet about this on TwitterShare on LinkedIn