2013-04-24 4 views
2

Мы создаем приложение, в котором будет множество игр. Дети учатся математике, когда они играют в эти игры. Все данные профиля пользователя, данные игры и уроки/вопросы все хранятся в приложении и будут синхронизироваться с базой данных MySQL на стороне сервера.Какую базу данных использовать для аналитики игры?

Там также множество данных о событиях, которые мы хотели бы захватить, проанализировать и улучшить нашу игру. Эти события могут стать началом урока, касаться игрового объекта, выбирая правильный игровой объект, но неправильно нападая на него, правильно отвечая, но время ожидания и так далее. Мы ожидаем, что это будет 100s строк для каждой игры, которую играют дети. Также сохраненные данные будут зависеть от типа события.

База данных должна позволять нам анализировать данные и отвечать на вопросы, например, какие игры сложны для детей, какие уроки слишком малы для детей, дети из некоторых стран находят некоторые из уроков жесткими, как долго из этих игр, способных привлечь внимание малыша и так далее.

Какая база данных позволит нам хранить так много разных типов событий, масштабироваться до миллионов строк в день и учитывать все эти виды анализа? Учитывая меняющийся характер модели данных, NoSQL представляется очевидным выбором. Но что позволит нам делать все эти анализы. Или мы должны пойти с Hadoop/Hive?

Заранее спасибо.

ответ

0

Хотя вы можете сделать это, используя Hadoop/Hive, но вы не получите производительность в режиме реального времени, так как Hive лучше всего подходит для пакетной обработки своего рода материала. Hbase был бы лучшим выбором в таком сценарии. Вы могли бы создать образ OLAT datacube, размер которого может быть указанной вами информацией, например, информация о сеансе, информация о каждом ребенке и т. Д. И т. Д. Или вы можете сериализовать всю эту информацию как объекты JSON, а затем сохранить их в ячейках Hbase. Вы также можете хранить каждое из этих событий в отдельных ячейках, но это будет потреблять ненужное пространство и не будет таким эффективным при извлечении данных.

HTH

+0

Благодарим за быстрый ответ. Запрос в реальном времени не является обязательным требованием для нас. Будет ли улей разрешать произвольные модели данных? Если не так сложно было бы продолжать добавлять/изменять модели данных. – buehler

+0

Насколько произвольны? Не могли бы вы быть более наглядными? Возможно, пример сценария ... – Tariq

+0

Спасибо @Tariq. . теперь мы сохраняем тот факт, что малыш коснулся мяча. Позже мы могли бы захотеть сохранить тот факт, что он коснулся его в точке (x, y), а затем позже мы захотим сохранить угол, на котором он его вытащил. Мы можем захотеть сохранить какое-то другое событие, которое имеет некоторые совершенно разные данные, например, он использовал вспомогательный объект для получения этого конкретного объекта, а данные, которые будут храниться для этого события, могут сильно отличаться от приведенного выше примера. – buehler

Смежные вопросы