Какой сервер NoSQL для хранения данных трассировки с веб-страницы - PullRequest
0 голосов
/ 08 июля 2010

В нашем веб-приложении нам нужно отслеживать, какие пользователи нажимают, что они пишут в поле поиска и т. Д. AJAX отправляет множество данных.Как правило, функциональность немного похожа на аналитику Google, но нам нужно настроить ее по-разному.

Данные будут собираться и один раз в день агрегироваться и экспортироваться в PostgreSQL, поэтому серверная часть должна обрабатывать десятки вставок.Я не рассматриваю использование традиционной базы данных SQL, потому что, вероятно, она не справится с таким количеством операций вставки.

Интересно, какой бэкэнд вы бы использовали для такой задачи?На самом деле я думаю о MongoDB или Cassandra.Но, может быть, вы знаете лучшее программное обеспечение для этой задачи?Может быть, что-то другое, чем база данных NoSQL?

Веб-приложение написано на Ruby on Rails, поэтому поддержка Ruby была бы хорошей, но это определенно не самое главное.

1 Ответ

1 голос
/ 12 июля 2010

Похоже, вам нужно проанализировать ваши конкретные требования.

Возможно, лучшим решением будет разделение / разбиение / разбиение обычной базы данных, а затем отправка данных оттуда.

В зависимости от вашего допуска к потере данных, есть много вариантов.Если вы выбираете систему с долговечностью на одном сервере, основным источником узких мест для записи будет fdatasync () (при условии, что вы используете жесткие диски для хранения данных).

Если вы допускаете синхронизацию реже, чемпри каждом коммите вы можете настроить свою базу данных на фиксирование через определенные интервалы времени.

В зависимости от вашей таблицы, структуры индекса и т. д., я ожидаю, что вы можете получить довольно много вставок с "обычный "db (например, postgresql), если вы управляете им правильно и настраиваете долговечность (если она это поддерживает) по своему вкусу.

Разделяя это на несколько случаев, конечно, вы сможете увеличить это.Однако вы должны помнить об эксплуатационных требованиях (то есть о том, что произойдет, если некоторые экземпляры не работают).Поговорите с вашей командой Ops о том, что им удобно управлять.

...