Найти - Пользователи
Полная версия: NoSQL
Начало » Базы данных » NoSQL
1 2 3 4 5 6 7 8
HolyGeek
Начал посматривать в сторону NoSQL баз данных, думаю над возможностью заюзать в следующем проекте комбинированное хранилище(NoSQL и Postgres) (насчет проблем синхронизации - разберусь, там итак большинство результатов храниться в промежуточных таблицах)
так вот вопрос - имел ли кто опыт на работающих проектах с NoSQL базами? как оно с большими нагрузками(проект - соц сеть, в светлом будущем - 10 0000 клиентов:) )? с чем лучше пайтон взаимодействует ?(сейчас смотрю в сторону CouchDB - перспектива аяксом к бд коннектится - заманчива), как это будет работать с Tornado?
PS что такое инкрементальная репликация?:)
PPS - задача переделать движок уже работающего сайта
Lexander
Вот это
HolyGeek
как оно с большими нагрузками(проект - соц сеть, в светлом будущем - 10 0000 клиентов
и это
HolyGeek
перспектива аяксом к бд коннектится - заманчива
плохо совместимы.
HolyGeek
что такое инкрементальная репликация
Об этом лучше почитать. Если вкратце, то репликация идет в несколько транзакций.
HolyGeek
имел ли кто опыт на работающих проектах с NoSQL базами? как оно с большими нагрузками
Лично не имею подобного опыта.
Знаю, что Berkeley DB, MongoDB используются в серьезных проектах, например на SourceForge, онлайн издании New York Times, куче социальных сетей и медиахранилищ, Personal Genome Project.
Судя по презентациям автор проектов очень довольны. Вряд ли это заговор, поэтому можно им верить :)
o7412369815963
я юзаю mongoDB, оч. доволен, сейчас разрабатываю закрытый корпоративный портал для крупной компании.
вообще считаю монгу можно использовать в любых проектах, даже вместо sql баз (за исключением случая когда нужны транзакции)
Lexander
o7412369815963
даже вместо sql баз (за исключением случая когда нужны транзакции)
Я бы уточнил: “, реализованные исключительно средствами СУБД.”

Ну и на счет “любых” - тоже не все просто.
HolyGeek
Огромное спасибо за ответы!

Lexander
плохо совместимы
почему? разве работа напрямую с БД, минуя проект и вебсервер не оптимальнее? (да, я нубоват, можно отправить матчасть учить:) )
доступ аяксу - только на чтение собрался сделать)

Еще такой вопрос:
Структура проекта такова - есть набор объектов, в промежуточных таблицах хранятся итоги (проголосовало N юзеров, просмотрело N юзеров, etc). к этим промежуточным таблицам часто идут запросы, с сортировкой, фильтрацией по разным полям и с лимитом выборки(постраничный вывод). причем частенько через аякс.
Для таких данных лучше SQL базу оставить? или средствами без проблем/оптимально (мб даже без промежутки средствами map/reduce, incremental map/reduce - не прокатит, ибо данные очень динамичны) NoSQL DB все решить (или самому в свободную минутку проверить xD)?
Да и вообще динамичную постоянно лимитируемую/сортируемую инфу(посты, каменты,etc)
dimabest
HolyGeek
запросы, с сортировкой, фильтрацией по разным полям и с лимитом выборки(постраничный вывод)
CouchDB умеет делать только совсем простые выборки: по ключу/ключам, по одному диапазону. Все. Про остальные выборки можешь забыть.
Постраничному выводу посвящена целая глава в учебнике. Итог: если БД большая - делать навигацию как в livejournal.com - просто ссылки “вперед” и “назад”. Ибо БД загнется при регулярной выборке данных с большим смещением. Про нормальную сортировку в CouchDB тоже забудь, - данные сортируются по ключу/ключам (по которым идет выборка). Будешь сортировать все ручками в программе.

Я тоже почитал профанские статьи про CouchDB, распечатал учебник, посмотрел видео-доклады, кучу слайдов… и убил на изучение целую неделю. А когда сел писать код - оказалось, что невозможно сделать простейший каталог.

Если хочется попробовать документ-ориентированную БД - бери MongoDB.
HolyGeek
dimabest, спасибо за совет.
CouchDB прельщал только прямым аяксом, но не советуют
да и MongoDB звучит больше где - поковыряю его
dimabest
Постраничному выводу посвящена целая глава в учебнике
каком учебнике? поделись названием)
Lexander
HolyGeek
разве работа напрямую с БД, минуя проект и вебсервер не оптимальнее?
В этом случае как раз есть промежуточное звено, сильно влияющее на скорость. Веб-сервер встроен в СУБД. Поэтому ваши запросы никак не могут миновать его. Я уж не говорю о безопасности - давать прямой доступ к БД через вэб - это как размахивать тряпкой перед быком :)
Работа с базой напрямую возможна только при наличии native драйверов - это самый быстрый метод, достижимый в прикладных приложениях.

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

dimabest
Если хочется попробовать документ-ориентированную БД - бери MongoDB.
+1
Возможности MongoDB меня приятно удивили.
Вот, кстати, небольшая шпаргалка по типичным запросам: http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+Chart
Там же есть пример постраничной выборки.
dimabest
HolyGeek
каком учебнике? поделись названием)
книжка http://guide.couchdb.org/editions/1/en/index.html
постраничная выборка http://guide.couchdb.org/editions/1/en/recipes.html#pagination
name23
HolyGeek
проект - соц сеть
Про что хоть будет проект?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB