MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Công cụ MongoDB từ cộng đồng mà cụm điều khiển bổ sung

Vì MongoDB là cơ sở dữ liệu ưa thích của nhiều nhà phát triển, nên không có gì ngạc nhiên khi sự hỗ trợ của cộng đồng là tuyệt vời. Bạn có thể nhanh chóng tìm thấy câu trả lời cho hầu hết các vấn đề của mình trên các trang web tri thức như Stack Overflow, nhưng cộng đồng cũng tạo ra nhiều công cụ, tập lệnh và khuôn khổ xung quanh MongoDB.

ClusterControl là một phần của các công cụ cộng đồng cho phép bạn triển khai, giám sát, quản lý và mở rộng quy mô bất kỳ cấu trúc liên kết MongoDB nào. ClusterControl được thiết kế xung quanh vòng đời cơ sở dữ liệu, nhưng tự nhiên nó không thể bao gồm tất cả các khía cạnh của một chu kỳ phát triển. Bài đăng trên blog này sẽ bao gồm một loạt các công cụ cộng đồng có thể được sử dụng để bổ sung cho ClusterControl trong việc quản lý chu kỳ phát triển.

Quản lý lược đồ

Nỗi đau của những thay đổi lược đồ trong RDBMS thông thường là một trong những động lực đằng sau việc tạo MongoDB:tất cả chúng ta đều phải chịu đựng những lần di chuyển giản đồ chậm hoặc không thành công. Do đó MongoDB đã được phát triển với thiết kế tài liệu không có lớp. Điều này cho phép bạn thay đổi lược đồ của mình bất cứ khi nào bạn muốn mà không cần cơ sở dữ liệu cản trở bạn.

Các thay đổi lược đồ thường được thực hiện bất cứ khi nào có sự phát triển ứng dụng. Việc thêm các tính năng mới vào các mô-đun hiện có hoặc tạo các mô-đun mới có thể liên quan đến việc tạo một phiên bản lược đồ khác của bạn. Ngoài ra, tối ưu hóa lược đồ và hiệu suất có thể tạo ra các phiên bản mới của lược đồ của bạn.

Mặc dù nhiều người sẽ nói rằng nó tuyệt vời khi không bị cơ sở dữ liệu kìm hãm, nhưng nó cũng mang lại một số vấn đề:vì dữ liệu cũ không được di chuyển sang thiết kế lược đồ mới, ứng dụng của bạn sẽ có thể đối phó với mọi phiên bản lược đồ mà bạn có trong cơ sở dữ liệu của bạn. Ngoài ra, bạn có thể cập nhật tất cả dữ liệu (cũ) bằng giản đồ mới hơn ngay sau khi bạn triển khai ứng dụng.

Tất cả các công cụ được thảo luận trong phần này sẽ rất hữu ích trong việc giải quyết các vấn đề giản đồ này.

Bộ sưu tập Meteor2

Mô-đun thu thập Meteor2 sẽ đảm bảo rằng từ cả phía máy khách và máy chủ, lược đồ sẽ được xác thực. Điều này sẽ đảm bảo rằng tất cả dữ liệu được ghi theo lược đồ đã xác định. Mô-đun sẽ chỉ hoạt động, vì vậy bất cứ khi nào dữ liệu không được ghi theo lược đồ, một cảnh báo sẽ được trả về.

Mongoose

Mongoose là phần mềm trung gian của Node.js để lập mô hình và xác thực lược đồ. Định nghĩa lược đồ được đặt bên trong ứng dụng Node.js của bạn và điều này sẽ cho phép Mongoose hoạt động như một ORM. Mongoose sẽ không di chuyển dữ liệu hiện có sang định nghĩa giản đồ mới.

Lược đồ MongoDB

Cho đến nay chúng ta chỉ mới nói về những thay đổi của lược đồ, vì vậy đã đến lúc giới thiệu về Lược đồ MongoDB. Lược đồ MongoDB là một trình phân tích lược đồ sẽ lấy một mẫu (ngẫu nhiên) dữ liệu của bạn và xuất ra lược đồ cho dữ liệu được lấy mẫu. Tuy nhiên, điều này không nhất thiết có nghĩa là nó sẽ chính xác 100% đối với ước tính giản đồ.

Với công cụ này, bạn có thể thường xuyên kiểm tra dữ liệu của mình so với giản đồ và phát hiện những thay đổi quan trọng hoặc không chủ ý trong giản đồ của bạn.

Vài người trở thành MongoDB DBA - Đưa MongoDB vào Sản xuất Tìm hiểu về những điều bạn cần biết để triển khai, giám sát, quản lý và mở rộng MongoDBDownload miễn phí

Bản sao lưu

ClusterControl hỗ trợ hai cách triển khai để sao lưu MongoDB:mongodump và Percona Consinity Backup. Tuy nhiên, một số chức năng ít được sử dụng thường xuyên hơn, như sao lưu từng phần / tăng dần và sao lưu trực tuyến đến các cụm khác, sẽ không khả dụng.

MongoDB sao lưu

MongoDB Backup là một giải pháp sao lưu logic NodeJS cung cấp chức năng tương tự như mongodump. Ngoài ra, nó cũng có thể phát trực tuyến các bản sao lưu qua mạng, giúp nó hữu ích cho việc vận chuyển một bộ sưu tập từ phiên bản MongoDB này sang phiên bản MongoDB khác.

Một tính năng hữu ích khác là nó đã được viết bằng NodeJS. Điều này có nghĩa là nó sẽ rất dễ dàng tích hợp trong một chatbot Hubot và tự động hóa việc chuyển giao bộ sưu tập. Đừng sợ nếu công ty của bạn không sử dụng Hubot làm chatbot:nó cũng có thể hoạt động như một webhook hoặc được kiểm soát thông qua CLI.

