Ví dụ phân tích MongoDB

MongoDB là lựa chọn cơ sở dữ liệu hàng đầu để phát triển ứng dụng. Các nhà phát triển chọn cơ sở dữ liệu này vì mô hình dữ liệu linh hoạt và khả năng mở rộng vốn có của nó dưới dạng cơ sở dữ liệu NoSQL. Các tính năng này cho phép các nhóm phát triển lặp lại và xoay vòng một cách nhanh chóng và hiệu quả

MongoDB ban đầu không được phát triển với mục tiêu hiệu suất cao cho phân tích. Tuy nhiên, phân tích hiện là một phần quan trọng của các ứng dụng dữ liệu hiện đại. Các nhà phát triển đã hình thành các giải pháp khéo léo cho các truy vấn phân tích thời gian thực trên dữ liệu được lưu trữ trong MongoDB, sử dụng các giải pháp nội bộ hoặc sản phẩm của bên thứ ba

Hãy khám phá năm cách để chạy phân tích MongoDB, cùng với những ưu và nhược điểm của từng phương pháp

1 – Truy vấn trực tiếp MongoDB

Cách tiếp cận đầu tiên và trực tiếp nhất là chạy các truy vấn phân tích của bạn trực tiếp với MongoDB. Tùy chọn này không yêu cầu công cụ bổ sung, vì vậy bạn có thể phát triển cả ứng dụng vận hành và phân tích trực tiếp trên MongoDB

Tuy nhiên, có nhiều lý do đây không phải là cách tiếp cận ưa thích của hầu hết các nhà phát triển

Đầu tiên, tùy thuộc vào quy mô và bản chất của các truy vấn của bạn, bạn có thể phải tạo ra các bản sao để tránh các tính toán cần thiết can thiệp vào khối lượng công việc của ứng dụng của bạn. Đây có thể là một cách tiếp cận tốn kém và thách thức về mặt kỹ thuật, đòi hỏi nỗ lực để định cấu hình và bảo trì. Cũng có khả năng dữ liệu được truy vấn từ các bản sao không phải là dữ liệu mới nhất do độ trễ của bản sao

Thứ hai, bạn có thể sẽ dành thêm thời gian để thêm và điều chỉnh các chỉ mục MongoDB của mình để làm cho các truy vấn phân tích của bạn hiệu quả hơn. Và ngay cả khi bạn nỗ lực xác định các chỉ mục trên bộ sưu tập của mình, chúng sẽ chỉ hiệu quả đối với các mẫu truy vấn đã biết

Thứ ba, không có phép nối quan hệ nào có sẵn trong MongoDB. Điều này có nghĩa là làm phong phú các truy vấn của bạn với dữ liệu từ nhiều bộ sưu tập có thể vừa tốn thời gian vừa khó sử dụng. Các tùy chọn để nối dữ liệu trong MongoDB bao gồm không chuẩn hóa hoặc sử dụng $lookup operator, nhưng cả hai đều kém linh hoạt và mạnh mẽ hơn so với phép nối quan hệ

2 – Sử dụng Công cụ ảo hóa dữ liệu

Cách tiếp cận tiếp theo là sử dụng một công cụ ảo hóa dữ liệu. Có khá nhiều loại trong số này trên thị trường, mỗi loại đều cố gắng kích hoạt nghiệp vụ thông minh (BI) trên MongoDB. Microsoft kết hợp PolyBase với SQL Server và nó có thể sử dụng MongoDB làm nguồn dữ liệu ngoài. Các nhà cung cấp khác, chẳng hạn như Dremio và Knowi, cung cấp các sản phẩm ảo hóa dữ liệu kết nối với MongoDB. Ảo hóa dữ liệu bằng loại công cụ này cho phép phân tích mà không cần sao chép dữ liệu về mặt vật lý

Lợi ích rõ ràng của phương pháp này là bạn không phải di chuyển dữ liệu, vì vậy nhìn chung bạn có thể thiết lập và chạy nhanh chóng

Các tùy chọn ảo hóa dữ liệu chủ yếu hướng đến việc làm cho BI trên MongoDB trở nên dễ dàng hơn và ít phù hợp hơn để cung cấp độ trễ thấp và đồng thời cao mà nhiều ứng dụng dữ liệu yêu cầu. Các giải pháp này thường sẽ đẩy các truy vấn xuống MongoDB, do đó, bạn sẽ gặp phải những hạn chế tương tự khi sử dụng MongoDB để phân tích mà không có sự tách biệt rõ ràng giữa khối lượng công việc phân tích và vận hành

