Сложность выбора правильной базы данных для аналитики - PullRequest
3 голосов
/ 05 июля 2010

Мне нужна помощь в определении базы данных, которую мы должны выбрать для нашего проекта. Мы разрабатываем веб-приложение, которое собирает данные о поведении пользователя и анализирует это (плохое объяснение, но я не могу предоставить более подробную информацию; данные веб-аналитики являются одним из наших основных наборов данных). По нашим оценкам, мы будем вставлять около 200 миллионов строк в неделю в базу данных + данные, рассчитанные на основе этих необработанных данных. Данные должны храниться не менее шести месяцев.

На прошлой неделе я провел половину сбора информации о различных решениях, но, кажется, их так много, что я чувствую себя потерянным. Самые многообещающие из тех, что я нашел, это Cassandra, Hbase и Hive. Я также посмотрел на MongoDb, Redis и некоторых других, но они выглядели так, как будто они соответствовали различным потребностям или сообщество не было таким активным.

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

Я также думаю об использовании MySql (потому что мы будем использовать его для всей пользовательской информации и т. Д. В любом случае), но в будущем масштабирование будет намного сложнее, и я думаю, что в какой-то момент нам все равно придется перейти на какой-то другой БД , Мы также более чем готовы посвятить некоторое время и усилия продвижению выбранной базы данных с точки зрения развития.

1 Ответ

3 голосов
/ 07 июля 2010

Мы решили продолжить работу с Hadoop (& Hive / Hbase) в качестве основного хранилища данных.Основными причинами этого являются:

  • Это проверенная технология, и многие крупные сайты используют ее (Facebook ...).
  • Много документации и даже книг HadoopНаписано.
  • Hive предоставляет хороший SQL-подобный язык запросов и командную строку, так что даже парни, которые не знают Java / Python / и т.д.можно легко писать запросы.
  • Это бесплатно, и люди из сообщества кажутся вам полезными:)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...