Mongob

Mongob là một giải pháp sao lưu hợp lý khác, nhưng trong trường hợp này, nó đã được viết bằng Python và chỉ có sẵn dưới dạng công cụ CLI. Cũng giống như MongoDB Backup, nó có thể chuyển cơ sở dữ liệu và bộ sưu tập giữa các phiên bản MongoDB, nhưng ngoài ra, nó cũng có thể giới hạn tốc độ truyền.

Một tính năng hữu ích khác của Mongob là nó sẽ có thể tạo các bản sao lưu gia tăng. Điều này là tốt nếu bạn muốn có nhiều bản sao lưu nhỏ gọn hơn, nhưng cũng tốt nếu bạn cần thực hiện khôi phục kịp thời.

MongoRocks Strata

MongoRocks Strata là công cụ sao lưu cho công cụ lưu trữ MongoRocks. Máy chủ Percona cho MongoDB bao gồm công cụ lưu trữ MongoRocks, tuy nhiên nó thiếu công cụ sao lưu Strata để tạo sao lưu cấp tệp. Về nguyên tắc, mongodump và Percona Consists Backup có thể tạo ra các bản sao lưu đáng tin cậy, nhưng vì chúng là các bản sao lưu hợp lý nên thời gian khôi phục sẽ lâu.

MongoRocks là một công cụ lưu trữ dựa trên kiến ​​trúc cây LSM. Về cơ bản, điều này có nghĩa là nó chỉ là một bộ nhớ phụ. Để có thể làm được điều này, nó hoạt động với các nhóm dữ liệu:dữ liệu cũ hơn sẽ được lưu trữ trong các nhóm (lưu trữ) lớn hơn, dữ liệu gần đây sẽ được lưu trữ trong các nhóm nhỏ hơn (gần đây) và tất cả dữ liệu mới đến sẽ được ghi vào một nhóm bộ nhớ đặc biệt . Mỗi khi hoàn tất quá trình nén, dữ liệu sẽ nhỏ giọt từ bộ nhớ xuống các nhóm gần đây và dữ liệu đã thay đổi gần đây trở lại nhóm lưu trữ.

Để tạo bản sao lưu của tất cả các nhóm, Strata hướng dẫn MongoDB xả bộ nhớ vào đĩa, sau đó nó sao chép tất cả các nhóm dữ liệu ở cấp độ tệp. Điều này sẽ tạo ra một bản sao lưu nhất quán của tất cả dữ liệu có sẵn. Cũng có thể hướng dẫn Strata chỉ sao chép các nhóm gần đây và thực hiện sao lưu gia tăng một cách hiệu quả.

Một điểm tốt khác của Strata là nó cung cấp nhị phân mongoq, cho phép bạn truy vấn các bản sao lưu trực tiếp. Điều này có nghĩa là không cần khôi phục bản sao lưu vào phiên bản MongoDB trước khi có thể truy vấn nó. Bạn có thể tận dụng chức năng này để chuyển dữ liệu sản xuất của mình ngoại tuyến tới hệ thống phân tích của bạn!

MongoDB GUI

WIthin ClusterControl chúng tôi cho phép truy vấn cơ sở dữ liệu MongoDB và bộ sưu tập thông qua cố vấn. Các cố vấn này có thể được phát triển trong giao diện ClusterControl Developer Studio. Chúng tôi không có giao diện trực tiếp với cơ sở dữ liệu, vì vậy, để thực hiện các thay đổi đối với dữ liệu của mình, bạn cần đăng nhập vào MongoDB shell hoặc có một công cụ cho phép bạn thực hiện những thay đổi này.

PHPMoAdmin

PHPMoAdmin là MongoDB tương đương với PHPMyAdmin. Nó có chức năng tương tự như PHPMyAdmin:quản lý dữ liệu và quản trị viên. Công cụ này sẽ cho phép bạn thực hiện các hoạt động CRUD trong cả cú pháp JSON và PHP trên tất cả cơ sở dữ liệu và bộ sưu tập. Bên cạnh tất cả những điều đó, nó cũng có chức năng nhập / xuất đối với lựa chọn dữ liệu hiện tại của bạn.

Mongo-Express

Nếu bạn đang tìm kiếm một trình duyệt dữ liệu đa năng, Mongo-Express là một công cụ bạn chắc chắn cần thử. Nó không chỉ cho phép các hoạt động tương tự như PHPMoAdmin mà còn có thể hiển thị hình ảnh và video nội tuyến. Nó thậm chí còn hỗ trợ tìm nạp các đối tượng lớn từ các nhóm GridFS.

Robomongo

Công cụ tiến thêm một bước nữa là Robomongo. Là một công cụ được tài trợ bởi đám đông, danh sách tính năng rất lớn. Nó có thể thực hiện tất cả các hoạt động tương tự như Mongo-Express, nhưng ngoài ra nó còn cho phép quản lý người dùng, vai trò và bộ sưu tập. Đối với các kết nối, nó hỗ trợ các kết nối MongoDB trực tiếp, nhưng cũng hỗ trợ cấu trúc liên kết replicaSet và các phiên bản MongoDB Atlas.

Kết luận

Với lựa chọn các công cụ cộng đồng miễn phí này, chúng tôi hy vọng chúng tôi đã cung cấp cho bạn cái nhìn tổng quan tốt về cách quản lý dữ liệu MongoDB bên cạnh ClusterControl.

Chúc các bạn thành nhóm vui vẻ!


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nhận danh sách các đối tượng được nhúng / lồng nhau duy nhất trong tài liệu MongoDB

  2. Đẩy các mục vào mảng mongo thông qua mongoose

  3. MongoDB $ giờ

  4. Hướng dẫn kiến ​​thức cơ bản về MongoDB

  5. Về MongoDB