3 – Sử dụng Kho dữ liệu

Tiếp theo, bạn có thể sao chép dữ liệu của mình vào kho dữ liệu. Có một số người chơi lớn ở đây như Redshift từ AWS, Snowflake và Google BigQuery

Lợi ích của những công cụ này là chúng được xây dựng dành riêng cho phân tích dữ liệu. Chúng hỗ trợ các phép nối và hướng cột của chúng cho phép bạn thực hiện các phép tổng hợp một cách nhanh chóng và hiệu quả. Kho dữ liệu có quy mô tốt và rất phù hợp với các trường hợp sử dụng BI và phân tích nâng cao

Nhược điểm của kho dữ liệu là dữ liệu và độ trễ truy vấn. Dữ liệu gốc hiếm khi sao chép từ nguồn dữ liệu chính theo thời gian thực vì kho dữ liệu không được thiết kế để cập nhật theo thời gian thực. Độ trễ thường trong vài chục phút đến vài giờ, tùy thuộc vào thiết lập của bạn. Kho dữ liệu phụ thuộc nhiều vào quét, làm tăng độ trễ truy vấn. Những hạn chế này làm cho kho dữ liệu ít lựa chọn phù hợp hơn để phục vụ phân tích thời gian thực

Cuối cùng, để quản lý hiệu quả, bạn cần tạo và duy trì các đường dẫn dữ liệu để định hình lại dữ liệu cho các kho này. Các quy trình này yêu cầu nhóm của bạn làm thêm công việc và độ phức tạp tăng thêm có thể khiến các quy trình của bạn trở nên dễ vỡ hơn

4 – Sử dụng cơ sở dữ liệu SQL

Nếu yêu cầu dữ liệu của bạn không đủ lớn để biện minh cho giải pháp kho dữ liệu, có thể bạn có thể sao chép nó vào cơ sở dữ liệu SQL quan hệ nội bộ. Bài viết tuyệt vời này, Giảm tải báo cáo và phân tích theo thời gian thực từ MongoDB bằng PostgreSQL, có thể giúp bạn bắt đầu

Bạn sẽ không gặp nhiều khó khăn khi tìm nhân viên cảm thấy thoải mái khi xây dựng các truy vấn SQL, đây là một mặt trái rõ ràng của phương pháp này. Cơ sở dữ liệu SQL, như MySQL và Postgres, có khả năng cập nhật và truy vấn nhanh. Các cơ sở dữ liệu này có thể phục vụ các ứng dụng dữ liệu thời gian thực, không giống như kho dữ liệu mà chúng tôi đã xem xét trước đây

Tuy nhiên, xin lưu ý rằng phương pháp này vẫn yêu cầu kỹ thuật dữ liệu định hình lại dữ liệu MongoDB để cơ sở dữ liệu quan hệ nhập và sử dụng. Lớp phức tạp bổ sung này sẽ bổ sung thêm nhiều điểm lỗi cho quy trình của bạn

Ngoài ra, cách tiếp cận này không mở rộng tốt. Hầu hết các triển khai SQL không được thiết kế để phân phối, không giống như các đối tác NoSQL của chúng. Mở rộng quy mô theo chiều dọc có thể tốn kém và sau một thời điểm nhất định, sẽ cản trở thời gian, chi phí và công nghệ của bạn

5 – Sử dụng Kho lưu trữ dữ liệu NoSQL được tối ưu hóa cho Analytics

Cuối cùng, bạn có thể sao chép dữ liệu của mình sang kho lưu trữ dữ liệu NoSQL khác được tối ưu hóa cho phân tích. Đáng chú ý ở đây là Elaticsearch, được xây dựng trên Apache Lucene

Lợi ích chính của cách tiếp cận này là không cần chuyển đổi dữ liệu thành cấu trúc quan hệ. Ngoài ra, Elaticsearch tận dụng việc lập chỉ mục của nó để cung cấp các phân tích nhanh mà các ứng dụng dữ liệu hiện đại yêu cầu

