MongoDB sadalītās kopas: visaptveroša rokasgrāmata
MongoDB sadalīšana ir jaudīgs paņēmiens datu horizontālai mērogošanai un izplatīšanai vairākos serveros vai "shards". Šī pieeja ļauj MongoDB apstrādāt pieaugošās slodzes un uzlabot veiktspēju, sadalot datus mazākos gabalos un sadalot tos vairākās lauskas. Sadalītā klastera komponentu izpratne ir ļoti svarīga, lai efektīvi pārvaldītu un mērogotu datu bāzes infrastruktūru.
Sadalītā klastera sastāvdaļas
1. Shards: fragmenti ir horizontāli mērogojami, ļaujot jums pievienot vairāk lauskas, jo jūsu dati pieaug, lai apstrādātu pieaugošās slodzes. Katra šķemba sadalītajā klasterī var atrasties citā fiziskā mašīnā vai serverī, sadalot datus un darba slodzi vairākos mezglos. Šķembas var dinamiski pievienot sadalītajam klasterim, ļaujot mērogot datu bāzes infrastruktūru bez dīkstāves.
2. Primārā daļa: primārā šķembu piešķiršana ir balstīta uz datu bāzes lielumu izveides brīdī, taču to vēlāk var manuāli atkārtoti piešķirt, ja nepieciešams. Primārais shards ir atbildīgs par ar datu bāzi saistīto metadatu, piemēram, kolekciju saraksta un to atrašanās vietu, glabāšanu. Ja primārā daļa kļūst nepieejama, MongoDB automātiski atlasa jaunu primāro fragmentu ietekmētajām datu bāzēm, lai nodrošinātu nepārtrauktu darbību.
3. Konfigurācijas serveri: konfigurācijas serveri glabā metadatus par sadalīto klasteri, tostarp informāciju par fragmentiem, gabaliem un klasteru organizāciju. Tie atvieglo administratīvās darbības un palīdz uzturēt klasteru konsekvenci, nodrošinot, ka visiem klastera mezgliem ir vienāds metadatu skats. Konfigurācijas serveri pārvalda autentifikācijas un autorizācijas iestatījumus, nodrošinot, ka tikai pilnvaroti lietotāji un lietojumprogrammas var piekļūt klasterim.
4. Mongos gadījumi: Mongos gadījumi darbojas kā saskarne starp klienta lietojumprogrammām un šķelto kopu. Viņi apstrādā vaicājumu maršrutēšanu, fragmentu pārvaldību un rezultātu apkopošanu. Mongos gadījumi paši neuzglabā datus, bet ir atkarīgi no metadatu kešatmiņas no konfigurācijas serveriem, lai efektīvi maršrutētu vaicājumus.
Kā darbojas sadalīšana
Kad tiek izveidots sadalīts klasteris, MongoDB automātiski sadala datus gabalos un sadala tos pa pieejamajiem fragmentiem. Katrai daļai ir iekļaujoša apakšējā un ekskluzīva augšējā robeža, kas nosaka katrā fragmentā saglabāto shard atslēgas vērtību diapazonu. Tas nodrošina vienmērīgu datu izplatīšanu un efektīvu vaicājumu maršrutēšanu.
Vaicājumu optimizācija sadalītā klasterī
Vaicājumu optimizēšana ir ļoti svarīga efektīvai datu izguvei un vaicājumu veiktspējai sadalītā klasterī. MongoDB nodrošina rīkus un komandas primāro shardu pārvaldībai, piemēram, komandu "sh.status()", lai skatītu shardu statusu sadalītā klasterī. Turklāt MongoDB atbalsta sadalītos apkopošanas vaicājumus, ļaujot veikt sarežģītus datu apkopojumus vairākos fragmentos.
Sadalīšana gabaliņos
Daļu sadalīšana ļauj precīzi noregulēt datu sadalījumu MongoDB sadalītajā klasterī. Skaidri sadalot gabalus, varat kontrolēt katrā fragmentā saglabāto shard atslēgas vērtību diapazonu un nodrošināt vienmērīgu datu sadalījumu. Tas ietver vērtības noteikšanu, pēc kuras vēlaties sadalīt daļu, un komandas `sh.splitAt() izmantošanu, lai sadalītu daļu vēlamajā sadalīšanas punktā.
Sadalīto klasteru paraugprakse
1. Izvietojiet konfigurācijas serverus kā 3 locekļu kopiju komplektu: nodrošiniet, lai konfigurācijas serveri tiktu izvietoti kā 3 dalībnieku kopijas, lai nodrošinātu augstu pieejamību un kļūdu toleranci.
2. Izvietojiet katru fragmentu kā 3 locekļu kopiju komplektu: nodrošiniet, lai katra fragmenta tiktu izvietota kā 3 dalībnieku kopiju komplekts, lai nodrošinātu augstu pieejamību un kļūdu toleranci.
3. Izvietojiet vienu vai vairākus Mongos maršrutētājus: izvietojiet vienu vai vairākus mongos maršrutētājus, lai apstrādātu vaicājumu maršrutēšanu un fragmentu pārvaldību.
4. Pārraugiet veiktspēju: pārraugiet sava šķelto klastera veiktspēju, tostarp konfigurācijas serveru un fragmentu veiktspēju, lai nodrošinātu optimālu veiktspēju un datu izplatīšanu.
5. Izmantojiet dalītos apkopošanas vaicājumus: izmantojiet sadalītos apkopošanas vaicājumus, lai veiktu sarežģītu datu apkopošanu vairākos fragmentos, nodrošinot efektīvu datu apstrādi un analīzi.
Secinājums
MongoDB sadalīšana ir jaudīgs paņēmiens datu horizontālai mērogošanai un izplatīšanai vairākos serveros vai "shards". Lai efektīvi pārvaldītu un mērogotu datu bāzes infrastruktūru, ļoti svarīga ir izpratne par sadalītā klastera komponentiem un sadalīšanas darbību. Ievērojot paraugpraksi un optimizējot vaicājumus, varat nodrošināt optimālu veiktspēju un datu izplatīšanu savā šķeltajā klasterī.
Citāts:[1] https://www.mongodb.com/docs/manual/core/sharded-cluster-components/
[2] https://www.mongodb.com/docs/v6.2/core/sharded-cluster-components/
[3] https://www.geeksforgeeks.org/sharded-cluster-components-in-mongodb/
[4] https://www.squash.io/tutorial-on-database-sharding-in-mongodb/
[5] https://www.bmc.com/blogs/mongodb-sharding-explained/