리더 보드 점수의 마이닝 스트림에 도움이되는 오픈 소스 도구


12

온라인 게임에서 사용자의 점수를 나타내는 튜플이 포함 된 스트림을 고려하십시오 (user, new_score). 스트림은 초당 100-1,000 개의 새로운 요소를 가질 수 있습니다. 이 게임에는 고유 한 플레이어가 200K에서 300K까지 있습니다.

다음과 같은 스탠딩 쿼리를 원합니다.

  1. 1 시간 동안 슬라이딩 창에 x 점 이상의 점수를 올린 선수
  2. 1 시간 동안 슬라이딩 윈도우에서 x % 점수를 얻은 플레이어

제 질문은이 프로젝트를 시작하기 위해 어떤 오픈 소스 도구를 사용할 수 있습니까? 나는 현재 Esper 를 고려 하고 있습니다.

참고 : 방금 "마이닝 데이터 스트림"( 마이너스 데이터 세트 마이닝 4 장)을 읽었 으며 마이닝 데이터 스트림에 익숙하지 않습니다.

답변:


8

이것은 완전한 솔루션은 아니지만 스택의 일부로 OrientDB 를 살펴볼 수 있습니다 . Orient는 완전히 Java로 작성된 그래프 문서 데이터베이스 서버입니다.

그래프 데이터베이스에서 관계는 일급 시민으로 간주되므로 관계를 순회하는 것이 매우 빠르게 이루어질 수 있습니다. Orient는 또한 필요한 데이터베이스 스키마를 제공하는 문서 데이터베이스입니다. 그러나 오리엔트에게 제안하는 진정한 이유는 확장 성 때문입니다. 소켓을 통한 스트리밍을 지원하며 전체 데이터베이스를 다른 응용 프로그램에 포함시킬 수 있습니다. 마지막으로, 메모리를 통해 효율적으로 확장 및 / 또는 작동 할 수 있습니다. 따라서 일부 Java 전문 지식을 사용하면 실제로 메모리의 데이터베이스에 대해 사전 설정 쿼리를 실행할 수 있습니다.

우리는 비슷한 일을하고 있습니다. 사회 과학 연구 협업을위한 앱 / 사이트를 만들면서 우리는 엄청나게 복잡한 데이터 모델을 발견했습니다. 우리는 Gremlin Traversal Language (Groovy의 하위 세트, 물론 Java를 중심으로)를 사용하여 여러 쿼리를 작성한 다음 OrientDB의 이진 연결 서버를 통해 이러한 쿼리를 노출했습니다. 따라서 클라이언트는 TCP 소켓을 열고 짧은 이진 메시지를 보내고 쿼리는 인 메모리 데이터베이스에 대해 Java로 직접 실행됩니다.

OrientDB는 또한 Javascript로 함수 쿼리 작성을 지원하며 Node.js를 사용하여 Orient 인스턴스와 직접 상호 작용할 수 있습니다.

이 크기의 것을 위해 Orient를 Hadoop 또는 이와 유사한 것과 함께 사용하고 싶습니다. esper와 함께 Orient을 사용할 수도 있습니다.

고려 : 동양 소개 : http://www.sitepoint.com/a-look-at-orientdb-the-graph-document-nosql/

복잡한 실시간 쿼리 : http://www.gft-blog.com/business-trends/leveraging-real-time-scoring-through-bigdata-to-detect-insurance-fraud/

java 및 orient를 사용한 스트리밍 옵션에 대한 토론 : https://github.com/orientechnologies/orientdb/issues/1227


제안 해 주셔서 감사합니다. 나는 neo4j를 더 일찍 보았지만 orientdb를 보지 않았습니다. 현재 Leadeboard 데이터를 그래프로 모델링 할 때 많은 이점을 구상 할 수 없지만 orientdb의 스트리밍 옵션을 계속 살펴볼 것입니다
Tahir Akhtar

4

나는 최근 에 당신과 매우 비슷한 작업에 Twitter storm 을 사용하는 것을 제안하는 아주 좋은 기사를 읽었습니다 .


Apache Storm에 대한 몇 가지 기본 사항을 읽었으며 스트림 처리의 확장 성 / 안정성과 관련된 문제가 우려되는 것처럼 보이므로 실제 알고리즘을 처리 할 수 ​​있습니다. 당신의 쿼리를 기반으로 당신을위한 다른 핸들 프로세스 데이터에 에스퍼
Tahir Akhtar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.