Tổng quan về MongoDB

MongoDB là một cơ sở dữ liệu NoSQL mã nguồn mở cung cấp hỗ trợ cho các hệ thống lưu trữ định hướng tài liệu theo kiểu JSON. Nó hỗ trợ một mô hình dữ liệu linh hoạt cho phép bạn lưu trữ dữ liệu ở bất kỳ cấu trúc nào và cung cấp một bộ tính năng phong phú, bao gồm hỗ trợ chỉ mục đầy đủ, phân đoạn và sao chép

AWS cho phép bạn thiết lập cơ sở hạ tầng để hỗ trợ triển khai MongoDB một cách linh hoạt, có thể mở rộng và tiết kiệm chi phí trên Đám mây AWS. Triển khai tham chiếu này sẽ giúp bạn xây dựng cụm MongoDB bằng cách tự động hóa các tác vụ triển khai và cấu hình. Bắt đầu nhanh này hỗ trợ triển khai tự phục vụ cụm bộ bản sao MongoDB (phiên bản 3. 2 hoặc 3. 4) trên AWS

Nếu bạn muốn thiết lập dịch vụ cơ sở dữ liệu được quản lý hoàn toàn, bạn có thể sử dụng MongoDB Atlas thay vì triển khai Bắt đầu nhanh này. MongoDB Atlas tạo một VPC mới cho cơ sở dữ liệu được quản lý của bạn và tự động hóa các tác vụ quản trị có khả năng tốn thời gian như quản lý, giám sát và sao lưu các triển khai MongoDB của bạn. Để biết thêm thông tin về MongoDB Atlas, hãy xem trang web MongoDB

Chi phí và giấy phép

Việc triển khai này sẽ tự động khởi chạy MongoDB thành một cấu hình do bạn chọn. Bạn chịu trách nhiệm về chi phí của các dịch vụ AWS được sử dụng trong khi chạy triển khai tham khảo Bắt đầu nhanh này. Không có chi phí bổ sung cho việc sử dụng Bắt đầu nhanh. Chi phí khác nhau tùy thuộc vào cấu hình lưu trữ và tính toán của cụm mà bạn triển khai

Bắt đầu nhanh này triển khai MongoDB Community Edition phiên bản 3. 2 hoặc 3. 4, là phần mềm mã nguồn mở được phân phối theo Giấy phép Công cộng GNU Affero phiên bản 3

Dịch vụ AWS

