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

  1. 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.
  2. Server di configurazione – Questa è un'istanza mongodb che contiene metadati sul cluster, fondamentalmente informazioni sulle varie istanze mongodb che manterranno i dati shard.
  3. 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.