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

Cơ sở dữ liệu NoSQL phổ biến nhất được hỗ trợ bởi ClusterControl

NoSQL ("không chỉ SQL") là một cách tiếp cận để thiết kế cơ sở dữ liệu cho phép lưu trữ và truy vấn dữ liệu bên ngoài cấu trúc truyền thống được tìm thấy trong cơ sở dữ liệu quan hệ. Nó được tạo ra để chủ yếu xử lý dữ liệu phi cấu trúc được tạo ra từ nhiều nguồn như tài liệu, âm thanh, video, mạng xã hội, v.v. Cơ sở dữ liệu NoSQL là tốt nhất cho các ứng dụng hiện đại, nơi các mô hình dữ liệu phát triển và khả năng mở rộng là điều cần thiết. Cơ sở dữ liệu này đã trở nên phổ biến trong những năm gần đây vì các công ty hiện phải xử lý dữ liệu phi cấu trúc nhiều hơn bao giờ hết. Mô hình này lưu trữ dữ liệu khác với các bảng quan hệ truyền thống để cho phép dữ liệu liên quan được lưu giữ trong một cấu trúc dữ liệu duy nhất. Cơ sở dữ liệu NoSQL có thể được chia thành bốn loại:

  • Kho tài liệu

  • Cơ sở dữ liệu Khóa-Giá trị

  • Cửa hàng cột rộng

  • Cơ sở dữ liệu Đồ thị

Cơ sở dữ liệu NoSQL thường được sử dụng trong các dự án nhanh vì chúng cung cấp các mô hình dữ liệu linh hoạt. Điều này cho phép các nhà phát triển tập trung vào logic nghiệp vụ và thuật toán thay vì xử lý các bản cập nhật lược đồ. Nếu bạn dự đoán rằng mô hình dữ liệu của ứng dụng của bạn cần phải linh hoạt để đáp ứng các thay đổi theo thời gian, thì cách tiếp cận giản đồ linh hoạt của cơ sở dữ liệu NoSQL có thể phù hợp với nhu cầu của bạn.

Theo db-engine, hai cơ sở dữ liệu NoSQL hàng đầu (tháng 7 năm 2021) là MongoDB (xếp hạng:5) và Redis (xếp hạng:6). Điều thú vị là những cơ sở dữ liệu NoSQL này không tồn tại cách đây 12 năm. Cách chúng tồn tại và thu hút, nổi tiếng và chúng đã thay đổi toàn cảnh của hệ thống quản lý cơ sở dữ liệu là bản chất chính của bài đăng trên blog này.

MongoDB

MongoDB là cơ sở dữ liệu hướng tài liệu mã nguồn mở, được phát hành lần đầu vào tháng 2 năm 2009. Cơ sở dữ liệu tài liệu tương phản mạnh với cơ sở dữ liệu quan hệ truyền thống. Chúng lưu trữ tất cả thông tin cho một đối tượng nhất định trong một thể hiện duy nhất trong cơ sở dữ liệu và mọi đối tượng được lưu trữ có thể khác với mọi đối tượng khác. Điều này giúp loại bỏ sự cần thiết của ánh xạ quan hệ đối tượng và cho phép cấu trúc không có lớp, một tính năng mà các nhà phát triển ứng dụng có khả năng phát triển nhanh chóng do mô hình dữ liệu linh hoạt của nó. Thay vì điều chỉnh một ứng dụng để đáp ứng các yêu cầu của lược đồ, các nhà phát triển viết ứng dụng đó và lược đồ theo sau.

MongoDB rất phổ biến do tính linh hoạt, dễ học và chi phí sở hữu thấp hơn để bắt đầu. Các nhà phát triển ứng dụng yêu thích MongoDB vì họ có thể thay đổi mô hình dữ liệu khi đang di chuyển và vì MongoDB sử dụng tài liệu JSON để ghi dữ liệu. JSON ở khắp mọi nơi và có thể được coi là định dạng thực tế để gửi dữ liệu phong phú giữa các ứng dụng web và điểm cuối. Thiết kế đơn giản và tính linh hoạt giúp dễ đọc, dễ hiểu và trong hầu hết các trường hợp, dễ dàng thao tác bằng ngôn ngữ lập trình bạn chọn.

