Skip to main content

Panoramica dei database NoSQL

Cosa c'è dietro lo sviluppo di un'app: UI/UX, Linguaggi lato Server e Database (Potrebbe 2024)

Cosa c'è dietro lo sviluppo di un'app: UI/UX, Linguaggi lato Server e Database (Potrebbe 2024)
Anonim

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 possono coesistere e ognuna ha 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 anche ai tuoi colleghi di lavoro.

NoSQL è emerso da un bisogno

Archivio dati: I dati digitali memorizzati nel mondo sono 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 era di 161 exabyte. Solo 4 anni dopo, nel 2010, la quantità di dati archiviati sarà di quasi 1.000 ExaBytes, con un incremento di oltre il 500%. In altre parole, ci sono molti dati memorizzati nel mondo e continuerà a crescere.

Dati interconnessi: I dati continuano a diventare più connessi. La creazione del web favorito in collegamenti ipertestuali, i blog hanno pingback e tutti i principali 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 gerarchiche annidate. Per realizzare 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 degradarsi in un RDBMS tradizionale poiché memorizziamo le enormi quantità di dati richiesti nelle applicazioni di social networking e nel web semantico.

Cos'è NoSQL?

Immagino che un modo per definire NoSQL sia quello di considerare ciò che non è. Non è SQL e non è relazionale. Come suggerisce il nome, non è un sostituto di un RDBMS ma lo completa. NoSQL è progettato per archivi di dati distribuiti per esigenze di dati su larga scala. Pensa a Facebook con i suoi 500.000.000 di utenti o Twitter che accumula Terabits di dati ogni giorno.

In un database NoSQL, non esiste uno schema fisso e nessun join. Un RDBMS "scala" ottenendo hardware sempre più veloce e aggiungendo memoria. NoSQL, d'altra parte, può trarre vantaggio dal "ridimensionamento". Il ridimensionamento si riferisce alla diffusione del carico su molti sistemi di merci. Questo è il componente di NoSQL che lo rende una soluzione economica per dataset di grandi dimensioni.

Categorie NoSQL

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

  1. Memorie di valori chiave si basano principalmente su Amazon Dynamo Paper, che è stato scritto nel 2007. L'idea principale è l'esistenza di una tabella hash in cui vi è 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. Famiglia di colonne sono stati creati per archiviare e elaborare grandi quantità di dati distribuiti su molte macchine. Ci sono ancora le chiavi ma puntano a più colonne. Nel caso di BigTable (modello NoSQL della famiglia di colonne di Google), le righe sono identificate da una chiave di riga con i dati ordinati e memorizzati da questa chiave. Le colonne sono organizzate per famiglia di colonne.
  2. Database di documentis sono stati ispirati da Lotus Notes e sono simili ai negozi di valore-chiave. Il modello è fondamentalmente documenti con versioni che sono raccolte di altre collezioni di valori-chiave. I documenti semi-strutturati sono archiviati in formati come JSON.
  3. Database graficos sono costruiti con i nodi, le relazioni tra le note e le proprietà dei nodi. Invece delle tabelle di righe e colonne e della struttura rigida di SQL, viene utilizzato un modello di grafico flessibile che può essere scalato su molte macchine.

Major NoSQL Players

I principali attori di NoSQL sono emersi principalmente a causa delle 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 ha avuto bisogno di una piattaforma distribuita altamente scalabile per le proprie attività di e-commerce, così hanno sviluppato Dynamo. Amazon S3 utilizza Dynamo come meccanismo di archiviazione.
  • Cassandra: Cassandra è stato aperto da Facebook ed è un database NoSQL orientato alle colonne.
  • Tavolo grande: BigTable è il database proprietario basato su colonne di Google. Google consente l'utilizzo di BigTable ma solo per Google App Engine.
  • SimpleDB: 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 al documento open source.
  • Neo4j: Neo4j è un database grafico open source.

Interrogare NoSQL

La domanda su come interrogare un database NoSQL è ciò a cui la maggior parte degli sviluppatori è interessata. Dopo tutto, i dati memorizzati in un enorme database non fanno bene nessuno se non riesci a recuperarlo e mostrarlo agli utenti finali o ai servizi web. I database NoSQL non forniscono un linguaggio di query dichiarativo di alto livello come SQL. Invece, interrogare questi database è specifico del modello di dati.

Molte delle piattaforme NoSQL consentono interfacce RESTful ai dati. Altre API di query di offerta. Esistono un paio di strumenti di query che sono stati sviluppati per tentare di interrogare più database NoSQL. Questi strumenti funzionano generalmente su una singola categoria NoSQL. Un esempio è SPARQL. SPARQL è una specifica di query dichiarativa progettata per database di grafici. Ecco un esempio di una query SPARQL che recupera l'URL di un particolare blogger (per gentile concessione di IBM):

PREFIX foaf: SELECT? UrlA 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 studiando seriamente NoSQL. Apparentemente, il concetto non sta ottenendo la stessa trazione nelle organizzazioni più piccole. In un sondaggio condotto da Information Week, il 44% dei professionisti IT aziendali non ha mai sentito parlare di NoSQL. Inoltre, solo l'1% degli intervistati ha riferito che NoSQL è una parte della loro direzione strategica. Chiaramente, NoSQL ha il suo posto nel nostro mondo connesso, ma dovrà continuare ad evolversi per ottenere l'appello di massa che molti pensano che possa avere.