Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 5, 2010 12:04:29

HolyGeek
От:
Зарегистрирован: 2010-07-23
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

NoSQL

Начал посматривать в сторону NoSQL баз данных, думаю над возможностью заюзать в следующем проекте комбинированное хранилище(NoSQL и Postgres) (насчет проблем синхронизации - разберусь, там итак большинство результатов храниться в промежуточных таблицах)
так вот вопрос - имел ли кто опыт на работающих проектах с NoSQL базами? как оно с большими нагрузками(проект - соц сеть, в светлом будущем - 10 0000 клиентов:) )? с чем лучше пайтон взаимодействует ?(сейчас смотрю в сторону CouchDB - перспектива аяксом к бд коннектится - заманчива), как это будет работать с Tornado?
PS что такое инкрементальная репликация?:)
PPS - задача переделать движок уже работающего сайта



Отредактировано (Сен. 5, 2010 12:05:12)

Офлайн

#2 Сен. 5, 2010 12:41:10

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

NoSQL

Вот это

HolyGeek
как оно с большими нагрузками(проект - соц сеть, в светлом будущем - 10 0000 клиентов
и это
HolyGeek
перспектива аяксом к бд коннектится - заманчива
плохо совместимы.
HolyGeek
что такое инкрементальная репликация
Об этом лучше почитать. Если вкратце, то репликация идет в несколько транзакций.
HolyGeek
имел ли кто опыт на работающих проектах с NoSQL базами? как оно с большими нагрузками
Лично не имею подобного опыта.
Знаю, что Berkeley DB, MongoDB используются в серьезных проектах, например на SourceForge, онлайн издании New York Times, куче социальных сетей и медиахранилищ, Personal Genome Project.
Судя по презентациям автор проектов очень довольны. Вряд ли это заговор, поэтому можно им верить :)



Офлайн

#3 Сен. 5, 2010 13:24:40

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

NoSQL

я юзаю mongoDB, оч. доволен, сейчас разрабатываю закрытый корпоративный портал для крупной компании.
вообще считаю монгу можно использовать в любых проектах, даже вместо sql баз (за исключением случая когда нужны транзакции)

Офлайн

#4 Сен. 5, 2010 13:41:19

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

NoSQL

o7412369815963
даже вместо sql баз (за исключением случая когда нужны транзакции)
Я бы уточнил: “, реализованные исключительно средствами СУБД.”

Ну и на счет “любых” - тоже не все просто.



Отредактировано (Сен. 5, 2010 13:42:13)

Офлайн

#5 Сен. 5, 2010 14:07:57

HolyGeek
От:
Зарегистрирован: 2010-07-23
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

NoSQL

Огромное спасибо за ответы!

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

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



Отредактировано (Сен. 5, 2010 14:15:12)

Офлайн

#6 Сен. 5, 2010 14:58:29

dimabest
От:
Зарегистрирован: 2009-02-12
Сообщения: 253
Репутация: +  0  -
Профиль   Отправить e-mail  

NoSQL

HolyGeek
запросы, с сортировкой, фильтрацией по разным полям и с лимитом выборки(постраничный вывод)
CouchDB умеет делать только совсем простые выборки: по ключу/ключам, по одному диапазону. Все. Про остальные выборки можешь забыть.
Постраничному выводу посвящена целая глава в учебнике. Итог: если БД большая - делать навигацию как в livejournal.com - просто ссылки “вперед” и “назад”. Ибо БД загнется при регулярной выборке данных с большим смещением. Про нормальную сортировку в CouchDB тоже забудь, - данные сортируются по ключу/ключам (по которым идет выборка). Будешь сортировать все ручками в программе.

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

Если хочется попробовать документ-ориентированную БД - бери MongoDB.



Офлайн

#7 Сен. 5, 2010 15:14:39

HolyGeek
От:
Зарегистрирован: 2010-07-23
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

NoSQL

dimabest, спасибо за совет.
CouchDB прельщал только прямым аяксом, но не советуют
да и MongoDB звучит больше где - поковыряю его

dimabest
Постраничному выводу посвящена целая глава в учебнике
каком учебнике? поделись названием)



Офлайн

#8 Сен. 5, 2010 16:55:16

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

NoSQL

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

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

dimabest
Если хочется попробовать документ-ориентированную БД - бери MongoDB.
+1
Возможности MongoDB меня приятно удивили.
Вот, кстати, небольшая шпаргалка по типичным запросам: http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+Chart
Там же есть пример постраничной выборки.



Отредактировано (Сен. 5, 2010 16:56:08)

Офлайн

#9 Сен. 5, 2010 20:26:02

dimabest
От:
Зарегистрирован: 2009-02-12
Сообщения: 253
Репутация: +  0  -
Профиль   Отправить e-mail  

NoSQL

HolyGeek
каком учебнике? поделись названием)
книжка http://guide.couchdb.org/editions/1/en/index.html
постраничная выборка http://guide.couchdb.org/editions/1/en/recipes.html#pagination



Офлайн

#10 Сен. 6, 2010 08:19:58

name23
От:
Зарегистрирован: 2010-08-18
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

NoSQL

HolyGeek
проект - соц сеть
Про что хоть будет проект?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version