MongoDB Sharding: Výukový program krok za krokem s příkladem

Obsah:

Anonim

Co je dělení v MongoDB?

Sharding je koncept v MongoDB, který rozděluje velké datové sady na malé datové sady ve více instancích MongoDB.

Někdy budou data v MongoDB tak velká, že dotazy na takové velké datové sady mohou způsobit velké využití CPU na serveru. Pro řešení této situace má MongoDB koncept Sharding, což je v podstatě rozdělení datových sad mezi více instancí MongoDB.

Kolekce, která může mít velkou velikost, je ve skutečnosti rozdělena do více kolekcí nebo Shards, jak se nazývají. Logicky všechny střepy fungují jako jedna kolekce.

Jak implementovat dělení

Střepy jsou implementovány pomocí klastrů, které nejsou ničím jiným než skupinou instancí MongoDB.

Součásti Shard zahrnují

  1. Shard - toto je základní věc a není to nic jiného než instance MongoDB, která obsahuje podmnožinu dat. V produkčním prostředí musí být všechny fragmenty součástí replik.
  2. Konfigurační server - Jedná se o instanci mongodb, která obsahuje metadata o klastru, v podstatě informace o různých instancích mongodb, které budou obsahovat data horizontálních oddílů.
  3. Router - Jedná se o instanci mongodb, která je v zásadě zodpovědná za přesměrování příkazů odeslaných klientem na správné servery.

Příklad shlukování krok za krokem

Krok 1) Vytvořte samostatnou databázi pro konfigurační server.

mkdir /data/configdb

Krok 2) Spusťte instanci mongodb v konfiguračním režimu. Předpokládejme, že pokud máme server s názvem Server D, který by byl naším konfiguračním serverem, potřebovali bychom spustit níže uvedený příkaz pro konfiguraci serveru jako konfiguračního serveru.

mongod -configdb ServerD: 27019

Krok 3) Spusťte instanci mongos zadáním konfiguračního serveru

mongos -configdb ServerD: 27019

Krok 4) Z prostředí mongo se připojte k instanci monga

mongo -host ServerD -port 27017

Krok 5) Pokud máte server A a server B, které je třeba přidat do klastru, zadejte následující příkazy

sh.addShard("ServerA:27017")sh.addShard("ServerB:27017")

Krok 6) Povolte dělení dat pro databázi. Takže pokud potřebujeme rozdělit databázi Employeedb, zadejte níže uvedený příkaz

sh.enableSharding(Employeedb)

Krok 7) Povolte dělení pro kolekci. Pokud tedy potřebujeme shardovat kolekci Employee, zadejte níže uvedený příkaz

Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})

Souhrn:

  • Jak je vysvětleno v tutoriálu, Sharding je koncept v MongoDB, který rozděluje velké datové sady na malé datové sady napříč několika instancemi MongoDB.