MongoDB Sharding: การสอนทีละขั้นตอนพร้อมตัวอย่าง
Sharding คืออะไร MongoDB?
Sharding เป็นแนวคิดใน MongoDBซึ่งแบ่งชุดข้อมูลขนาดใหญ่ออกเป็นชุดข้อมูลขนาดเล็กออกเป็นหลายชุด MongoDB ตัวอย่าง.
บางครั้งข้อมูลภายใน MongoDB จะมีขนาดใหญ่มากจนการสืบค้นชุดข้อมูลขนาดใหญ่ดังกล่าวอาจทำให้เกิดการใช้งาน CPU จำนวนมากบนเซิร์ฟเวอร์ เพื่อจัดการกับสถานการณ์นี้ MongoDB มีแนวคิดเรื่อง Sharding ซึ่งโดยพื้นฐานแล้วคือการแบ่งชุดข้อมูลออกเป็นหลาย ๆ ชุด MongoDB ตัวอย่าง.
คอลเลกชันที่อาจมีขนาดใหญ่จะถูกแบ่งออกเป็นหลายคอลเลกชันหรือ Shards ตามที่เรียกกัน ตามหลักเหตุผลแล้ว ชิ้นส่วนทั้งหมดทำงานเป็นคอลเลกชันเดียว
วิธีการใช้ Sharding
ชาร์ดถูกนำมาใช้โดยใช้คลัสเตอร์ซึ่งไม่มีอะไรนอกจากกลุ่มของ MongoDB ตัวอย่าง.
ส่วนประกอบของ Shard ได้แก่
- เศษ – นี่คือสิ่งพื้นฐาน และนี่ไม่ใช่อะไรนอกจากก MongoDB อินสแตนซ์ที่เก็บชุดย่อยของข้อมูล ในสภาพแวดล้อมการใช้งานจริง ชิ้นส่วนทั้งหมดจะต้องเป็นส่วนหนึ่งของชุดการจำลอง
- กำหนดค่าเซิร์ฟเวอร์ – นี่คืออินสแตนซ์ MongoDB ที่เก็บข้อมูลเมตาเกี่ยวกับคลัสเตอร์ โดยพื้นฐานแล้วคือข้อมูลเกี่ยวกับอินสแตนซ์ MongoDB ต่างๆ ที่จะเก็บข้อมูลชาร์ด
- เราเตอร์ – นี่คืออินสแตนซ์ MongoDB ซึ่งโดยพื้นฐานแล้วรับผิดชอบในการเปลี่ยนเส้นทางคำสั่งที่ส่งโดยไคลเอนต์ไปยังเซิร์ฟเวอร์ที่ถูกต้อง
การแบ่งส่วนทีละขั้นตอน Cluster ตัวอย่าง
ขั้นตอน 1) สร้างฐานข้อมูลแยกต่างหากสำหรับเซิร์ฟเวอร์การกำหนดค่า
mkdir /data/configdb
ขั้นตอน 2) เริ่มอินสแตนซ์ MongoDB ในโหมดการกำหนดค่า สมมติว่าเรามีเซิร์ฟเวอร์ชื่อ Server D ซึ่งจะเป็นเซิร์ฟเวอร์การกำหนดค่าของเรา เราจะต้องเรียกใช้คำสั่งด้านล่างเพื่อกำหนดค่าเซิร์ฟเวอร์เป็นเซิร์ฟเวอร์การกำหนดค่า
mongod –configdb ServerD: 27019
ขั้นตอน 3) เริ่มต้นอินสแตนซ์ mongos โดยการระบุเซิร์ฟเวอร์การกำหนดค่า
mongos –configdb ServerD: 27019
ขั้นตอน 4) จาก mongo shell ให้เชื่อมต่อกับอินสแตนซ์ของ mongo
mongo –host ServerD –port 27017
ขั้นตอน 5) หากคุณมีเซิร์ฟเวอร์ A และเซิร์ฟเวอร์ B ที่จำเป็นต้องเพิ่มเข้าในคลัสเตอร์ ให้ใช้คำสั่งด้านล่าง
sh.addShard("ServerA:27017") sh.addShard("ServerB:27017")
ขั้นตอน 6) เปิดใช้งานการแบ่งส่วนสำหรับฐานข้อมูล ดังนั้นหากเราจำเป็นต้องแบ่งฐานข้อมูล Employeedb ให้ออกคำสั่งด้านล่าง
sh.enableSharding(Employeedb)
ขั้นตอน 7) เปิดใช้งานการแบ่งส่วนสำหรับคอลเลกชัน ดังนั้นหากเราจำเป็นต้องแบ่งกลุ่มคอลเลกชัน Employee ให้ออกคำสั่งด้านล่าง
Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})
สรุป:
- ตามที่อธิบายไว้ใน เกี่ยวกับการสอน, Sharding เป็นแนวคิดค่ะ MongoDBซึ่งแบ่งชุดข้อมูลขนาดใหญ่ออกเป็นชุดข้อมูลขนาดเล็กออกเป็นหลายชุด MongoDB ตัวอย่าง.