MongoDB ra đời nhờ 10gen (trước khi được đổi tên thành MongoDB Inc), bắt đầu phát triển vào năm 2007 và ra mắt với bản phát hành GA đầu tiên vào tháng 2 năm 2009. Kể từ đó, MongoDB đã phát triển nhanh chóng và được coi là một trong những dự án cơ sở dữ liệu thú vị nhất cho các ứng dụng hiện đại. Theo Khảo sát nhà phát triển StackOverflow 2020, MongoDB vẫn là công nghệ cơ sở dữ liệu mà các nhà phát triển muốn tìm hiểu nhất. Tại thời điểm viết bài này, họ vừa phát hành phiên bản 5.0 (ngày 13 tháng 7 năm 2021) và đi kèm với nhiều tính năng đáng chú ý như sạc lại trực tiếp, hỗ trợ dữ liệu chuỗi thời gian gốc và API có phiên bản, phù hợp với môi trường đa đám mây.

Một tính năng quan trọng khác của MongoDB là các tính năng sẵn có cao được tích hợp sẵn như sao chép, thiết lập bản sao và sharding. Nó có thể mở rộng theo chiều ngang, giúp giảm khối lượng công việc và mở rộng quy mô doanh nghiệp của bạn một cách dễ dàng. Nó cung cấp tính năng sao chép thông qua giao thức đồng thuận cây nhà lá vườn lấy cảm hứng từ Raft và có thể phân phối dữ liệu qua các phân đoạn thông qua bộ định tuyến truy vấn có tên mongos. Bạn có thể sử dụng ClusterControl để triển khai bộ bản sao MongoDB và thiết lập cụm phân đoạn một cách dễ dàng.

MongoDB thu hút sự chú ý của công chúng và các nhà phê bình do điểm yếu trên cấu hình bảo mật mặc định của MongoDB, cho phép bất kỳ ai cũng có quyền truy cập đầy đủ vào cơ sở dữ liệu. Dữ liệu từ hàng chục nghìn bản cài đặt MongoDB đã bị đánh cắp. Hơn nữa, nhiều máy chủ MongoDB đã bị giữ để đòi tiền chuộc. Sự tiếp xúc này đã khiến chúng tôi viết một số bài đăng trên blog liên quan đến bảo mật liên quan đến MongoDB chẳng hạn như Bảo mật MongoDB và Bảo vệ bản thân khỏi Hack tiền chuộc và Cách bảo mật MongoDB khỏi phần mềm tống tiền - Mười Mẹo. Do đó, MongoDB đã cải thiện các khía cạnh cấu hình mặc định để an toàn hơn với MongoDB 3 trở lên.

Một số công ty lớn phụ thuộc rất nhiều vào MongoDB làm kho lưu trữ dữ liệu của họ, chẳng hạn như Forbes, Toyota, SAP, Cisco, eBay và Adobe. MongoDB được coi là người thay đổi cuộc chơi trong thế giới cơ sở dữ liệu, trở thành một trong những nền tảng cơ sở dữ liệu quan trọng nhất trong kỷ nguyên internet.

ClusterControl đã hỗ trợ MongoDB kể từ phiên bản tháng 7 năm 2013 (v1.2.3) và liên tục cải tiến kể từ đó. ClusterControl thậm chí còn hỗ trợ TokuMX (MongoDB với cây Fractal của Tokutek) trước khi nó không được chấp nhận trong MongoDB 3 do những thay đổi thiết kế cốt lõi của thượng nguồn. Trong những cải tiến đáng chú ý gần đây, ClusterControl giới thiệu hỗ trợ Percona Backup cho MongoDB, một giải pháp phân tán, ít tác động để đạt được các bản sao lưu nhất quán của các cụm phân đoạn MongoDB và bộ bản sao. Dự án Percona Backup cho MongoDB được kế thừa và thay thế mongodb_consists_backup, dự án không còn được phát triển hoặc hỗ trợ tích cực.

Redis

Redis là một công nghệ cơ sở dữ liệu NoSQL phổ biến nhất khác, tập trung vào khả năng truy cập tốc độ cao thường xuyên vào cùng một phần dữ liệu, ngay cả khi những phần dữ liệu đó lớn. Vào tháng 5 năm 2019, Salvatore Sanfilllippo đã phát hành phiên bản đầu tiên của Redis, a.k.a Remote Dictionary Server và đã thu hút sự chú ý của mọi người vì các tính năng phong phú hơn của nó đối với giải pháp cơ sở dữ liệu trong bộ nhớ mã nguồn mở đã được thiết lập vào thời điểm đó có tên là Memcached.

