Мне нужна помощь в определении базы данных, которую мы должны выбрать для нашего проекта. Мы разрабатываем веб-приложение, которое собирает данные о поведении пользователя и анализирует это (плохое объяснение, но я не могу предоставить более подробную информацию; данные веб-аналитики являются одним из наших основных наборов данных). По нашим оценкам, мы будем вставлять около 200 миллионов строк в неделю в базу данных + данные, рассчитанные на основе этих необработанных данных. Данные должны храниться не менее шести месяцев.
На прошлой неделе я провел половину сбора информации о различных решениях, но, кажется, их так много, что я чувствую себя потерянным. Самые многообещающие из тех, что я нашел, это Cassandra, Hbase и Hive. Я также посмотрел на MongoDb, Redis и некоторых других, но они выглядели так, как будто они соответствовали различным потребностям или сообщество не было таким активным.
- Все приложение будет запущено в Amazon EC2. Как начинающая компания, модель ценообразования с оплатой по мере использования подходит нам как перчатка. Чем проще управлять базой данных в облаке, тем лучше.
- Масштабируемость важна. Объем данных, которые мы будем генерировать, сильно варьируется и со временем будет расти.
- Мы не можем платить огромные лицензионные сборы. В противном случае мы могли бы использовать что-то вроде http://www.vertica.com/.
- Нам необходимо проводить всевозможный анализ данных, и чем проще они пишутся, тем лучше. Я думал об использовании Map / Reduce для этой задачи; Hbase, кажется, имеет лучшую поддержку для этого, чем Cassandra, а Hive имеет свой собственный язык запросов. Анализ в реальном времени не требуется; мы можем вычислять результаты один раз в день и отправлять их обратно в базу данных для быстрого поиска.
- Поддержка сжатия была бы хорошей, но не обязательной (дисковое пространство дешевое:).
Я также думаю об использовании MySql (потому что мы будем использовать его для всей пользовательской информации и т. Д. В любом случае), но в будущем масштабирование будет намного сложнее, и я думаю, что в какой-то момент нам все равно придется перейти на какой-то другой БД , Мы также более чем готовы посвятить некоторое время и усилия продвижению выбранной базы данных с точки зрения развития.