Hạn chế của phương pháp MongoDB-to-Elasticsearch là Elaticsearch có ngôn ngữ truy vấn riêng, vì vậy bạn sẽ không thể hưởng lợi từ việc sử dụng SQL để phân tích hoặc thực hiện các phép nối một cách hiệu quả. Và mặc dù bạn có thể không cần thực hiện chuyển đổi nặng trên dữ liệu MongoDB, nhưng bạn vẫn chịu trách nhiệm cung cấp cách đồng bộ hóa dữ liệu từ MongoDB sang Elaticsearch

Một giải pháp thay thế kết hợp các lợi ích của NoSQL và SQL

Có thêm một tùy chọn để chạy phân tích trên MongoDB. tên lửa. Rockset cung cấp các phân tích thời gian thực trên MongoDB bằng cách sử dụng SQL đầy đủ tính năng, bao gồm cả các phép nối. Mặc dù một số tùy chọn mà chúng tôi đã đề cập trước đây sẽ rất phù hợp cho các trường hợp sử dụng BI với các yêu cầu về độ trễ truy vấn và dữ liệu ít nghiêm ngặt hơn, Rockset cho phép bạn chạy các truy vấn SQL có độ trễ thấp trên dữ liệu được tạo vài giây trước đó.

Rockset có trình kết nối MongoDB tích hợp sử dụng MongoDB CDC (thu thập dữ liệu thay đổi), được phân phối qua luồng thay đổi MongoDB, để cho phép Rockset nhận các thay đổi đối với bộ sưu tập MongoDB khi chúng xảy ra. Cập nhật bằng cách sử dụng luồng thay đổi đảm bảo dữ liệu mới nhất có sẵn để phân tích trong Rockset

Phần kết luận

Chúng tôi đã kiểm tra một loạt các giải pháp để thực hiện phân tích đối với dữ liệu của bạn trong MongoDB. Các cách tiếp cận này bao gồm từ thực hiện phân tích trực tiếp trong MongoDB với sự trợ giúp của lập chỉ mục và sao chép, đến di chuyển dữ liệu MongoDB sang kho lưu trữ dữ liệu được trang bị tốt hơn cho phân tích

Tất cả các phương pháp phân tích MongoDB này đều có ưu điểm và nhược điểm của chúng và cần được cân nhắc dựa trên trường hợp sử dụng sẽ được phục vụ. Để có cái nhìn sâu hơn về cách triển khai từng lựa chọn thay thế này và cách đánh giá cái nào phù hợp với bạn, hãy xem Phân tích thời gian thực trên MongoDB. Hướng dẫn cuối cùng

Ví dụ phân tích MongoDB


Rockset là cơ sở dữ liệu phân tích thời gian thực trên đám mây dành cho các nhóm dữ liệu hiện đại. Nhận phân tích nhanh hơn trên dữ liệu mới hơn, với chi phí thấp hơn, bằng cách khai thác lập chỉ mục qua quá trình quét mạnh mẽ

MongoDB có tốt cho việc phân tích dữ liệu không?

MongoDB cung cấp các công cụ và API giúp họ xây dựng các truy vấn phân tích phức tạp . Cùng với các định dạng lưu trữ và lập chỉ mục được tối ưu hóa cho phân tích, thông tin chi tiết và hành động được phân phối ở độ trễ thấp với tính đồng thời cao.

Làm cách nào để lấy dữ liệu thời gian thực từ MongoDB?

4 cách để nhận các bản cập nhật cơ sở dữ liệu theo thời gian thực từ MongoDB .
Móc trong lớp cơ sở dữ liệu của ứng dụng. Đây là một cách tiếp cận rất đơn giản và không có nhiều điều để giải thích. .
Kéo và tìm khác kết quả truy vấn. Đây là một cách tiếp cận nâng cao hơn một chút, đã từng được sử dụng trong Sao băng cho đến phiên bản 0. 7. .
nối đuôi oplog. .
Thay đổi luồng

Làm cách nào để tải dữ liệu mẫu trong MongoDB?

Tải tập dữ liệu mẫu. .
Bấm vào Dấu ba chấm (. ) cho cụm của bạn
Nhấp vào Tải tập dữ liệu mẫu

Làm thế nào phân tích có thể được sử dụng trong thực tế

Ví dụ về phân tích thời gian thực là. Cung cấp cho khách hàng một ưu đãi hoặc một phần thông tin phù hợp với nhu cầu và sở thích của họ dựa trên phân tích thời gian thực về hành vi của họ . Giám sát ứng dụng để ngăn chặn thời gian chết và cải thiện hiệu suất. Chặn thời gian thực các giao dịch gian lận.