MongoDB là gì và tại sao nên sử dụng MongoDB?

Gần đây chúng tôi đã xuất bản tổng quan về một số loại cơ sở dữ liệu NoSQL khác nhau. Lần này chúng ta sẽ đi sâu hơn vào một ví dụ cụ thể, MongoDB và xem tại sao nhiều tổ chức lại coi đây là một giải pháp hấp dẫn

Cơ sở dữ liệu NoSQL đã xuất hiện cách đây khoảng 10 năm để phục vụ nhu cầu của các ứng dụng phân tán chạy trên các máy chủ ở nhiều địa điểm — các máy chủ hỗ trợ thương mại điện tử và các hoạt động khác trên World Wide Web

NoSQL đi theo Chu kỳ cường điệu của Gartner, ban đầu leo ​​lên một làn sóng ồn ào đến Đỉnh điểm của những kỳ vọng bị thổi phồng, sau đó rơi xuống Máng vỡ mộng. Cơ sở dữ liệu NoQuery hiện có trên Cao nguyên năng suất. Họ đủ trưởng thành để các tổ chức cảm thấy thoải mái với tình trạng của các sản phẩm khác nhau và sẵn sàng chấp nhận chúng khi trường hợp sử dụng có ý nghĩa

Khi nào nên sử dụng NoSQL so với. SQL

Cơ sở dữ liệu NoSQL như MongoDB là một lựa chọn tốt khi dữ liệu của bạn tập trung vào tài liệu và không phù hợp với lược đồ của cơ sở dữ liệu quan hệ, khi bạn cần điều chỉnh quy mô lớn, khi bạn tạo mẫu nhanh và một số trường hợp sử dụng khác

MongoDB là loại phổ biến nhất của loại cơ sở dữ liệu NoQuery không liên quan mới. Cụ thể, đó là cơ sở dữ liệu tài liệu, còn được gọi là cơ sở dữ liệu hướng tài liệu hoặc kho lưu trữ tài liệu

  • Tài liệu chứa dữ liệu bán cấu trúc, thường được biểu diễn ở định dạng như JSON hoặc XML và mỗi tài liệu được liên kết với một khóa duy nhất
  • Các giá trị khóa thường là một đường dẫn hoặc một URI có thể được sử dụng để truy xuất tài liệu được liên kết từ cơ sở dữ liệu
  • Các khóa được lập chỉ mục, giúp truy xuất các tài liệu liên quan hiệu quả

Cấu trúc tài liệu thường phù hợp với các đối tượng mà các nhà phát triển đang làm việc với mã, đây là cách tiếp cận linh hoạt hơn so với cấu trúc hướng theo hàng và cột của cơ sở dữ liệu quan hệ. Nhà phát triển có thể làm lại cấu trúc tài liệu (dữ liệu) khi yêu cầu ứng dụng của họ thay đổi theo thời gian. Với cách tiếp cận này, cấu trúc dữ liệu trở nên giống như mã — cả hai đều nằm dưới sự kiểm soát của nhà phát triển

Cơ sở dữ liệu tài liệu phổ biến trong các nền tảng giao dịch chứng khoán và thương mại điện tử, trong số các mục đích sử dụng khác, vì chúng có khả năng mở rộng tốt trên nhiều máy chủ để hỗ trợ lưu lượng và khối lượng dữ liệu cao

Cơ sở dữ liệu tài liệu phổ biến bao gồm Amazon DynamoDB, Couchbase và Google Cloud Firestore, nhưng cơ sở dữ liệu được sử dụng rộng rãi nhất là MongoDB, vì vậy đây là cơ sở dữ liệu chúng tôi sẽ tập trung vào. Cơ sở dữ liệu tài liệu khác nhau trong cách triển khai của chúng — hãy xem chính xác điều gì khiến MongoDB được đánh dấu

Sách điện tử miễn phí. Hướng dẫn phân tích cơ sở dữ liệu giao dịch hiệu quả

TẢI XUỐNG

MongoDB là gì và tại sao nên sử dụng MongoDB?

Phóng to MongoDB

MongoDB lưu trữ các bản ghi dữ liệu dưới dạng tài liệu BSON. BSON là biểu diễn nhị phân của tài liệu JSON, mặc dù nó chứa nhiều loại dữ liệu hơn JSON

Đến lượt mình, các tài liệu được tập hợp thành các bộ sưu tập. Nếu bạn đã quen thuộc với cơ sở dữ liệu quan hệ, bạn có thể coi tập hợp tương đương với bảng nhưng không có lược đồ. Không giống như các bản ghi trong một bảng quan hệ, các tài liệu trong một bộ sưu tập có thể có các trường khác nhau, mặc dù thông thường tất cả các tài liệu trong một bộ sưu tập đều có mục đích tương tự hoặc liên quan. Bộ sưu tập tồn tại trong một cơ sở dữ liệu nhất định

