Các công cụ nguồn mở để trợ giúp khai thác điểm số của ban lãnh đạo


12

Hãy xem xét một luồng chứa các bộ dữ liệu (user, new_score) đại diện cho điểm của người dùng trong trò chơi trực tuyến. Luồng có thể có 100-1.000 phần tử mới mỗi giây. Trò chơi có 200K đến 300K người chơi độc đáo.

Tôi muốn có một số truy vấn thường trực như:

  1. Những người chơi nào đã đăng nhiều hơn x điểm trong một cửa sổ trượt trong một giờ
  2. Người chơi nào đạt được x% ​​điểm trong một cửa sổ trượt trong một giờ

Câu hỏi của tôi là những công cụ nguồn mở nào tôi có thể sử dụng để khởi động dự án này? Tôi đang xem xét Esper tại thời điểm này.

Lưu ý: Tôi vừa đọc xong "Khai thác luồng dữ liệu" (chương 4 của Khai thác dữ liệu lớn ) và tôi còn khá mới để khai thác luồng dữ liệu.

Câu trả lời:


8

Đây không phải là một giải pháp đầy đủ, nhưng bạn có thể muốn xem xét OrientDB như một phần của ngăn xếp của mình. Orient là một máy chủ cơ sở dữ liệu đồ thị tài liệu được viết hoàn toàn bằng Java.

Trong cơ sở dữ liệu đồ thị, các mối quan hệ được coi là công dân hạng nhất và do đó vượt qua các mối quan hệ đó có thể được thực hiện khá nhanh. Orient cũng là một cơ sở dữ liệu tài liệu cho phép bạn loại kiến ​​trúc không có lược đồ mà nó có vẻ như bạn cần. Lý do thực sự tôi đề nghị Phương Đông, tuy nhiên, là vì tính mở rộng của nó. Nó hỗ trợ truyền phát qua các socket và toàn bộ cơ sở dữ liệu có thể được nhúng vào một ứng dụng khác. Cuối cùng, nó có thể được thu nhỏ hiệu quả và / hoặc có thể hoạt động hoàn toàn thông qua bộ nhớ. Vì vậy, với một số chuyên môn về Java, bạn thực sự có thể chạy các truy vấn đặt trước dựa trên cơ sở dữ liệu trong bộ nhớ.

Chúng tôi đang làm một cái gì đó tương tự. Khi tạo ra một ứng dụng / trang web để hợp tác nghiên cứu khoa học xã hội, chúng tôi thấy mình có các mô hình dữ liệu vô cùng phức tạp. Cuối cùng chúng tôi đã viết một số truy vấn bằng cách sử dụng Ngôn ngữ truyền tải Gremlin (một tập hợp con của Groovy, dĩ nhiên là Java ở trung tâm của nó), và sau đó phơi bày các truy vấn đó thông qua máy chủ kết nối nhị phân của OrientDB. Vì vậy, máy khách mở một ổ cắm TCP, gửi một thông điệp nhị phân ngắn và truy vấn đang thực thi trực tiếp trong Java đối với cơ sở dữ liệu trong bộ nhớ.

OrientDB cũng hỗ trợ viết các truy vấn chức năng bằng Javascript và bạn có thể sử dụng Node.js để tương tác trực tiếp với một cá thể Phương Đông.

Đối với một cái gì đó có kích thước này, tôi muốn sử dụng Phương Đông kết hợp với Hadoop hoặc một cái gì đó tương tự. Bạn cũng có thể sử dụng Phương Đông kết hợp với siêu năng lực gia.

Xem xét: Giới thiệu về định hướng: http://www.sitepoint.com/a-look-at-orientdb-the-graph-document-nosql/

Các truy vấn phức tạp, theo thời gian thực: http://www.gft-blog.com/business-trends/leveraging-real-time-scoring-ENC-bigdata-to-detect-insurance-fraud/

Một cuộc thảo luận về các tùy chọn phát trực tuyến với java và direction: https://github.com/orientechnology/orientdb/issues/1227


Cám ơn vì sự gợi ý. Tôi đã xem neo4j trước đó nhưng chưa bao giờ vào directiondb. Hiện tại tôi không thể hình dung được nhiều lợi ích trong việc mô hình hóa dữ liệu bảng chì dưới dạng biểu đồ nhưng tôi vẫn sẽ xem xét các tùy chọn phát trực tuyến trong directiondb
Tahir Akhtar

4

Gần đây tôi đã đọc bài viết rất hay cho thấy sử dụng cơn bão Twitter cho một nhiệm vụ trông khá giống với bạn.


Tôi đã đọc một số điều cơ bản về Apache Storm, có vẻ như nó lo ngại về các vấn đề liên quan đến khả năng mở rộng / độ tin cậy của xử lý luồng, khiến bạn phải xử lý các thuật toán thực tế. Esper trên xử lý dữ liệu khác cho bạn dựa trên các truy vấn của bạn
Tahir Akhtar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.