Oggi chi sviluppa o propone nuove tecnologie per la gestione dati si trova a fronteggiare due sfide principali: la mole sempre crescente di informazioni da processare e la gestione di dati di natura molto eterogenea generati dalle società nel corso di anni di attività.
I database NoSQL nascono come possibile soluzione e, in particolare, sono dedicati alla gestione in ambiente distribuito di grandi quantità di dati eterogenei tra loro. Questa tipologia di database nasce come un movimento nel 2009, conseguenza di una serie di conferenze tenute da Jon Oskarsson e, in breve tempo, si sviluppano numerose soluzioni alternative dalle caratteristiche più disparate. Rick Cattell, nell’articolo “Scalable SQL and NoSQL Data Stores” elenca le proprietà comuni alla maggioranza dei sistemi di tipo NoSQL, tra cui spicca la possibilità di scaling orizzontale per “operazioni semplici” per la gestione di big data. Con ciò si intende la possibilità di distribuire i dati e le operazioni su macchine fisiche differenti, senza memoria o dischi rigidi in comune, al fine di parallelizzare le operazioni e ottenere un minore quantitativo di dati da elaborare per singolo server.
Per clienti con l’esigenza cosiddetta di legacy modernization, cioè adattare al mercato di oggi, sempre più competitivo dal punto di vista tecnologico, sistemi che utilizzano tecnologie superate l’applicazione di sistemi No SQL è una possibile soluzione.
A tale scopo è importante individuare sistemi competitivi ed efficaci su cui basare la propria strategia come ad esempio la piattaforma open source MongoDB che permette di soddisfare l’esigenza di compattare strutture basate su una varietà di database.
I vantaggi dell’adottare questa piattaforma sono:
- Adattamento in tempo reale all’applicativo indipendentemente dal tipo di dato.
- Serie di tool per la sicurezza e monitoraggio e backup.
- Scalabilità orizzontale: viene introdotto il concetto di “replica set” per il “disaster recovery”. Si tratta di un sistema a nodi primari e secondari per la replicazione dei dati. L’applicativo si interfaccia con il database con il cosiddetto “driver” che permette di interagire con i nodi primari e secondari del database. Sul nodo primario vengono permesse le letture e scritture mentre sui nodi secondari vengono solo replicati i dati (in alcune casistiche la lettura e scrittura è permessa anche nei nodi secondari).
- Offerta da parte della comunity mongoDB di servizi dedicati alla formazione e alla consulenza.
- Il database rimane il medesimo indipendentemente dall’ambiente di installazione (locale, server, cloud).
- Performance elevate grazie al concetto di schema free dei documenti.
- Gestione ottimale delle transazioni in quanto non viene bloccato l’intero db ma solo i documenti coinvolti nella transazione.
In conclusione MongoDB è definibile come uno dei prodotti più general purpose tra le soluzioni NoSQL, ma tale mancanza di specializzazione non rappresenta necessariamente una caratteristica negativa e la capacità di modellare un gran numero di situazioni differenti presenta importanti vantaggi in applicazioni dedicate all’analisi di dati.