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

Truyền dữ liệu NoSQL với MongoDB &Kafka

Các nhà phát triển mô tả Kafka là hệ thống nhắn tin " phân tán, chịu được lỗi, thông lượng cao, pub-sub,. "Kafka nổi tiếng là một dịch vụ nhật ký cam kết được phân vùng, phân tán và nhân rộng. Nó cũng cung cấp chức năng của hệ thống nhắn tin nhưng với thiết kế độc đáo. Mặt khác, MongoDB được biết đến với cái tên" Cơ sở dữ liệu dành cho ý tưởng khổng lồ. "MongoDB có khả năng lưu trữ dữ liệu trong các tài liệu giống JSON có thể khác nhau về cấu trúc, cung cấp một lược đồ linh hoạt, năng động. MongoDB được thiết kế để có tính khả dụng và khả năng mở rộng cao, với tính năng sao chép và tự động phân mảnh tích hợp sẵn.

MongoDB được phân loại trong "Cơ sở dữ liệu", trong khi Kafka thuộc danh mục "Hàng đợi Thư" của ngăn xếp công nghệ. Các nhà phát triển coi Kafka là "Thông lượng cao", "Phân tán" và "Có thể mở rộng" là các yếu tố chính; trong khi "Lưu trữ theo hướng tài liệu", "Không sử dụng SQL" và "Dễ sử dụng" được coi là những lý do chính khiến MongoDB được ưa chuộng.

Truyền dữ liệu trong Kafka

Trong hệ sinh thái dữ liệu ngày nay, không có hệ thống nào có thể cung cấp tất cả các quan điểm cần thiết để cung cấp thông tin chi tiết thực sự về dữ liệu. Để có được sự trực quan hóa tốt hơn về thông tin chi tiết từ dữ liệu đòi hỏi phải kết hợp một khối lượng thông tin khổng lồ từ nhiều nguồn dữ liệu. Như vậy, chúng tôi rất mong muốn nhận được câu trả lời ngay lập tức; nếu thời gian thực hiện để phân tích thông tin chi tiết về dữ liệu vượt quá 10 giây mili giây thì giá trị đó sẽ bị mất hoặc không còn liên quan. Các ứng dụng như phát hiện gian lận, giao dịch tần suất cao và công cụ khuyến nghị không thể chờ đợi. Thao tác này còn được gọi là phân tích luồng dữ liệu trước khi nó được cập nhật dưới dạng cơ sở dữ liệu của bản ghi không có dung sai cho việc mất dữ liệu và thách thức càng trở nên khó khăn hơn.

Kafka giúp bạn nhập và nhanh chóng di chuyển một lượng lớn dữ liệu đáng tin cậy từ nhiều nguồn dữ liệu, sau đó chuyển hướng nó đến các hệ thống cần nó bằng cách lọc, tổng hợp và phân tích trên đường. Kafka có thông lượng, độ tin cậy và đặc điểm nhân rộng cao hơn, một phương pháp có thể mở rộng để truyền tải các luồng dữ liệu sự kiện từ một hoặc nhiều nhà sản xuất Kafka đến một hoặc nhiều người tiêu dùng Kafka. Ví dụ về các sự kiện bao gồm:

  • Dữ liệu ô nhiễm không khí được thu thập dựa trên cơ sở định kỳ
  • Người tiêu dùng thêm một mặt hàng vào giỏ hàng trong cửa hàng trực tuyến
  • Một Tweet được đăng với một thẻ bắt đầu bằng # cụ thể

Các luồng sự kiện Kafka được ghi lại và sắp xếp thành các chủ đề được xác định trước. Nhà sản xuất Kafka chọn một chủ đề để gửi một sự kiện nhất định và người tiêu dùng chọn chủ đề mà họ lấy sự kiện từ đó. Ví dụ:một ứng dụng tài chính trên thị trường chứng khoán có thể kéo các giao dịch cổ phiếu từ một chủ đề này và thông tin tài chính của công ty từ một chủ đề khác để tìm kiếm cơ hội giao dịch.

Sự hợp tác giữa MongoDB và Kafka tạo nên trung tâm của nhiều kiến ​​trúc dữ liệu hiện đại ngày nay. Kafka được thiết kế cho các luồng dữ liệu vô hạn ghi tuần tự các sự kiện vào nhật ký cam kết, cho phép di chuyển dữ liệu theo thời gian thực giữa MongoDB và Kafka được thực hiện thông qua việc sử dụng Kafka Connect.

Trình kết nối MongoDB chính thức cho Kafka được phát triển và được hỗ trợ bởi MongoDB Inc. Kỹ sư. Nó cũng được xác minh bởi Confluent (người đi tiên phong trong nền tảng phát trực tuyến sự kiện sẵn sàng cho doanh nghiệp), tuân thủ các nguyên tắc do Chương trình tích hợp đã xác minh của Confluent đưa ra. Trình kết nối cho phép MongoDB được định cấu hình vừa là ổ chìm vừa là nguồn cho Kafka. Dễ dàng xây dựng các đường ống dẫn dữ liệu mạnh mẽ, hoạt động theo luồng các sự kiện giữa các ứng dụng và dịch vụ trong thời gian thực.

Trình kết nối bồn rửa MongoDB