Hầu hết các doanh nghiệp sử dụng MongoDB làm cơ sở dữ liệu phân tán trên nhiều máy chủ phân tán về mặt địa lý trong một cấu hình được gọi là cụm. Các cụm cho phép cơ sở dữ liệu MongoDB mở rộng theo chiều ngang trên nhiều máy chủ với sharding (tự động cân bằng). Chúng cũng cho phép các ứng dụng sao chép dữ liệu trên các máy chủ để đảm bảo tính sẵn sàng cao thông qua một tính năng mà MongoDB gọi là các bộ bản sao, do đó nâng cao hiệu suất tổng thể và độ tin cậy của cụm MongoDB

MongoDB hỗ trợ các giao dịch ACID đa tài liệu, thậm chí trên các bộ bản sao và cụm phân đoạn. Điều đó có nghĩa là nếu một kết nối bị ngắt trước khi giao dịch hoàn tất hoặc nếu bất kỳ lệnh nào trong giao dịch không thành công, thì cơ sở dữ liệu sẽ khôi phục tất cả các thay đổi mà nó đã thực hiện trong quá trình giao dịch. Tuân thủ ACID cũng là một lợi ích chính đối với cơ sở dữ liệu quan hệ

Để lấy dữ liệu vào và ra khỏi cơ sở dữ liệu, MongoDB sử dụng MongoDB Query Language (MQL). Nó sử dụng cú pháp giống như các tài liệu, giúp các nhà phát triển dễ dàng làm việc với nó, nhưng nó không trực quan bằng SQL, ngôn ngữ truy vấn tiêu chuẩn cho cơ sở dữ liệu quan hệ — và nhiều nhà phân tích sẽ gặp vấn đề với việc sử dụng “trực quan” và “SQL” trong

Các trường hợp sử dụng NoSQL

Cơ sở dữ liệu NoSQL nói chung và MongoDB nói riêng đặc biệt phù hợp với một số trường hợp sử dụng nhất định. Nếu bạn đang tranh luận về giá trị của SQL so với. Cơ sở dữ liệu NoSQL, xem bài viết trước của chúng tôi

Có thể chuyển đổi từ Alooma sang Fivetran, loại bỏ bảo trì ETL

Với Alooma, các thay đổi lược đồ yêu cầu bảo trì back-end, nhưng trình kết nối Fivetran tự động thích ứng với các thay đổi API và lược đồ

TÌM HIỂU THÊM

MongoDB là gì và tại sao nên sử dụng MongoDB?

Dữ liệu quy mô lớn

Cơ sở dữ liệu NoSQL đặc biệt tốt trong việc xử lý dữ liệu lớn vì chúng được kiến ​​trúc để mở rộng quy mô theo chiều ngang trên nhiều máy chủ. Hỗ trợ tích hợp sẵn của MongoDB cho sharding cho phép các nhà phát triển mở rộng quy mô cụm chỉ bằng cách thêm máy, điều này rất đơn giản trong môi trường đám mây với độ trễ tối thiểu. Đó là một cách tiếp cận tiết kiệm chi phí hơn so với các doanh nghiệp từng có sẵn, khi họ phải cung cấp cho trung tâm dữ liệu của mình đủ bộ nhớ máy chủ và tài nguyên CPU cho các chu kỳ sử dụng cao nhất, khiến hệ thống không được sử dụng đúng mức khi tải giảm

Bộ nhớ đệm và tính sẵn sàng cao

MongoDB dễ dàng tạo bản sao — bản sao dữ liệu chỉ đọc — khiến nó trở nên tự nhiên đối với các ứng dụng yêu cầu tính sẵn sàng cao. Nếu một máy chủ chính bị hỏng, MongoDB có thể trao đổi trong một máy chủ phụ để tiếp quản làm máy chủ chính. Trong khi đó, dữ liệu có thể được lưu vào bộ nhớ cache trên các máy chủ gần với những người dùng cần dữ liệu đó, giảm thiểu độ trễ cho các nhà phân tích dữ liệu muốn có dữ liệu mới nhất để tạo báo cáo kinh doanh thông minh hoặc các nhà khoa học dữ liệu tạo mô hình máy học

tạo mẫu nhanh

Cơ sở dữ liệu NoQuery phù hợp tự nhiên cho các doanh nghiệp đang xây dựng sản phẩm mới. Thông số kỹ thuật và khả năng thường thay đổi trong quá trình phát triển, đặc biệt là ở giai đoạn tạo mẫu. Khi các nhà phát triển ứng dụng sử dụng cơ sở dữ liệu quan hệ với lược đồ đã xác định, sẽ tốn thời gian để sửa đổi cấu trúc dữ liệu và chuyển đổi dữ liệu. Trong một môi trường phát triển nhanh chóng, bạn có thể phải làm điều đó nhiều lần

