2013-04-24 2 views
2

우리는 다수의 게임을 보유한 앱을 제작 중입니다. 아이들은이 게임을하면서 수학을 배우게됩니다. 모든 사용자 프로필 데이터, 게임 데이터 및 강의/질문 데이터는 모두 앱에 저장되며 서버 측의 MySQL 데이터베이스와 동기화됩니다.게임 분석에 사용할 데이터베이스는 무엇입니까?

게임을 캡처하고 분석하고 개선하고자하는 수많은 이벤트 데이터가 있습니다. 이러한 이벤트는 게임 개체를 만지거나, 올바른 게임 개체를 선택하지만 잘못 타겟팅하거나, 정확하게 응답하지만 시간 초과 등의 교훈의 시작일 수 있습니다. 우리는 이것이 아이들이하는 각 게임마다 100 초가 될 것으로 예상합니다. 또한 저장된 데이터는 이벤트 유형에 따라 달라집니다.

데이터베이스를 통해 데이터를 분석하고 어떤 게임이 아이들에게 힘든 지 등의 질문에 대답 할 수 있어야합니다. 아이들에게 쉽지 않은 레슨은 어떤 나라의 아이들이 힘들 것이라고 가르치고 있습니다. 이러한 게임은 어린이의주의를 끌 수 있습니다.

어떤 데이터베이스를 사용하면 다양한 이벤트 유형을 저장할 수 있으며 하루에 수백만 개의 행으로 확장하고 이러한 모든 종류의 분석을 허용 할 수 있습니까? 데이터 모델의 변화하는 특성을 감안할 때 NoSQL이 확실한 선택 인 것으로 보입니다. 그러나 어느 것이 우리가 이러한 모든 분석을 할 수있게 할 것입니다. 아니면 하둡/하이브와 함께 가야합니까?

미리 감사드립니다.

답변

0

Hadoop/Hive를 사용하여이 작업을 수행 할 수 있지만 Hive는 일괄 처리 작업에 가장 적합하므로 실시간 성능을 얻을 수 없습니다. Hbase는 이러한 시나리오에서 더 나은 선택이 될 것입니다. OLAP 데이터 큐브를 만들 수 있습니다. 크기가 세션 정보, 각 아이에 대한 정보 등 여러분이 지정한 정보 일 수 있습니다. JSON 개체로이 정보를 모두 직렬화 한 다음 Hbase 셀에 저장할 수 있습니다. 또한 이러한 각 이벤트를 개별 셀에 저장할 수도 있지만 불필요한 공간을 소비하고 데이터를 가져 오는 동안 효율적이지 않습니다.

HTH

+0

빠른 답장을 보내 주셔서 감사합니다. 실시간 쿼리는 우리에게 요구 사항이 아닙니다. Hive는 임의의 데이터 모델을 허용합니까? 얼마나 힘든 것이 아니라면 데이터 모델을 추가/변경하는 것입니다. – buehler

+0

얼마나 자의적입니까? 조금 더 구체적으로 설명해 주시겠습니까? 아마도 예시 시나리오 ... – Tariq

+0

Thanks @Tariq. 예 : 이제 우리는 아이가 공을 만졌다는 사실을 저장합니다. 나중에 우리는 그가 점 (x, y)에서 그 점을 터치 한 사실을 저장하려고하고 나중에 점을 찍은 각도를 저장하고자 할 수 있습니다. 이 특정 객체를 얻기 위해 도우미 객체를 사용하고 그 이벤트에 대해 저장 될 데이터가 위의 예와 매우 다를 수있는 것처럼 완전히 다른 데이터를 가진 다른 이벤트를 저장할 수도 있습니다. – buehler

관련 문제