В настоящее время я изучаю бэкэнд для использования с проектом с требованиями требований к агрегации данных. Основные требования к проекту следующие.Агрегация данных mongodb vs mysql
Храните миллионы записей для каждого пользователя. У пользователей может быть более 1 миллиона записей в год, поэтому даже со 100 пользователями мы говорим о 100 миллионах записей в год.
Агрегирование данных по этим записям должно выполняться «на лету». Пользователи должны иметь возможность фильтровать записи на тонну доступных фильтров, а затем представлять резюме (итоговые значения, средние значения e.t.c) и графики результатов. Очевидно, я не могу предсказать какие-либо результаты агрегирования, потому что комбинации фильтров (и, следовательно, множества результатов) огромны.
Пользователи получат доступ только к своим собственным данным, но было бы неплохо, если бы можно было вычислить анонимную статистику для всех данных.
Данные будут проводиться большую часть времени в партии. например, пользователь будет загружать данные каждый день, и может потребоваться 3000 записей. В некоторых более поздних версиях могут быть автоматические программы, которые загружают каждые несколько минут меньшими партиями из 100 элементов, например.
Я сделал простой тест создания таблицы с 1 миллиона строк и выполняя простую сумму 1 колонку как в MongoDB и MySQL и разница в производительности была огромной. Я не помню точные цифры, но это было что-то вроде mysql = 200ms, mongodb = 20 секунд.
Я также проверил с couchdb и имел гораздо худшие результаты.
То, что кажется многообещающим с точки зрения скорости, является cassandra, с которым я с большим энтузиазмом относился, когда впервые обнаружил его. Однако документации недостаточно, и я не нашел твердых примеров того, как выполнять суммы и другие агрегированные функции в данных. Это возможно ?
Как мне кажется, из моего теста (возможно, я сделал что-то не так), с текущим исполнением его невозможно использовать mongodb для такого проекта, хотя автоматическая функция осколки кажется для него идеальной.
Есть ли у кого-нибудь опыт сбора данных в mongodb или какие-либо идеи, которые могут помочь в реализации проекта?
Спасибо, Димитриса
Спасибо. Ссылка greenplum была очень полезной, так как я обнаружил, что там много dbs, таких как greenplum, которые оптимизированы для того, что мне нужно делать. Массивная аналитика данных. Другой - это индбрайт, который подключается к mysql и кажется многообещающим. –
Глядя на это, кажется идеальным для Infobright – Amala