MongoDB Sharding: tutorial passo passo con esempio
In cosa consiste lo Sharding MongoDB?
Lo sharding è un concetto in MongoDB, che suddivide set di dati di grandi dimensioni in set di dati piccoli su più file MongoDB le istanze.
A volte i dati all'interno MongoDB sarà così grande che le query su set di dati così grandi possono causare un notevole utilizzo della CPU sul server. Per affrontare questa situazione, MongoDB ha un concetto di Sharding, che è fondamentalmente la suddivisione di set di dati su più set MongoDB le istanze.
La raccolta, che potrebbe essere di grandi dimensioni, è in realtà suddivisa in più raccolte o Shard, come vengono chiamati. Logicamente tutti i frammenti funzionano come un'unica raccolta.
Come implementare lo sharding
Gli shard vengono implementati utilizzando cluster che non sono altro che un gruppo di MongoDB le istanze.
I componenti di uno Shard includono
- Un frammento – Questa è la cosa fondamentale, e questo non è altro che a MongoDB istanza che contiene il sottoinsieme dei dati. Negli ambienti di produzione, tutti i frammenti devono far parte di set di repliche.
- Server di configurazione – Questa è un'istanza mongodb che contiene metadati sul cluster, fondamentalmente informazioni sulle varie istanze mongodb che manterranno i dati shard.
- Un router – Questa è un'istanza mongodb che sostanzialmente è responsabile di reindirizzare i comandi inviati dal client ai server giusti.
Sharding passo dopo passo Cluster Esempio
Passo 1) Crea un database separato per il server di configurazione.
mkdir /data/configdb
Passo 2) Avvia l'istanza mongodb in modalità di configurazione. Supponiamo di avere un server denominato Server D che sarebbe il nostro server di configurazione, dovremmo eseguire il comando seguente per configurare il server come server di configurazione.
mongod –configdb ServerD: 27019
Passo 3) Avvia l'istanza mongos specificando il server di configurazione
mongos –configdb ServerD: 27019
Passo 4) Dalla shell mongo connettiti all'istanza di mongo
mongo –host ServerD –port 27017
Passo 5) Se disponi del Server A e del Server B che devono essere aggiunti al cluster, esegui i comandi seguenti
sh.addShard("ServerA:27017") sh.addShard("ServerB:27017")
Passo 6) Abilita lo sharding per il database. Quindi, se dobbiamo partizionare il database Employeedb, esegui il comando seguente
sh.enableSharding(Employeedb)
Passo 7) Abilita lo sharding per la raccolta. Quindi, se dobbiamo frammentare la raccolta Employee, esegui il comando seguente
Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})
Sommario:
- Come spiegato in lezione, Sharding è un concetto in MongoDB, che suddivide set di dati di grandi dimensioni in set di dati piccoli su più file MongoDB le istanze.