Ngược lại, khi bạn sử dụng cơ sở dữ liệu tài liệu như MongoDB, bạn không có lược đồ cứng nhắc, chỉ có các cặp tài liệu khóa-giá trị, giúp bạn linh hoạt hơn

Nguồn cấp dữ liệu trực tuyến

Cơ sở dữ liệu tài liệu là giải pháp thay thế hiệu quả cho kho dữ liệu dành cho các bộ dữ liệu thay đổi nhanh chóng. Kho dữ liệu sử dụng cơ sở dữ liệu quan hệ dạng cột trong đó tất cả dữ liệu được cấu trúc theo một lược đồ. Điều đó tạo ra một kho lưu trữ nhanh để phân tích, nhưng một kho lưu trữ cực kỳ kém hiệu quả để cập nhật và không linh hoạt khi các lược đồ thay đổi

MongoDB có một tính năng gọi là luồng thay đổi, là luồng thời gian thực của tất cả các thay đổi xảy ra trong cơ sở dữ liệu. Nếu một ứng dụng chèn, cập nhật hoặc xóa dữ liệu trong một bộ sưu tập, MongoDB sẽ kích hoạt một sự kiện thay đổi với tất cả dữ liệu đã được sửa đổi trên tất cả các bản sao. Điều đó làm cho MongoDB trở thành một phần cuối tuyệt vời cho các ứng dụng quản lý nguồn cấp dữ liệu phát trực tuyến - các trường hợp sử dụng như nhận xét mới cho bảng nhắn tin, bài đọc mới từ cảm biến IoT (internet vạn vật) hoặc đơn đặt hàng chứng khoán tài chính

Quản lý nội dung và biên mục

Các ứng dụng dựa trên nội dung là một trường hợp đặc biệt của nguồn cấp dữ liệu trực tuyến. Xem xét một danh mục sản phẩm bán lẻ. Sản phẩm mới đến và đi thường xuyên. Hàng tồn kho sản phẩm thay đổi khi đơn vị được bán và giá cũng thay đổi. Tùy thuộc vào nhu cầu của nhà bán lẻ, các nhà phát triển có thể tạo các mô hình dữ liệu ở dạng cấu trúc JSON để thể hiện cách công ty xử lý hàng tồn kho và bán hàng, với cấu trúc động, linh hoạt mà họ có thể thay đổi dễ dàng

Đi thuyền vào tương lai

Như bạn có thể thấy, MongoDB là một giải pháp thay thế tuyệt vời cho nhiều trường hợp sử dụng khác nhau. Nó đủ trưởng thành để được bất kỳ tổ chức nào xem xét với trường hợp sử dụng mới. Và mức độ phổ biến ngày càng tăng của nó có nghĩa là nhiều tổ chức có dữ liệu có giá trị được lưu trữ trong cơ sở dữ liệu MongoDB

Đó là lý do Fivetran phát triển trình kết nối của chúng tôi cho MongoDB. Chúng tôi có thể giúp bạn mở khóa giá trị của dữ liệu được lưu trữ đó bằng cách sao chép dữ liệu đó vào kho dữ liệu của công ty bạn. Chúng tôi đã ghi lại toàn bộ quá trình, nhưng không có gì thay thế cho việc tự mình thử. Đăng ký ngay hôm nay để dùng thử miễn phí

MongoDB là gì và tại sao lại sử dụng nó?

MongoDB là ứng dụng quản lý cơ sở dữ liệu NoSQL . Hệ thống cơ sở dữ liệu NoSQL cung cấp giải pháp thay thế cho cơ sở dữ liệu quan hệ truyền thống sử dụng SQL (Ngôn ngữ truy vấn có cấu trúc). Dữ liệu được lưu trữ trong các bảng, hàng và cột trong cơ sở dữ liệu quan hệ, với các mối quan hệ giữa các thực thể.

Khi nào chúng ta nên sử dụng MongoDB?

Cơ sở dữ liệu NoSQL như MongoDB là một lựa chọn tốt khi dữ liệu của bạn tập trung vào tài liệu và không phù hợp với lược đồ của cơ sở dữ liệu quan hệ, khi bạn cần đáp ứng quy mô lớn, khi bạn nhanh chóng tạo nguyên mẫu và một vài trường hợp sử dụng khác

Vai trò của MongoDB là gì?

MongoDB cung cấp vai trò quản trị cơ sở dữ liệu và người dùng cơ sở dữ liệu tích hợp trên mọi cơ sở dữ liệu . MongoDB chỉ cung cấp tất cả các vai trò tích hợp khác trên cơ sở dữ liệu quản trị. Phần này mô tả các đặc quyền cho từng vai trò tích hợp.

Tại sao chúng ta nên sử dụng MongoDB thay vì SQL?

Vì mô hình tài liệu của MongoDB lưu trữ dữ liệu liên quan cùng nhau, nên việc truy xuất một tài liệu từ MongoDB thường nhanh hơn là THAM GIA dữ liệu trên nhiều bảng trong MySQL.