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í
- 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.
- 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ů.
- 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.