MongoDB Sink cho phép chúng tôi viết các sự kiện từ Kafka vào phiên bản MongoDB của chúng tôi. Trình kết nối Sink chuyển đổi giá trị từ Kafka Connect SinkRecords thành Tài liệu MongoDB và sẽ thực hiện chèn hoặc bổ sung tùy thuộc vào cấu hình bạn đã chọn. Nó mong đợi cơ sở dữ liệu được tạo từ trước, các bộ sưu tập MongoDB được nhắm mục tiêu được tạo nếu chúng không tồn tại.

Trình kết nối nguồn MongoDB Kafka

Trình kết nối nguồn MongoDB Kafka di chuyển dữ liệu từ tập hợp bản sao MongoDB vào một cụm Kafka. Trình kết nối định cấu hình và sử dụng các tài liệu sự kiện luồng thay đổi và xuất bản chúng thành một chủ đề. Các luồng thay đổi, một tính năng được giới thiệu trong MongoDB 3.6, tạo các tài liệu sự kiện chứa các thay đổi đối với dữ liệu được lưu trữ trong MongoDB trong thời gian thực và cung cấp các đảm bảo về độ bền, tính bảo mật và tính hiệu quả. Bạn có thể định cấu hình các luồng thay đổi để quan sát các thay đổi ở cấp độ thu thập, cơ sở dữ liệu hoặc triển khai. Nó sử dụng các cài đặt sau để tạo các luồng thay đổi và tùy chỉnh đầu ra để lưu vào cụm Kafka. Nó sẽ xuất bản các sự kiện dữ liệu đã thay đổi thành một chủ đề Kafka bao gồm cơ sở dữ liệu và tên bộ sưu tập mà từ đó thay đổi bắt nguồn.

Trường hợp sử dụng MongoDB &Kafka

Trang web Thương mại Điện tử

Trường hợp sử dụng của trang web Thương mại điện tử, theo đó dữ liệu hàng tồn kho được lưu trữ vào MongoDB. Khi lượng hàng tồn kho trong kho của sản phẩm xuống dưới một ngưỡng nhất định, công ty muốn đặt hàng tự động để tăng lượng hàng dự trữ. Quá trình đặt hàng được thực hiện bởi các hệ thống khác bên ngoài MongoDB và việc sử dụng Kafka làm nền tảng cho các hệ thống hướng sự kiện như vậy là một ví dụ tuyệt vời về sức mạnh của MongoDB và Kafka khi được sử dụng cùng nhau.

Theo dõi Hoạt động Trang web

Hoạt động của trang web chẳng hạn như các trang được truy cập hoặc quảng cáo được hiển thị được thu thập thành các chủ đề Kafka - một chủ đề cho mỗi loại dữ liệu. Các chủ đề đó sau đó có thể được sử dụng bởi nhiều chức năng như giám sát, phân tích thời gian thực hoặc lưu trữ để phân tích ngoại tuyến. Thông tin chi tiết từ dữ liệu được lưu trữ trong cơ sở dữ liệu hoạt động như MongoDB, nơi chúng có thể được phân tích cùng với dữ liệu từ các nguồn khác.

Internet vạn vật (IoT)

Các ứng dụng IoT phải đối phó với số lượng lớn các sự kiện được tạo ra bởi vô số thiết bị. Kafka đóng một vai trò quan trọng trong việc cung cấp khả năng thu thập dữ liệu cảm biến theo thời gian thực và theo thời gian thực của tất cả các dữ liệu cảm biến đó. Một trường hợp sử dụng phổ biến là viễn thông, trong đó chẩn đoán từ các cảm biến của xe phải được nhận và xử lý trở lại tại cơ sở. Sau khi được nắm bắt trong các chủ đề Kafka, dữ liệu có thể được xử lý theo nhiều cách, bao gồm xử lý luồng hoặc kiến ​​trúc Lambda. Nó cũng có khả năng được lưu trữ trong cơ sở dữ liệu hoạt động như MongoDB, nơi nó có thể được kết hợp với dữ liệu được lưu trữ khác để thực hiện phân tích thời gian thực và hỗ trợ các ứng dụng hoạt động như kích hoạt các ưu đãi được cá nhân hóa.

Kết luận

MongoDB nổi tiếng là cơ sở dữ liệu phi quan hệ, được xuất bản theo giấy phép nguồn mở và miễn phí, MongoDB chủ yếu là cơ sở dữ liệu hướng tài liệu, được thiết kế để sử dụng với dữ liệu bán cấu trúc như tài liệu văn bản. Đây là cơ sở dữ liệu hiện đại phổ biến nhất được xây dựng để xử lý khối lượng dữ liệu không đồng nhất khổng lồ và khổng lồ.

Kafka là nền tảng phát trực tuyến phân tán phổ biến rộng rãi mà hàng nghìn công ty như New Relic, Uber và Square sử dụng để xây dựng hệ thống phát trực tuyến thời gian thực có thể mở rộng, thông lượng cao và đáng tin cậy.

MongoDB và Kafka cùng nhau đóng vai trò quan trọng trong hệ sinh thái dữ liệu của chúng tôi và nhiều kiến ​​trúc dữ liệu hiện đại.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Đặt ngày mặc định khi chèn tài liệu với trường thời gian.

  2. Làm cách nào để sắp xếp bộ sưu tập Sao băng theo thời gian chèn?

  3. MongoDb với FastAPI

  4. Tạo mối quan hệ Khoá ngoại trong Mongoose

  5. Giới hạn kết quả trong MongoDB nhưng vẫn nhận được đầy đủ?