Các thành phần AWS cốt lõi mà Bắt đầu nhanh này sử dụng bao gồm các dịch vụ AWS sau. (Nếu bạn chưa quen với AWS, hãy xem phần Bắt đầu trong tài liệu AWS. )

  • Amazon EC2– Dịch vụ Amazon Elastic Compute Cloud (Amazon EC2) cho phép bạn khởi chạy các phiên bản máy ảo với nhiều hệ điều hành khác nhau. Bạn có thể chọn từ Hình ảnh máy Amazon (AMI) hiện có hoặc nhập hình ảnh máy ảo của riêng bạn

  • Amazon VPC– Dịch vụ Amazon Virtual Private Cloud (Amazon VPC) cho phép bạn cung cấp một phần riêng tư, biệt lập của đám mây AWS nơi bạn có thể khởi chạy các dịch vụ AWS và các tài nguyên khác trong mạng ảo do bạn xác định. Bạn có toàn quyền kiểm soát môi trường mạng ảo của mình, bao gồm lựa chọn dải địa chỉ IP của riêng bạn, tạo mạng con và cấu hình bảng định tuyến và cổng mạng

  • Amazon EBS – Amazon Elastic Block Store (Amazon EBS) cung cấp ổ lưu trữ cấp khối liên tục để sử dụng với các phiên bản EC2 trong Đám mây AWS. Mỗi ổ đĩa EBS được tự động sao chép trong Vùng khả dụng của nó để bảo vệ bạn khỏi lỗi thành phần, mang lại độ sẵn sàng và độ bền cao. Ổ đĩa EBS cung cấp hiệu suất nhất quán và độ trễ thấp cần thiết để chạy khối lượng công việc của bạn

  • AWS CloudFormation– AWS CloudFormation mang đến cho bạn một cách dễ dàng để tạo và quản lý tập hợp các tài nguyên AWS có liên quan, đồng thời cung cấp và cập nhật chúng theo cách có trật tự và có thể dự đoán được. Bạn sử dụng một mẫu để mô tả tất cả tài nguyên AWS (e. g. , phiên bản EC2) mà bạn muốn. Bạn không cần phải tạo và định cấu hình tài nguyên riêng lẻ hoặc tìm ra các yếu tố phụ thuộc;

  • IAM– AWS Identity and Access Management (IAM) cho phép bạn kiểm soát an toàn quyền truy cập vào các dịch vụ và tài nguyên AWS cho người dùng của bạn. Với IAM, bạn có thể quản lý người dùng, thông tin đăng nhập bảo mật như khóa truy cập và quyền kiểm soát những tài nguyên AWS mà người dùng có thể truy cập, từ một vị trí trung tâm

    Định nghĩa MongoDB

    • Chia sẻ mục này với mạng của bạn

    Qua

    • Bridget Botelho, Giám đốc biên tập, Tin tức
    • Jack Vaughan

    MongoDB là một chương trình quản lý cơ sở dữ liệu NoSQL mã nguồn mở. NoSQL được sử dụng thay thế cho cơ sở dữ liệu quan hệ truyền thống. Cơ sở dữ liệu NoSQL khá hữu ích để làm việc với các tập dữ liệu phân tán lớn. MongoDB là một công cụ có thể quản lý thông tin định hướng tài liệu, lưu trữ hoặc truy xuất thông tin

    MongoDB hỗ trợ nhiều dạng dữ liệu khác nhau. Đây là một trong nhiều công nghệ cơ sở dữ liệu phi quan hệ phát sinh vào giữa những năm 2000 dưới biểu ngữ NoSQL -- thông thường, để sử dụng trong các ứng dụng dữ liệu lớn và các công việc xử lý khác liên quan đến dữ liệu không phù hợp với mô hình quan hệ cứng nhắc. Thay vì sử dụng bảng và hàng như trong cơ sở dữ liệu quan hệ, kiến ​​trúc MongoDB được tạo thành từ các tập hợp và tài liệu

    Các tổ chức có thể sử dụng Mongo DB cho các truy vấn đặc biệt, lập chỉ mục, cân bằng tải, tổng hợp, thực thi JavaScript phía máy chủ và các tính năng khác

    Làm thế nào nó hoạt động

    MongoDB sử dụng các bản ghi được tạo thành từ các tài liệu chứa cấu trúc dữ liệu bao gồm các cặp trường và giá trị. Tài liệu là đơn vị dữ liệu cơ bản trong MongoDB. Các tài liệu này tương tự như Ký hiệu đối tượng JavaScript, nhưng sử dụng một biến thể có tên là JSON nhị phân (BSON). Lợi ích của việc sử dụng BSON là nó chứa nhiều loại dữ liệu hơn. Các trường trong các tài liệu này tương tự như các cột trong cơ sở dữ liệu quan hệ. Các giá trị được chứa có thể là nhiều loại dữ liệu khác nhau, bao gồm các tài liệu, mảng và mảng tài liệu khác, theo hướng dẫn sử dụng MongoDB. Tài liệu cũng sẽ kết hợp khóa chính làm mã định danh duy nhất

    Bộ tài liệu được gọi là bộ sưu tập, có chức năng tương đương với các bảng cơ sở dữ liệu quan hệ. Bộ sưu tập có thể chứa bất kỳ loại dữ liệu nào, nhưng hạn chế là dữ liệu trong bộ sưu tập không thể trải rộng trên các cơ sở dữ liệu khác nhau

    Shell mongo là một thành phần tiêu chuẩn của các bản phân phối mã nguồn mở của MongoDB. Khi MongoDB được cài đặt, người dùng kết nối vỏ mongo với các phiên bản MongoDB đang chạy của họ. Mongo shell hoạt động như một giao diện JavaScript tương tác với MongoDB, cho phép người dùng truy vấn và cập nhật dữ liệu cũng như tiến hành các hoạt động quản trị

    Định dạng trao đổi dữ liệu và lưu trữ tài liệu BSON cung cấp một biểu diễn nhị phân của các tài liệu giống như JSON. Tự động phân đoạn là một tính năng quan trọng khác cho phép dữ liệu trong bộ sưu tập MongoDB được phân phối trên nhiều hệ thống để có khả năng mở rộng theo chiều ngang khi yêu cầu về khối lượng dữ liệu và thông lượng tăng lên

    Hệ quản trị cơ sở dữ liệu NoSQL sử dụng một kiến ​​trúc tổng thể duy nhất để đảm bảo tính nhất quán của dữ liệu, với các cơ sở dữ liệu thứ cấp duy trì các bản sao của cơ sở dữ liệu chính. Các hoạt động được tự động sao chép sang các cơ sở dữ liệu thứ cấp đó để tự động chuyển đổi dự phòng

    Tổng quan về MongoDB

    MongoDB ưu và nhược điểm

    Giống như các cơ sở dữ liệu NoSQL khác, MongoDB không yêu cầu các lược đồ được xác định trước. Nó lưu trữ bất kỳ loại dữ liệu. Điều này cho phép người dùng linh hoạt để tạo bất kỳ số lượng trường nào trong tài liệu, giúp mở rộng cơ sở dữ liệu MongoDB dễ dàng hơn so với cơ sở dữ liệu quan hệ

    Một trong những ưu điểm của việc sử dụng tài liệu là các đối tượng này ánh xạ tới các kiểu dữ liệu gốc trong một số ngôn ngữ lập trình. Ngoài ra, việc có các tài liệu được nhúng giúp giảm nhu cầu kết nối cơ sở dữ liệu, điều này có thể giảm chi phí

    Một chức năng cốt lõi của MongoDB là khả năng mở rộng theo chiều ngang, khiến nó trở thành cơ sở dữ liệu hữu ích cho các công ty chạy các ứng dụng dữ liệu lớn. Ngoài ra, sharding cho phép cơ sở dữ liệu phân phối dữ liệu trên một cụm máy. Các phiên bản mới hơn của MongoDB cũng hỗ trợ tạo vùng dữ liệu dựa trên khóa phân đoạn

    MongoDB hỗ trợ một số công cụ lưu trữ và cung cấp API công cụ lưu trữ có thể cắm được cho phép các bên thứ ba phát triển công cụ lưu trữ của riêng họ cho MongoDB

    DBMS cũng có khả năng tổng hợp tích hợp, cho phép người dùng chạy mã MapReduce trực tiếp trên cơ sở dữ liệu thay vì chạy MapReduce trên Hadoop. MongoDB cũng bao gồm hệ thống tệp riêng của nó được gọi là GridFS, gần giống với Hệ thống tệp phân tán Hadoop (HDFS). Việc sử dụng hệ thống tệp chủ yếu để lưu trữ các tệp lớn hơn giới hạn kích thước của BSON là 16 MB cho mỗi tài liệu. Những điểm tương đồng này cho phép sử dụng MongoDB thay vì Hadoop, mặc dù phần mềm cơ sở dữ liệu tích hợp với Hadoop, Spark và các khung xử lý dữ liệu khác

    Mặc dù có một số lợi ích có giá trị đối với MongoDB, nhưng nó cũng có một số nhược điểm. Với chiến lược chuyển đổi dự phòng tự động, người dùng chỉ thiết lập một nút chính trong cụm MongoDB. Nếu master bị lỗi, một nút khác sẽ tự động chuyển đổi thành master mới. Quá trình chuyển đổi này hứa hẹn tính liên tục, nhưng không phải là tức thời -- có thể mất tới một phút. Để so sánh, cơ sở dữ liệu Cassandra NoSQL hỗ trợ nhiều nút chính để nếu một nút chính ngừng hoạt động, một nút chính khác sẽ sẵn sàng cho cơ sở hạ tầng cơ sở dữ liệu có tính sẵn sàng cao

    Nút chính duy nhất của MongoDB cũng giới hạn tốc độ ghi dữ liệu vào cơ sở dữ liệu. Việc ghi dữ liệu phải được ghi trên nút chính và việc ghi thông tin mới vào cơ sở dữ liệu bị giới hạn bởi khả năng của nút chính đó

    Một vấn đề tiềm ẩn khác là MongoDB không cung cấp tính toàn vẹn tham chiếu đầy đủ thông qua việc sử dụng các ràng buộc khóa ngoại, điều này có thể ảnh hưởng đến tính nhất quán của dữ liệu. Ngoài ra, xác thực người dùng không được bật theo mặc định trong cơ sở dữ liệu MongoDB, một dấu hiệu cho thấy sự phổ biến của công nghệ này với các nhà phát triển. Tuy nhiên, các tin tặc độc hại đã nhắm mục tiêu một số lượng lớn các hệ thống MongoDB không bảo mật trong các cuộc tấn công đòi tiền chuộc, dẫn đến việc bổ sung một cài đặt mặc định chặn các kết nối được nối mạng tới cơ sở dữ liệu nếu chúng chưa được quản trị viên cơ sở dữ liệu định cấu hình

    Nền tảng MongoDB

    MongoDB có sẵn trong các phiên bản cộng đồng và thương mại thông qua nhà cung cấp MongoDB Inc. MongoDB Community Edition là bản phát hành nguồn mở, trong khi MongoDB Enterprise Server mang đến các tính năng bảo mật bổ sung, công cụ lưu trữ trong bộ nhớ, tính năng quản trị và xác thực cũng như khả năng giám sát thông qua Trình quản lý Ops

    Giao diện người dùng đồ họa (GUI) có tên là MongoDB Compass cung cấp cho người dùng cách làm việc với cấu trúc tài liệu, thực hiện truy vấn, lập chỉ mục dữ liệu, v.v. Trình kết nối MongoDB cho BI cho phép người dùng kết nối cơ sở dữ liệu NoSQL với các công cụ kinh doanh thông minh của họ để trực quan hóa dữ liệu và tạo báo cáo bằng các truy vấn SQL

    Theo bước chân của các nhà cung cấp cơ sở dữ liệu NoSQL khác, MongoDB Inc. đã ra mắt cơ sở dữ liệu đám mây dưới dạng dịch vụ có tên MongoDB Atlas vào năm 2016. Atlas chạy trên AWS, Microsoft Azure và Google Cloud Platform. Sau đó, MongoDB đã phát hành một nền tảng có tên là Stitch để phát triển ứng dụng trên MongoDB Atlas, với kế hoạch mở rộng nó sang cơ sở dữ liệu tại chỗ

    Tổng quan về MongoDB

    Công ty cũng đã thêm hỗ trợ cho các giao dịch ACID đa tài liệu như một phần của MongoDB 4. 0 trong năm 2018. Việc tuân thủ các thuộc tính ACID -- tính nguyên tử, tính nhất quán, cách ly và độ bền -- trên nhiều tài liệu giúp mở rộng các loại khối lượng công việc giao dịch mà MongoDB có thể xử lý với độ chính xác và độ tin cậy được đảm bảo

    Lịch sử MongoDB

    MongoDB được tạo bởi Dwight Merriman và Eliot Horowitz, những người đã gặp phải các vấn đề về phát triển và khả năng mở rộng với các phương pháp tiếp cận cơ sở dữ liệu quan hệ truyền thống trong khi xây dựng các ứng dụng web tại DoubleClick, một công ty quảng cáo trực tuyến hiện thuộc sở hữu của Google Inc. Tên của cơ sở dữ liệu được bắt nguồn từ từ humongous để thể hiện ý tưởng hỗ trợ lượng lớn dữ liệu

    Merriman và Horowitz đã giúp thành lập 10Gen Inc. vào năm 2007 để thương mại hóa MongoDB và các phần mềm liên quan. Công ty được đổi tên thành MongoDB Inc. vào năm 2013 và ra mắt công chúng vào tháng 10 năm 2017 với mã chứng khoán MDB

    DBMS đã được phát hành dưới dạng phần mềm nguồn mở vào năm 2009 và có sẵn theo các điều khoản của Phiên bản 3. 0 của Giấy phép Công cộng GNU Affero General của Tổ chức Phần mềm Tự do, bên cạnh các giấy phép thương mại do MongoDB Inc cung cấp

    Các tổ chức như công ty bảo hiểm MetLife đã sử dụng MongoDB cho các ứng dụng dịch vụ khách hàng, trong khi các trang web khác như Craigslist đã sử dụng nó để lưu trữ dữ liệu và phòng thí nghiệm vật lý CERN đã sử dụng nó để tổng hợp và khám phá dữ liệu. Ngoài ra, The New York Times đã sử dụng MongoDB để hỗ trợ ứng dụng tạo biểu mẫu để gửi ảnh

    MongoDB dùng để làm gì?

    MongoDB là cơ sở dữ liệu tài liệu được sử dụng để xây dựng các ứng dụng internet có khả năng mở rộng và khả dụng cao . Với cách tiếp cận lược đồ linh hoạt, nó phổ biến với các nhóm phát triển sử dụng các phương pháp nhanh.

    MongoDB là gì và nó hoạt động như thế nào?

    MongoDB là cơ sở dữ liệu NoSQL mã nguồn mở . Là một cơ sở dữ liệu phi quan hệ, nó có thể xử lý dữ liệu có cấu trúc, bán cấu trúc và phi cấu trúc. Nó sử dụng mô hình dữ liệu hướng tài liệu, phi quan hệ và ngôn ngữ truy vấn phi cấu trúc. MongoDB rất linh hoạt và cho phép bạn kết hợp và lưu trữ nhiều loại dữ liệu.

    Các khái niệm chính của MongoDB là gì?

    Dưới đây là một số khái niệm và thuật ngữ chính bạn sẽ gặp khi tìm hiểu về MongoDB. .
    Các tài liệu. Các bản ghi trong cơ sở dữ liệu tài liệu
    bộ sưu tập. Nhóm tài liệu
    Bộ bản sao. Đảm bảo tính sẵn sàng cao
    sharding. Khả năng mở rộng để xử lý tăng trưởng dữ liệu lớn
    chỉ mục. Cải thiện tốc độ truy vấn

    Ưu điểm chính của MongoDB là gì?

    MongoDB được thiết kế để giúp truy cập dữ liệu dễ dàng và hiếm khi yêu cầu tham gia hoặc giao dịch, nhưng khi bạn cần thực hiện truy vấn phức tạp, . API truy vấn MongoDB cho phép bạn truy vấn sâu vào tài liệu và thậm chí thực hiện các quy trình phân tích phức tạp chỉ với một vài dòng mã khai báo.