Con­fron­tan­do MongoDB e Cassandra emergono molte affinità. Tuttavia, vengono uti­liz­za­ti per scopi diversi: MongoDB è ap­prez­za­to per la sca­la­bi­li­tà ottimale, mentre Cassandra spicca per la migliore di­spo­ni­bi­li­tà.

MongoDB e Cassandra: due dei database NoSQL di maggior successo

MongoDB e Cassandra sono due dei più im­por­tan­ti database NoSQL. Uti­liz­za­ti da svariate aziende famose e di successo, offrono servizi perfetti anche per gli utenti con esigenze inferiori.

N.B.

Con il costante aumento della quantità e della tipologia di dati, i sistemi di gestione di database di­stri­bui­to e i database NoSQL hanno acquisito più im­por­tan­za. Queste soluzioni non re­la­zio­na­li sono ap­prez­za­te sia per l’elevata sca­la­bi­li­tà sia per la grande af­fi­da­bi­li­tà. Quando il volume di dati aumenta, anche i sistemi crescono pro­por­zio­nal­men­te, man­te­nen­do tuttavia la loro struttura ordinata.

MongoDB si basa sulle raccolte e sui documenti

Prima di pre­sen­ta­re MongoDB e Cassandra in dettaglio e con­fron­tar­li, vale la pena di dare uno sguardo ai punti di forza di MongoDB. Il nome di questo sistema deriva dall’inglese “huMONGOus” (traducile con “gigante”). Il database è stato svi­lup­pa­to nel 2009 dall’azienda 10gen (oggi MongoDB, Inc.) ed è tuttora di­stri­bui­to con Server Side Public License pro­prie­ta­ria. Scritto in C++, salva i dati in raccolte e documenti. MongoDB, di­spo­ni­bi­le in una versione Community gratuita e in una versione En­ter­pri­se pro­prie­ta­ria, è uno dei database di maggior successo al mondo.

Consiglio

Un database NoSQL proprio come lo vuoi tu: sce­glien­do Managed MongoDB di IONOS potrai contare sulla massima sca­la­bi­li­tà, un’analisi dei dati completa e l’hardware ottimale per il tuo carico di lavoro. Scegli subito l’offerta più adatta alle tue esigenze!

Cassandra: il database a colonne

Anche se MongoDB e Cassandra si dif­fe­ren­zia­no per molti punti, sono stati ri­la­scia­ti per la prima volta nello stesso periodo: Cassandra ha fatto la sua comparsa già nel 2008, svi­lup­pa­to però ancora in esclusiva per Facebook. Nel 2009 la Apache Software Foun­da­tion ha rilevato il lavoro sul sistema di gestione di database NoSQL mul­ti­piat­ta­for­ma, pro­gram­ma­to in Java e con logica di fun­zio­na­men­to a colonne.

Oltre agli inventori Avinash Lakshman e Prashant Malik, allo sviluppo di Cassandra hanno par­te­ci­pa­to aziende come DataStax, IBM e Twitter. Oggi il sistema è di­stri­bui­to con la licenza Apache ed è di­spo­ni­bi­le in una versione gratuita e diverse versioni a pagamento. Cassandra è uno dei database a colonne più popolari al mondo.

Scopo d’impiego e sca­la­bi­li­tà

Entrambe le opzioni sono adatte so­prat­tut­to per elaborare raccolte di dati par­ti­co­lar­men­te grandi adottando l’approccio NoSQL. Tutte e due possono così gestire anche dati non strut­tu­ra­ti, in quanto agiscono se­pa­ra­ta­men­te dalle tabelle, lavorando su diversi nodi, per una maggiore sca­la­bi­li­tà. Rispetto alla con­cor­ren­za SQL, i due sistemi sono quindi perfetti sia per le società che da subito devono gestire grandi quantità di dati, sia per le aziende che all’inizio po­treb­be­ro non essere in grado di prevedere il loro fab­bi­so­gno, che poi aumenta col tempo.

MongoDB è la scelta migliore per gestire dati pre­va­len­te­men­te non strut­tu­ra­ti. Tutti e due i sistemi sono adatti per svolgere questo compito, ma grazie alla sua fles­si­bi­li­tà MongoDB assicura che il database possa essere scalato ancora meglio. Anche Cassandra è fles­si­bi­le: la sua struttura riprende lo stile SQL, quindi permette di passare a NoSQL un po’ più fa­cil­men­te. Con CQL, Cassandra utilizza un lin­guag­gio di query che as­so­mi­glia ai database tra­di­zio­na­li. Nel confronto diretto con Cassandra, MongoDB si posiziona al secondo posto per via del lin­guag­gio di query proprio, che prima di poter essere uti­liz­za­to deve essere appreso.

Compute Engine
La soluzione IaaS ideale per i tuoi carichi di lavoro
  • vCPU estre­ma­men­te van­tag­gio­se e potenti core dedicati
  • Massima fles­si­bi­li­tà senza periodo con­trat­tua­le minimo
  • Servizio di as­si­sten­za tecnica 24 ore su 24, 7 giorni su 7

MongoDB e Cassandra: approcci

MongoDB e Cassandra per­se­guo­no obiettivi simili, ma il loro approccio è dia­me­tral­men­te opposto. MongoDB salva i dati in documenti creati all’interno di raccolte. Ciascun documento è formato da coppie chiave-valore. Le chiavi sono so­stan­zial­men­te sequenze di caratteri. I valori possono essere ad esempio valori booleani, dati, altri documenti, numeri o anche sequenze di caratteri. Invece, Cassandra è orientato alle colonne (nelle Sorted String Table) e par­ti­zio­na per righe. Le SSTable non possono essere mo­di­fi­ca­te in un secondo momento. Con­ten­go­no un insieme ordinato di coppie chiave-valore. Anche se Cassandra è con­si­de­ra­to un database NoSQL, il suo approccio è più di tipo “Not only SQL”. Cassandra Query Language è tuttavia molto più fles­si­bi­le.

