12 Agosto 2015 silviomarano

Big Data e NoSQL

Il paradigma NoSQL (Not Only SQL) è nato come alternativa al più classico modello SQL (Structured Query Language). Le motivazioni alla base della nascita del modello NoSQL sono da ricercarsi nella necessità di avere maggiore flessibilità e prestazioni;
big-data-sql-nosql necessità che diventano man mano più pressanti quando si deve lavorare su basi di dati complesse di enormi dimensioni e con l’avvento dei big data in vari campi della ricerca analitica o per servizi web che lavorano su dati di milioni di utenti come i social network, sono stati un passo obbligato per venire incontro alle “4 V dei BigData” e offrire così scalabilità orizzontale in maniera distribuita sulla rete e al contempo prestazioni elevate e flessibilità nell’archiviazione. Tutto però ha un prezzo e come vedremo le maggiori prestazioni e la maggior flessibilità non vengono a costo zero.

Le 4 V dei Big Data e il NoSQL

I Big Data rappresentano una quantità enorme di dati variegati. Le caratteristiche dei Big Data possono essere racchiuse in 4 attributi:

  • Volume: indica la dimensione dell’insieme di dati e si riferisce alla capacità di memorizzare e accedere a grandi quantità di dati che possono arrivare anche fino a miliardi di Terabyte;
  • Varietà: i dati che costituiscono questo gigantesco insieme di informazioni provengono da fonti eterogenee e appartengono a tipologie differenti. Possiamo avere dati testuali, immagini, suoni, video e file di qualsiasi tipo. Non ci troviamo di fronte a dati strutturati e omogenei;
  • Velocità: le analisi sui dati devono avvenire a enorme velocità per poter essere utilizzati nei vari campi applicativi, dato che si evolvono continuamente;
  • Veridicità: poiché le analisi sui Big Data hanno larghissimo impiego nel supporto decisionale, bisogna essere sicuri siano affidabili o altrimenti possono portare a considerazioni errate con effetti nefasti.

Gli RMDB a causa della bassa flessibilità e poca scalabilità non sono adeguati a supportare le prime tre “V” dei Big Data (volume, varietà e velocità). I NoSQL invece possono fare leva sulle seguenti caratteristiche che ben si sposano con le caratteristiche dei Big Data:

  • Cloud friendliness: Devono essere adatti a operare in un ambiente multi‐nodo distribuito in modo robusto, consentendo il funzionamento in caso aggiunta e rimozione dei nodi, supportando lo sharding dei dati, ossia la distribuzione delle informazioni su vari nodi, e la replicazione dei dati su più nodi.
  • Bassa complessità: Gli RMDB necessitano di infrastrutture complesse per il mantenimento dei dati e l’allineamento degli stessi. Siccome le prestazioni sono fondamentali, è necessario adottare strutture più semplici da gestire.
  • Flessibilità: Devono essere in grado di gestire informazioni di natura diversa e mutabile che non rispetta degli schemi rigidi e prefissati.
  • Scalabilità Orizzontale: L’aggiunta di macchine e la rimozione delle stesse dal cluster, deve avvenire senza troppa difficoltà e soprattutto senza che il sistema debba essere arrestato o subire rallentamenti.

Tipologie di modello dati

I database NoSQL si suddividono in 5 categorie principali a seconda del modello di gestione dati utilizzato:

  • Chiave valore
  • Colonnari
  • Orientati al documento
  • A grafo
  • Ibridi, ossia che possono utilizzare sistemi criteri misti tra le tipologie elencate pocanzi

Le caratteristiche possono variare anche in modo significativo a seconda dell’implementazione, ma si può definire comunque qual è in linea di massima il rapporto tra le varie caratteristiche in relazione alla tipologia di database. Tipologie di database con strutture più semplici, garantiscono tendenzialmente prestazioni molto più elevate a prezzo di maggiori limitazioni sulla possibilità di effettuare interrogazioni più complesse.

Tipo Performance Scalabilità Flessibilità Complessità Strutturale Funzionalità Interrogazioni
Chiave-Valore Molto Elevate Molto Elevata Elevata Molto bassa Minimali
Colonnare Molto Elevate Molto Elevata Moderata Bassa Minimali
A documenti Elevate Elevata Elevata Bassa Medio basse
A grafo Moderate Moderata Elevata Elevata Elevate
RMDB Basse Bassa Bassa Moderata Elevate

Schema e correlazione dati:

Tipo Schema Correlazione Dati Note
Chiave-Valore NO NO Query molto performanti su grandi moli di dati. Altissima concorrenza
Colonnare SI SI Query molto performanti su grandi moli di dati. Singola riga famiglia di colonne non separabile
A documenti NO NO Query performanti su grandi moli di dati. Ottima versatilità.
A grafo NO SI Dati fortemente relazionati

Soddisfare contemporaneamente tutti e tre i vincoli  del teorema di Brewer (Consistency, Availability e Partition tolerance) non è possibile se non in modo “approssimato” e le varie soluzioni NoSQL attualmente in circolazione focalizzano l’attenzione su differenti vincoli. Per dare una panoramica generale ho realizzato una tabella dei principali database NoSQL in circolazione, dove si evidenzia il tipo i vincoli CAP e il linguaggio implementativo utilizzato (se noto).

Nome Tipo Linguaggio CAP
Aerospike Chiave-Valore C AP
Berkeley DB Chiave-Valore C CP
BigTable Colonnare C++ CP
Cassandra Colonnare Java AP
Couchbase A documenti C++ \ Erlang AP
CouchDB A documenti Erlang AP
DynamoDB Chiave-Valore nc AP
Hbase Colonnare Java CP
Hypertable Colonnare C++ CP
KAI Chiave-Valore Erlang AP
MongoDB A documenti C++ \ Javascript CP
Neo4J A grafo Java CA
Oracle NoSQL Chiave-Valore Java CP o AP
OrientDB A grafo Java CA
Redis Chiave-Valore C CP
Riak Chiave-Valore Erlang AP
Scalaris Chiave-Valore Erlang CP
SimpleDB A documenti Erlang AP
Terrastore A documenti Java CP
Tokyo Cabinet Chiave-Valore C++ AP
Vertica Colonnare nc CP
Voldemort Chiave-Valore Java AP

Nella sezione pubblicazioni potrete scaricare il mio paper completo sulle varie tipologie di NoSQL.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Sviluppo software su misura

Entra in contato con me!

Translate »
www.000webhost.com