MongoDB Sharding: Hướng dẫn từng bước với ví dụ

Sharding là gì MongoDB?

Sharding là một khái niệm trong MongoDB, chia các tập dữ liệu lớn thành các tập dữ liệu nhỏ trên nhiều MongoDB các trường hợp.

Đôi khi dữ liệu bên trong MongoDB sẽ rất lớn, đến nỗi các truy vấn đối với các tập dữ liệu lớn như vậy có thể gây ra việc sử dụng nhiều CPU trên máy chủ. Để giải quyết tình trạng này, MongoDB có khái niệm về Sharding, về cơ bản là chia tách các tập dữ liệu trên nhiều MongoDB các trường hợp.

Bộ sưu tập có thể có kích thước lớn thực sự được chia thành nhiều bộ sưu tập hoặc Phân đoạn khi chúng được gọi. Về mặt logic, tất cả các phân đoạn đều hoạt động như một bộ sưu tập.

Cách triển khai Sharding

Phân đoạn được triển khai bằng cách sử dụng các cụm không có gì khác ngoài một nhóm MongoDB các trường hợp.

Các thành phần của Shard bao gồm

  1. một mảnh vỡ – Đây là điều cơ bản và không gì khác hơn là một MongoDB instance chứa tập hợp con của dữ liệu. Trong môi trường sản xuất, tất cả các phân đoạn cần phải là một phần của bộ bản sao.
  2. Cấu hình máy chủ – Đây là một phiên bản mongodb chứa siêu dữ liệu về cụm, về cơ bản là thông tin về các phiên bản mongodb khác nhau sẽ chứa dữ liệu phân đoạn.
  3. Bộ định tuyến – Đây là một phiên bản mongodb về cơ bản có nhiệm vụ chuyển hướng các lệnh do máy khách gửi đến đúng máy chủ.

Phân chia từng bước Cluster Ví dụ

Bước 1) Tạo một cơ sở dữ liệu riêng cho máy chủ cấu hình.

mkdir /data/configdb

Bước 2) Khởi động phiên bản mongodb ở chế độ cấu hình. Giả sử nếu chúng ta có một máy chủ có tên là Server D, đây sẽ là máy chủ cấu hình của chúng ta, chúng ta sẽ cần chạy lệnh bên dưới để cấu hình máy chủ làm máy chủ cấu hình.

mongod –configdb ServerD: 27019

Bước 3) Bắt đầu phiên bản mongos bằng cách chỉ định máy chủ cấu hình

mongos –configdb ServerD: 27019

Bước 4) Từ shell mongo kết nối với phiên bản của mongo

mongo –host ServerD –port 27017

Bước 5) Nếu bạn có Máy chủ A và Máy chủ B cần được thêm vào cụm, hãy đưa ra các lệnh bên dưới

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

Bước 6) Kích hoạt tính năng phân đoạn cho cơ sở dữ liệu. Vì vậy, nếu chúng ta cần phân chia cơ sở dữ liệu Nhân viên, hãy đưa ra lệnh bên dưới

sh.enableSharding(Employeedb)

Bước 7) Kích hoạt tính năng phân đoạn cho bộ sưu tập. Vì vậy, nếu chúng ta cần phân chia bộ sưu tập Nhân viên, hãy đưa ra lệnh bên dưới

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

Tóm tắt:

  • Như đã giải thích ở hướng dẫn, Sharding là một khái niệm trong MongoDB, chia các tập dữ liệu lớn thành các tập dữ liệu nhỏ trên nhiều MongoDB các trường hợp.