Modelli di dati

La maggiore fles­si­bi­li­tà di MongoDB emerge so­prat­tut­to con­fron­tan­do i modelli di dati con quelli di Cassandra. MongoDB lavora senza un vero e proprio schema e usa il formato BSON, simile a JSON. Un registro del personale potrebbe ad esempio pre­sen­tar­si come segue:

Collaboratore: [
{
ID_collaboratore: "1",
Nome: "Maria Rossi",
Città: "Vicenza"
},
{
ID_collaboratore: "2"
Settore: "IT"
e-mail: agallo@esempio.it
}]
bson

Cassandra invece si affida alle classiche tabelle, di­vi­si­bi­li in righe e colonne, e salva i dati come coppie chiave-valore. Un registro del personale analogo avrebbe quindi questo aspetto:

ID_collaboratore 1 colonna - Nome		colonna - Città
		Valore - Maria Rossi	Valore - Vicenza
ID_collaboratore 2 colonna - Nome		colonna - Settore		colonna - e-mail
		Valore - Andrea Gallo	Valore - IT		Valore - agallo@esempio.it
text

Di­spo­ni­bi­li­tà

Anche dal punto di vista della di­spo­ni­bi­li­tà dei dati inseriti emergono affinità e dif­fe­ren­ze tra MongoDB e Cassandra. Entrambi i sistemi salvano i dati di­stri­buen­do il carico tra diversi nodi del server. Tuttavia, MongoDB si basa su un solo nodo primario, che viene replicato per poter far fronte a eventuali guasti. Tutti i processi di scrittura sono condotti su questo nodo e da lì inoltrati alle sue repliche. Se il nodo master viene a mancare, è rim­piaz­za­to da un altro. Invece, in Cassandra con l’apposita in­fra­strut­tu­ra è possibile con­fi­gu­ra­re diversi nodi master. Così, se uno o più nodi pre­sen­ta­no un errore, è già pronto un sostituto.

Com­pa­ti­bi­li­tà e linguaggi di pro­gram­ma­zio­ne

Sia Cassandra sia MongoDB sono com­pa­ti­bi­li con diversi sistemi operativi del server. Entrambi girano in Linux, macOS e Windows. Cassandra offre in più il supporto per BSD e MongoDB per Solaris.

Le due soluzioni per la gestione di database sup­por­ta­no i seguenti linguaggi di pro­gram­ma­zio­ne:

Lin­guag­gio di pro­gram­ma­zio­ne Sup­por­ta­to da MongoDB Sup­por­ta­to da Cassandra
Ac­tion­script
C
C#
C++
Clojure
Col­d­Fu­sion
D
Dart
Delphi
Erlang
Go
Groovy
Haskell
Java
Ja­va­Script
Kotlin
Lisp
Lua
MatLab
Perl
PHP
Po­wer­Shell
Prolog
Python
R
Ruby
Scala
Smalltalk
Swift

Sicurezza

Nelle ri­spet­ti­ve versioni di base, la sicurezza di MongoDB e Cassandra è so­prat­tut­to nelle mani dell’utente. Oltre a SSL e TLS per le con­nes­sio­ni client e le au­ten­ti­ca­zio­ni utente, si pre­sup­po­ne che siano adottate misure avanzate come un firewall adeguato. Le soluzioni com­mer­cia­li come MongoDB Atlas offrono invece funzioni di sicurezza estese, come X.509, crit­to­gra­fia lato client e lato server e in­te­gra­zio­ne Kerberos e LDAP.

Uso da di­spo­si­ti­vi mobili

Non esistono versioni speciali di Cassandra pro­get­ta­te per l’uso dai di­spo­si­ti­vi mobili. Non esistono neanche strumenti per lo sviluppo su smart­pho­ne. Rispetto a Cassandra, MongoDB ha più opzioni per l’utilizzo mobile. Realm è un sistema di gestione database di MongoDB concepito ap­po­si­ta­men­te per i sistemi operativi mobili. Anche Atlas, la versione a pagamento, offre soluzioni per l’utilizzo su di­spo­si­ti­vi mobili.

Quali aziende usano MongoDB o Cassandra?

Anche se dal confronto tra MongoDB e Cassandra emergono numerose dif­fe­ren­ze, il numero di aziende che si affidano a queste soluzioni è simile. Tra le aziende più famose che usano MongoDB figurano:

  • Adobe
  • Amadeus
  • AppScale
  • Craftbase
  • Disney
  • Etsy
  • Four­squa­re
  • Lyft
  • MTV
  • The New York Times
  • Via Varejo

Anche Cassandra è usato da aziende fa­mo­sis­si­me. Facebook (Meta) non si basa più sui servizi del database, ma tra le società che si affidano a Cassandra troviamo:

  • Apple
  • Discord
  • Digg
  • Hulu
  • Intuit
  • Instagram
  • Netflix
  • Reddit
  • Spotify
  • X (l’ex Twitter)
Consiglio

Nella nostra Digital Guide trovi molti altri articoli sui database. Con­fron­tia­mo ad esempio MariaDB e MySQL, ti pre­sen­tia­mo i migliori database open source o ti in­se­gnia­mo a compiere i primi passi in MongoDB.

Vai al menu prin­ci­pa­le