MongoDB e Cassandra: differenze e affinità
Confrontando MongoDB e Cassandra emergono molte affinità. Tuttavia, vengono utilizzati per scopi diversi: MongoDB è apprezzato per la scalabilità ottimale, mentre Cassandra spicca per la migliore disponibilità.
MongoDB e Cassandra: due dei database NoSQL di maggior successo
MongoDB e Cassandra sono due dei più importanti database NoSQL. Utilizzati da svariate aziende famose e di successo, offrono servizi perfetti anche per gli utenti con esigenze inferiori.
Con il costante aumento della quantità e della tipologia di dati, i sistemi di gestione di database distribuito e i database NoSQL hanno acquisito più importanza. Queste soluzioni non relazionali sono apprezzate sia per l’elevata scalabilità sia per la grande affidabilità. Quando il volume di dati aumenta, anche i sistemi crescono proporzionalmente, mantenendo tuttavia la loro struttura ordinata.
MongoDB si basa sulle raccolte e sui documenti
Prima di presentare MongoDB e Cassandra in dettaglio e confrontarli, 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 sviluppato nel 2009 dall’azienda 10gen (oggi MongoDB, Inc.) ed è tuttora distribuito con Server Side Public License proprietaria. Scritto in C++, salva i dati in raccolte e documenti. MongoDB, disponibile in una versione Community gratuita e in una versione Enterprise proprietaria, è uno dei database di maggior successo al mondo.
Un database NoSQL proprio come lo vuoi tu: scegliendo Managed MongoDB di IONOS potrai contare sulla massima scalabilità, 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 differenziano per molti punti, sono stati rilasciati per la prima volta nello stesso periodo: Cassandra ha fatto la sua comparsa già nel 2008, sviluppato però ancora in esclusiva per Facebook. Nel 2009 la Apache Software Foundation ha rilevato il lavoro sul sistema di gestione di database NoSQL multipiattaforma, programmato in Java e con logica di funzionamento a colonne.
Oltre agli inventori Avinash Lakshman e Prashant Malik, allo sviluppo di Cassandra hanno partecipato aziende come DataStax, IBM e Twitter. Oggi il sistema è distribuito con la licenza Apache ed è disponibile in una versione gratuita e diverse versioni a pagamento. Cassandra è uno dei database a colonne più popolari al mondo.
Scopo d’impiego e scalabilità
Entrambe le opzioni sono adatte soprattutto per elaborare raccolte di dati particolarmente grandi adottando l’approccio NoSQL. Tutte e due possono così gestire anche dati non strutturati, in quanto agiscono separatamente dalle tabelle, lavorando su diversi nodi, per una maggiore scalabilità. Rispetto alla concorrenza 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 potrebbero non essere in grado di prevedere il loro fabbisogno, che poi aumenta col tempo.
MongoDB è la scelta migliore per gestire dati prevalentemente non strutturati. Tutti e due i sistemi sono adatti per svolgere questo compito, ma grazie alla sua flessibilità MongoDB assicura che il database possa essere scalato ancora meglio. Anche Cassandra è flessibile: la sua struttura riprende lo stile SQL, quindi permette di passare a NoSQL un po’ più facilmente. Con CQL, Cassandra utilizza un linguaggio di query che assomiglia ai database tradizionali. Nel confronto diretto con Cassandra, MongoDB si posiziona al secondo posto per via del linguaggio di query proprio, che prima di poter essere utilizzato deve essere appreso.
- vCPU estremamente vantaggiose e potenti core dedicati
- Massima flessibilità senza periodo contrattuale minimo
- Servizio di assistenza tecnica 24 ore su 24, 7 giorni su 7
MongoDB e Cassandra: approcci
MongoDB e Cassandra perseguono obiettivi simili, ma il loro approccio è diametralmente opposto. MongoDB salva i dati in documenti creati all’interno di raccolte. Ciascun documento è formato da coppie chiave-valore. Le chiavi sono sostanzialmente 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 partiziona per righe. Le SSTable non possono essere modificate in un secondo momento. Contengono un insieme ordinato di coppie chiave-valore. Anche se Cassandra è considerato un database NoSQL, il suo approccio è più di tipo “Not only SQL”. Cassandra Query Language è tuttavia molto più flessibile.
Modelli di dati
La maggiore flessibilità di MongoDB emerge soprattutto confrontando 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 presentarsi come segue:
Collaboratore: [
{
ID_collaboratore: "1",
Nome: "Maria Rossi",
Città: "Vicenza"
},
{
ID_collaboratore: "2"
Settore: "IT"
e-mail: agallo@esempio.it
}]
bsonCassandra invece si affida alle classiche tabelle, divisibili 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
textDisponibilità
Anche dal punto di vista della disponibilità dei dati inseriti emergono affinità e differenze tra MongoDB e Cassandra. Entrambi i sistemi salvano i dati distribuendo 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, è rimpiazzato da un altro. Invece, in Cassandra con l’apposita infrastruttura è possibile configurare diversi nodi master. Così, se uno o più nodi presentano un errore, è già pronto un sostituto.
Compatibilità e linguaggi di programmazione
Sia Cassandra sia MongoDB sono compatibili 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 supportano i seguenti linguaggi di programmazione:
Linguaggio di programmazione | Supportato da MongoDB | Supportato da Cassandra |
---|---|---|
Actionscript | ||
C | ||
C# | ||
C++ | ||
Clojure | ||
ColdFusion | ||
D | ||
Dart | ||
Delphi | ||
Erlang | ||
Go | ||
Groovy | ||
Haskell | ||
Java | ||
JavaScript | ||
Kotlin | ||
Lisp | ||
Lua | ||
MatLab | ||
Perl | ||
PHP | ||
PowerShell | ||
Prolog | ||
Python | ||
R | ||
Ruby | ||
Scala | ||
Smalltalk | ||
Swift |
Sicurezza
Nelle rispettive versioni di base, la sicurezza di MongoDB e Cassandra è soprattutto nelle mani dell’utente. Oltre a SSL e TLS per le connessioni client e le autenticazioni utente, si presuppone che siano adottate misure avanzate come un firewall adeguato. Le soluzioni commerciali come MongoDB Atlas offrono invece funzioni di sicurezza estese, come X.509, crittografia lato client e lato server e integrazione Kerberos e LDAP.
Uso da dispositivi mobili
Non esistono versioni speciali di Cassandra progettate per l’uso dai dispositivi mobili. Non esistono neanche strumenti per lo sviluppo su smartphone. Rispetto a Cassandra, MongoDB ha più opzioni per l’utilizzo mobile. Realm è un sistema di gestione database di MongoDB concepito appositamente per i sistemi operativi mobili. Anche Atlas, la versione a pagamento, offre soluzioni per l’utilizzo su dispositivi mobili.
Quali aziende usano MongoDB o Cassandra?
Anche se dal confronto tra MongoDB e Cassandra emergono numerose differenze, 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
- Foursquare
- Lyft
- MTV
- The New York Times
- Via Varejo
Anche Cassandra è usato da aziende famosissime. 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
- Netflix
- Spotify
- X (l’ex Twitter)
Nella nostra Digital Guide trovi molti altri articoli sui database. Confrontiamo ad esempio MariaDB e MySQL, ti presentiamo i migliori database open source o ti insegniamo a compiere i primi passi in MongoDB.