Una panoramica di NoSQL

click fraud protection

L'acronimo NoSQL è stato coniato nel 1998. Molte persone pensano che NoSQL sia un termine dispregiativo creato per colpire SQL. In realtà, il termine significa Non Solo SQL. L'idea è che entrambe le tecnologie possano coesistere e ognuna abbia il suo posto. Il movimento NoSQL è stato nelle notizie negli ultimi anni poiché molti dei leader del Web 2.0 hanno adottato una tecnologia NoSQL. Aziende come Facebook, Twitter, Digg, Amazon, LinkedIn e Google utilizzano NoSQL in un modo o nell'altro. Analizziamo NoSQL in modo che tu possa spiegarlo al tuo CIO o persino ai tuoi colleghi.

banca dati MYSQL.

NoSQL è nato da un'esigenza

Archivio dati: I dati digitali archiviati nel mondo vengono misurati in exabyte. Un exabyte equivale a un miliardo di gigabyte (GB) di dati. Secondo Internet.com, la quantità di dati memorizzati aggiunti nel 2006 è stata di 161 exabyte. Solo 4 anni dopo, nel 2010, la quantità di dati archiviati sarà di quasi 1.000 ExaBytes, con un aumento di oltre il 500%. In altre parole, ci sono molti dati archiviati nel mondo e continueranno a crescere.

Dati interconnessi: I dati continuano a diventare più connessi. La creazione del web è favorita dai collegamenti ipertestuali, i blog hanno pingback e tutti i principali sistemi di social network hanno tag che legano le cose insieme. I principali sistemi sono costruiti per essere interconnessi.

Struttura dati complessa: NoSQL può gestire facilmente strutture di dati nidificate gerarchiche. Per ottenere la stessa cosa in SQL, avresti bisogno di più tabelle relazionali con tutti i tipi di chiavi. Inoltre, esiste una relazione tra prestazioni e complessità dei dati. Le prestazioni possono peggiorare in un RDBMS tradizionale poiché memorizziamo le enormi quantità di dati richieste nelle applicazioni di social networking e nel web semantico.

Cos'è NoSQL?

Immagino che un modo per definire NoSQL sia considerare cosa non è. Non è SQL e non è relazionale. Come suggerisce il nome, non sostituisce un RDBMS ma lo integra. NoSQL è progettato per archivi dati distribuiti per esigenze di dati su larga scala. Pensa a Facebook con i suoi 500.000.000 di utenti oa Twitter che accumula terabit di dati ogni giorno.

In un database NoSQL, non esiste uno schema fisso e nessun join. Un RDBMS "si amplia" ottenendo hardware sempre più veloce e aggiungendo memoria. NoSQL, d'altra parte, può trarre vantaggio dallo "scaling out". La scalabilità orizzontale si riferisce alla distribuzione del carico su molti sistemi merceologici. Questo è il componente di NoSQL che lo rende una soluzione economica per set di dati di grandi dimensioni.

Categorie NoSQL

L'attuale mondo NoSQL si inserisce in 4 categorie di base.

  1. Negozi di valori-chiave si basano principalmente su La carta Dynamo di Amazon che è stato scritto nel 2007. L'idea principale è l'esistenza di una tabella hash in cui è presente una chiave univoca e un puntatore a un particolare elemento di dati. Queste mappature sono solitamente accompagnate da meccanismi di cache per massimizzare le prestazioni.
    1. Negozi della famiglia di colonne sono stati creati per archiviare ed elaborare grandi quantità di dati distribuiti su molte macchine. Ci sono ancora chiavi ma puntano a più colonne. Nel caso di BigTable (modello Google Column Family NoSQL), le righe sono identificate da una chiave di riga con i dati ordinati e archiviati da questa chiave. Le colonne sono disposte per famiglia di colonne.
  2. Database di documenti sono stati ispirati da Note di loto e sono simili ai negozi di valori-chiave. Il modello è fondamentalmente documenti con versione che sono raccolte di altre raccolte di valori-chiave. I documenti semi-strutturati sono archiviati in formati come JSON.
  3. Database graficoi messaggi sono costruiti con nodi, relazioni tra note e proprietà dei nodi. Invece di tabelle di righe e colonne e della struttura rigida di SQL, viene utilizzato un modello grafico flessibile che può essere scalato su molte macchine.

Principali giocatori NoSQL

I principali attori di NoSQL sono emersi principalmente grazie alle organizzazioni che li hanno adottati. Alcune delle più grandi tecnologie NoSQL includono:

  • Dinamo: Dynamo è stato creato da Amazon.com ed è il database NoSQL Key-Value più importante. Amazon aveva bisogno di una piattaforma distribuita altamente scalabile per le sue attività di e-commerce, quindi ha sviluppato Dynamo. Amazon S3 utilizza Dynamo come meccanismo di archiviazione.
  • Cassandra:Cassandra è stato reso open source da Facebook ed è un database NoSQL orientato alle colonne.
  • Tavolo grande: BigTable è il database orientato alle colonne proprietario di Google. Google consente l'utilizzo di BigTable ma solo per Google App Engine.
  • DB semplice: SimpleDB è un altro database Amazon. Utilizzato per Amazon EC2 e S3, fa parte di Amazon Web Services che addebita commissioni in base all'utilizzo.
  • CouchDB:CouchDB insieme a MongoDB sono database NoSQL orientati ai documenti open source.
  • Neo4J:Neo4j è un database grafico open source.

Interrogare NoSQL

La domanda su come interrogare un database NoSQL è ciò che interessa alla maggior parte degli sviluppatori. Dopotutto, i dati archiviati in un enorme database non servono a nessuno se non puoi recuperarli e mostrarli agli utenti finali o ai servizi web. I database NoSQL non forniscono un linguaggio di query dichiarativo di alto livello come SQL. Invece, l'interrogazione di questi database è specifica del modello di dati.

Molte delle piattaforme NoSQL consentono interfacce RESTful per i dati. Altre API di query dell'offerta. Sono stati sviluppati un paio di strumenti di query che tentano di eseguire query su più database NoSQL. Questi strumenti in genere funzionano su una singola categoria NoSQL. Un esempio è SPARQL. SPARQL è una specifica di query dichiarativa progettata per database a grafi. Ecco un esempio di una query SPARQL che recupera l'URL di un particolare blogger (per gentile concessione di IBM):

PREFISSO spuma: 
SELEZIONA ?url
A PARTIRE DAL
DOVE {
?contributor foaf: nome "Jon Foobar" .
?contributor foaf: weblog ?url .
}

Il futuro di NoSQL

Le organizzazioni che hanno enormi esigenze di archiviazione dei dati stanno prendendo seriamente in considerazione NoSQL. Apparentemente, il concetto non sta ottenendo così tanta trazione nelle organizzazioni più piccole. In un sondaggio condotto da Information Week, il 44% dei professionisti IT aziendali non ha sentito parlare di NoSQL. Inoltre, solo l'1% degli intervistati ha riferito che NoSQL fa parte della loro direzione strategica. Chiaramente, NoSQL ha il suo posto nel nostro mondo connesso, ma dovrà continuare ad evolversi per ottenere il fascino di massa che molti pensano possa avere.