Redis siêu nhanh do cấu trúc dữ liệu trong bộ nhớ và thực tế là nó đã được viết bằng ngôn ngữ C (đó là một trong những lý do Memcached được viết lại bằng C). Do hiệu suất cao của nó, các nhà phát triển đã chuyển sang Redis để lưu vào bộ nhớ đệm dữ liệu khi khối lượng hoạt động đọc và ghi vượt quá khả năng của cơ sở dữ liệu truyền thống. Dữ liệu được truy cập thường xuyên có thể được lưu trữ trong bộ nhớ đệm và phục vụ bởi các kho dữ liệu khóa-giá trị trong bộ nhớ và giảm thiểu việc đọc và ghi vào các hệ thống dựa trên đĩa chậm hơn, tập trung vào khả năng lưu trữ liên tục.

Theo truyền thống, hệ quản trị cơ sở dữ liệu được thiết kế để cung cấp các chức năng dữ liệu mạnh mẽ hơn là tốc độ theo quy mô. Bộ đệm ứng dụng thường được sử dụng để lưu trữ các bản sao của bảng tra cứu và câu trả lời cho các truy vấn đắt tiền từ DBMS, cả hai đều để cải thiện hiệu suất của ứng dụng và giảm tải nguồn dữ liệu. Đôi khi quy trình làm việc của ứng dụng yêu cầu tạo ra các kết quả sử dụng nhiều tài nguyên. Sau khi thu được những kết quả này, có những trường hợp sau đó kết quả có thể được sử dụng lại, chẳng hạn như khi thực hiện tổng hợp từng phần. Bộ nhớ đệm hoạt động như một phương tiện trung gian lý tưởng để giữ lại các kết quả như vậy giữa các yêu cầu. Đây là nơi Redis tỏa sáng.

Redis đã phát triển từ một kho lưu trữ khóa-giá trị đơn giản rất nhanh sang lưu trữ dữ liệu liên tục và được sử dụng như một hệ thống xếp hàng và môi giới nhắn tin. Nó cho phép thực sự không có trạng thái cho các quy trình của ứng dụng đồng thời giảm sự trùng lặp dữ liệu hoặc yêu cầu đến các nguồn dữ liệu bên ngoài. Theo Khảo sát dành cho nhà phát triển của StackOverflow 2020, Redis vẫn đứng đầu về công nghệ cơ sở dữ liệu mà các nhà phát triển đã bày tỏ sự quan tâm đến việc tiếp tục phát triển. Tại thời điểm viết bài này, Redis 6 là phiên bản mới nhất, với triển khai ACL dựa trên người dùng mới, phức tạp hơn, mã hóa SSL lưu lượng tích hợp và I / O đa luồng, mặc dù quy trình Redis vẫn là một luồng. .

Triển khai Redis được hỗ trợ trong ClusterControl 1.9.0 bằng cách sử dụng gói ClusterControl GUI thế hệ tiếp theo mới của chúng tôi có sẵn trong một bản cài đặt riêng. Tại thời điểm viết bài này, chúng tôi gọi nó là ClusterControl v2 được gắn thẻ Technology Preview chỉ hỗ trợ triển khai bản sao Redis lên đến 5 nút với Redis Sentinel với quản lý sao lưu AOF và RDB. Nếu bạn quan tâm, vui lòng tham khảo hướng dẫn này về cách cài đặt nó.

Tóm tắt

MongoDB và Redis là hai trong số các giải pháp cơ sở dữ liệu NoSQL tốt nhất trên thị trường hiện tại và được cho là sẽ giữ được vị trí trong bảng xếp hạng 10 cơ sở dữ liệu hàng đầu trong một thời gian dài. Đó là lý do ClusterControl hỗ trợ cả hai công nghệ cơ sở dữ liệu.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. làm thế nào để tôi có thể biết những cổng mongo đang lắng nghe từ trình bao mongo?

  2. Có gì mới trong MongoDB 4.4

  3. Truy vấn MongoDB với điều kiện 'hoặc'

  4. Tạo, đọc, cập nhật, xóa dữ liệu bằng cách sử dụng Node.js - Mongoose

  5. MongoDB có thể sử dụng một chỉ mục khi kiểm tra sự tồn tại của một trường có toán tử $ tồn tại không?