Уведомления

Группа в Telegram: @pythonsu

#1 Июль 31, 2016 18:26:53

Newone
Зарегистрирован: 2016-01-10
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

MongoDB и/или SQL

Приветствую, прошу совета, какую архитектуру выбрать.

Планирую в своем приложении использовать MongoDB через RESTFUL API, сервер Tornado, websockets. Клиентом пока будет браузер, но в дальнейшем планируются еще и мобильные устройства.

Проблема следующая:
MongoDB, насколько я пока понимаю, прекрасна в случае GET, но вот при POST могут возникнуть проблемы из за отсутствия “справочника”.

Предполагаемое решение:
Справочники держать и апдейтить в PostgreSQL. На основе данных SQL запрошенных через GET создавать документы в NoSQL через POST.

Сомнения:

  • “Чета нимнога сложна”
  • Придется хранить во многом Продублированные данные в разных системах.

Вопросы:
  • Есть ли возможность в NoSQL организовать справочник в виде документа (фактически, как таблица в SQL), например, countries, и обращаться к элементам, например, countries.item.index?
  • Если предыдущий пункт возможен, насколько это правильное решение, не будет ли проблем с производительностью, если позиций может быть очень много (десяток или несколько тысяч)?

Пардон, если спрашиваю элементарные вещи, пока еще начинающий.

Отредактировано Newone (Июль 31, 2016 21:51:38)

Офлайн

#2 Июль 31, 2016 22:36:54

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4130
Репутация: +  252  -
Профиль   Отправить e-mail  

MongoDB и/или SQL

Newone
“Чета нимнога сложна”
Да сложно.
И еще непонятно.
Какое отношение к монге имеют get и post?
Архитектура Nosql и sql баз не так сильно отличается, ну уж справочники (те таблицы вообще говоря) делать можно и там и там. Попробуйте конкретнее сформулировать вопрос. Типа не получается вот такой запрос posgres переложить на MongoDB.

Ответы -
Коллекции документов в mongo это и есть таблицы.
Проблемы при большом количестве данных? Будут точно такие как и в Postgres. Там механизмы вообще идентичные. Но большие это не десятки тысяч, а сотни миллионов.

У вас много технологий для начла задействовано. Может по началу взять классику а потом По мере необходимости переезжать на Mongo, websocket и т п?



Отредактировано doza_and (Июль 31, 2016 22:43:03)

Офлайн

#3 Авг. 1, 2016 13:05:18

Newone
Зарегистрирован: 2016-01-10
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

MongoDB и/или SQL

Спасибо.
Вчера прочитал ваш ответ, пошёл думать и читать чтобы ясно ответить на уточнения, пришёл к выводу, что все гораздо проще.

Все дело было в адресах. Предполагалось, что будет умная подсказка при заполнении адреса (уточнение по вашему вопросу - сначала мы запрашиваем, допустим, список стран через api get, после выбора страны опять через get получаем из справочника соответствующие города и т.д по рекурсии, а уж потом через post api размещаем полный документ с адресом и прочим в базы данных пользователей). И я не мог понять, как без внешних ключей это организовать. Но, как оказалось, все гораздо проще, можно запрашивать не ключ при подсказке, а сразу данные

MongoDB выбрана по двум причинам, во-первых именно она в большинстве туториалов по Restful api, во-вторых, не хотелось делать линковочные таблицы в sql, а по задумке их там было бы не мало.

Вебсокеты, кстати, заработали вообще сразу, там у торнадо прям совсем все задокументировано и описано.

Upd.
Нашёл базу данных адресов рф, http://fias.nalog.ru, пока идея создать в Монго один толстый документ на пару тройку гигабайт, со связями и прочим, если интересно, могу отписаться что вышло )))

Отредактировано Newone (Авг. 1, 2016 13:22:57)

Офлайн

#4 Авг. 1, 2016 13:28:48

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 1827
Репутация: +  54  -
Профиль   Отправить e-mail  

MongoDB и/или SQL

Отписываться - есть правилом хорошего тона.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#5 Авг. 1, 2016 14:56:51

Newone
Зарегистрирован: 2016-01-10
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

MongoDB и/или SQL

Согласен с вами, красота русского языка в изменении смысла слова в зависимости от контекста.

Отредактировано Newone (Авг. 1, 2016 15:31:32)

Офлайн

#6 Авг. 1, 2016 20:24:19

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2557
Репутация: +  178  -
Профиль   Отправить e-mail  

MongoDB и/или SQL

> пока идея создать в Монго один толстый документ на пару тройку гигабайт

Не получится у монги ограничение 16мб на документ.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#7 Авг. 1, 2016 20:57:30

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4130
Репутация: +  252  -
Профиль   Отправить e-mail  

MongoDB и/или SQL

Newone
пока идея создать в Монго один толстый документ на пару тройку гигабайт
Один документ это как таблица с одной строкой. В этом случае применение базы данных вообще теряет смысл. Т.С. описался, думаю имелась ввиду одна коллекция.



Отредактировано doza_and (Авг. 1, 2016 20:57:47)

Офлайн

#8 Авг. 1, 2016 22:17:56

Newone
Зарегистрирован: 2016-01-10
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

MongoDB и/или SQL

Так точно. Коллекция.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version