Как работают NoSQL базы: документ-ориентированные типа MongoDB

  Переглядів 77,027

Sergey Nemchinskiy

Sergey Nemchinskiy

5 років тому

Владимир Кузнецов: Описание документ-ориентированной модели организации данных. Особенности реализации, сильные и слабые стороны этого подхода. MongoDB

КОМЕНТАРІ: 90
@brostver
@brostver 5 років тому
Очень доступно! размеренная подача, без лишних слов.Примеры очень информативны и коротки.
@vs8418
@vs8418 5 років тому
Классная вводная, побольше бы таких. Спасибо!
@Snake19S
@Snake19S 5 років тому
Спасибо большое. Единственная просьба, уберите музыкальную подложку. Ведущий говорит достаточно тихо, а музыка иногда заглушает звук. Третий вид БД я так и не расслышал.
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 5 років тому
"Ведущий говорит достаточно тихо" - это главная проблема, звук пришлось вытягивать, поэтому появился фоновый шум, который замаскировали музыкой... Тут все непросто :)
@homo-ergaster
@homo-ergaster 5 років тому
третий вид - основанные на графах
@user-vv8mi7kf1m
@user-vv8mi7kf1m 4 роки тому
Все правильно делает ведущий, что бы его услышать, надо прислушаться, что положительно сказывается на запоминании.
@vladyslavpodkhaliuzin6815
@vladyslavpodkhaliuzin6815 5 років тому
Крутой формат)) По возможности давайте больше таких видео
@homo-ergaster
@homo-ergaster 5 років тому
крутой - это мягко сказано. Формат охуенен.
@russellray1219
@russellray1219 5 років тому
Большое спасибо за ролик, все понятно и по полочкам!) Очень приятно Вас слушать, информация легко воспринимается.
@user-mv4rv7jt2p
@user-mv4rv7jt2p 5 років тому
Сергей, спасибо за информацию!
@aimanalbini7883
@aimanalbini7883 4 роки тому
Огромное спасибо, все прекрасно и конструктивно объяснил, побольше таких видео)
@SokratForever
@SokratForever 5 років тому
Хороший урок, продолжайте делать такие видео.
@alexshwartz204
@alexshwartz204 5 років тому
Коротко и очень понятно. Огромное спасибо!!!
@slavianich
@slavianich 4 роки тому
Если речь про MongoDB: 1) мы можем использовать атомарные операции обновления, но да, они используют блокировку на уровне документа одной ноды кластера. Никто не мешает читать с других нод, всего-то secondaryPreffered в строке соединения. 2) мы можем запрашивать определенные поля, а не весь документ, если данные поля попадают в индекс - запрос вообще не лезет в хранилище данных, а берет результат прямо из индекса. Блокировки на чтение данных нет. 3) есть валидатор схемы и им глупо не пользоваться, это как раз и нормализует данные. 4) используя постоянное соединение с СУБД множество запросов выполняется не дольше чем один. Точнее так, разницу вы не увидите вообще никогда. Естественно при правильно построенных идентификаторах и индексах. 5) aggregation framework в сотку раз быстрее map reduce. 6) с кластера можно даже дамп снимать на горячую, без вывода из боевого режима одной из нод. Ну а обобщая, стоило бы упомянуть, что фишка noSQL в нормальном горизонтальном масштабировании (и map reduce тут ни при чем). Да, еще про то что в noSQL используется не SQL, а нормальный ЯП со всеми вытекающими плюсами.
@pmak6074
@pmak6074 2 роки тому
Мы вообще можем принудительно создавать пары индекс-значение, для каждого поля документа? Я понимаю, что объем данных вырастает при этом, но всё-же.
@slavianich
@slavianich 2 роки тому
@@pmak6074 ну если прямо для каждого поля, то у вас индексов будет больше чем данных. Смысла в этом нет. + Индексы тормозят запись в базу. Если нужна скорость чтения/поиска то в определенных пределах можно держать один из осколков кластера (без шардинга) в in-memory состоянии. Из минусов - очень долгий старт кластера до консистентного состояния при падении или необходимости перезапуска, ну и то что это все руками настраивается. Т.е. условно у вас может быть 2 осколка кластера, один в обычном режиме как primary, а второй в in-memory как secondary. При этом вы можете в драйвере подключения к монге добавить настройку, чтобы читало принудительно из secondary. Но лучше все таки поискать менее костыльные инструменты.
@wimanen
@wimanen 4 роки тому
Супер! Кратко и по делу. :)
@Rokinso
@Rokinso 3 роки тому
Большое спасибо за ликбез!
@ivanko747
@ivanko747 5 років тому
Очень интересно! Спасибо!
@StroyManosfera
@StroyManosfera 4 роки тому
Крутейший формат - готов смотреть такое.
@andreymorozov1189
@andreymorozov1189 5 років тому
Ништяк, с удовольствием послушал.
@ermak50
@ermak50 5 років тому
спасибо, очень доходчиво
@richmangroup
@richmangroup 4 роки тому
Шикарно!
@dmytrohelbak
@dmytrohelbak 4 роки тому
Привет, Сергей! Обязательно передай Владимиру спасибо и респект! Толковый у тебя товарищ, прям как Ты)))!
@alexn4309
@alexn4309 4 роки тому
Очень классное видео. Спасибо большое!
@SergeyNemchinskiy
@SergeyNemchinskiy 4 роки тому
пожалуйста)
@abrafgesvbeac3676
@abrafgesvbeac3676 4 роки тому
Спасибо за видео и объяснение! Очень интересно. PS: Музыка лишняя, это правда.
@andrewbutov9575
@andrewbutov9575 4 роки тому
Легко понятно доступно
@user-cq6br4xz6d
@user-cq6br4xz6d Рік тому
Смотришь вот так вот ролик, готовясь к первому собеседованию на тестировщика, и понимаешь, как все-таки круто быть профессионалом и уметь на 3 пальцах объяснить сложные вещи. Спасибо за труд! Действительно полезно.
@goldmeat_93
@goldmeat_93 2 роки тому
Огромное спасибо!
@nickml5138
@nickml5138 11 місяців тому
Спасибо тебе, ты навёл меня на мысль о том, что именно я не понимал, чтобы воспользоваться MongoDB.
@chuhrayuriy
@chuhrayuriy 5 років тому
Я бы потом дизайн паттерны бы предложил рассмотреть или Java или Restful API. Спасибо, что делитесь знаниями ;) Или какие фреймворка реализуют JPA.
@vladimirrabtsun
@vladimirrabtsun 5 років тому
Очень интересно!
@EdAmielin
@EdAmielin Рік тому
Воу! Очень круто!
@SRUL0
@SRUL0 2 роки тому
Уважуха.
@gagogoga794
@gagogoga794 4 роки тому
Чувак ты бог компуктеров! 😁👍🏻
@eyu7111
@eyu7111 5 років тому
О супер!
@Edgesofthecompass
@Edgesofthecompass 2 роки тому
Спасибо
@alexdeshift6733
@alexdeshift6733 3 роки тому
Лайк однозначно.
@crackinglad7644
@crackinglad7644 4 роки тому
Это круто.
@wolfich4684
@wolfich4684 Рік тому
Молодец парень. С задачей "не отпугнуть, чтобы подписчик полюбил БД" справился.
@Aleksandr838383
@Aleksandr838383 5 років тому
Спасибо большое. У меня просьба. Хотелось бы видео где проводится не чистое описание одной их баз, а сравнение. Например какие нибудь примеры и в этом случае лучше бы подошел этот тип базы, а в этом случае вот этот. Просто к концу видео получается еще больше путаница, так где же использовать, а где нет. Еще хотелось бы услышать про семейства столбцов (cassandra) и key-value, в сравнениии. Вся беда в том что в интернете есть куча инфы как выглядит та или иная база, но очень мало инфы где их сравнивают между собой. Спасибо большое. В любом случае видео интересное.
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 5 років тому
А простого ответа просто нет. Слишком много переменных: на каком железе, какая реализация, с какими настройками, какие операции и т.д... Как правило, чем проще - тем уже функционал и быстрее (и понятнее)... key-value с персистансом на основе лога, типа bitcask - похоже что самые быстрые... Пока оперативки на индекс хватает :)
@colombianchebur
@colombianchebur 5 років тому
В описании к видео представляйте рассказчика, пожалуйста. (Имя-фамилия). Спасибо.
@keyar976
@keyar976 3 роки тому
Ахах, голос огонь в этом видео, спокойный, плавный, будто познавательный ASMR посмотрел.
@HowItWorks
@HowItWorks 5 років тому
Можно очень быстро запилить магазин или склад с большим количеством товаров с разными свойствами.
@1983Boria
@1983Boria 3 роки тому
Хорошая лекция. Мне вначале показалось что это Гарик Харламов.
@vefremov1
@vefremov1 5 років тому
Одно замечание: как я понимаю, на стадии reduce тоже можно параллелить, если операция обладает ассоциативностью. А так, неплохой обзор. Спасибо! Ну и чашка там возможно стоит - оптимистичная стратегия в этом случае лучше ;)
@user-gw6df6ns7e
@user-gw6df6ns7e 5 років тому
На reduce только ассициотивных операций такое можно или если неважен порядок вообще.
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 5 років тому
Да, свертку тоже можно распараллелить, но ключей все же гораздо меньше, чем документов. Тут акцент был на то, что она должна дождаться выполнения Map на документах, которых может быть очень много... Как правило, основной профит делается на распараллеливании чтения документов и выполнения Map. А вообще MapReduce неисчерпаем как атом, а у меня бюджет в 15 мин на все :)
@user-ex3rx6yf5y
@user-ex3rx6yf5y 5 років тому
Хотелось услышать про CAP теорему. Ведь именно Partition Tolerance это то из-за чего мы любим и ненавидим NoSQL. Кстати NoSql базы не только документ-ориентированные. Например, Cassandra содержит внутри таблицы.
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 5 років тому
тема распределенных систем будет раскрыта, и даже еще не знаю, сколько роликов на эту тему будет...
@user-xe2jk5ui2d
@user-xe2jk5ui2d 4 роки тому
вопрос? какие риски могут быть если я перенсу бузу с мрины дб на могну ?
@ni55an
@ni55an 5 років тому
Полезный урок, но хотелось бы более чёткого произношения
@intellectualuser2244
@intellectualuser2244 3 роки тому
За документно-ориентированными субд будущее?
@denysgranevych8279
@denysgranevych8279 5 років тому
шум на фоне мешает немного :(
@wolfich4684
@wolfich4684 Рік тому
Подскажите Mapreduce Это ведь частный случай mapping ?
@user-eo8vm2su4u
@user-eo8vm2su4u 4 роки тому
Я чуть не сдох когда ты говорил
@wolfich4684
@wolfich4684 Рік тому
Только не понял почему автор сказал что нормализация это отношение "один ко многим" и "многие ко многим " ? Ведь нормализация это же создание таблиц и отношений . То есть на стадии создания БД, а не на стадии выполнении запросов)
@Slaemee
@Slaemee 5 років тому
Что-то не совсем понятно преимущество "локальность" над реляционной моделью. В реляционной модели тоже можно сделать аналогичную "локальность", просто писав не ссылки, а значения в поля таблицы.
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 5 років тому
O преимуществах локальности вообще имеет смысл говорить, если размер документа больше сектора на диске. В случае крупных документов использование больших записей в реляционной базе нам локальности не гарантирует: реляционки как правило используют страничную организацию памяти, и не факт, что страницы, содержащие одну большую запись таблицы, будут на диске рядом.
@protagorasfromabdera8653
@protagorasfromabdera8653 5 років тому
Походу президент канала реализует план "Преемник".
@protagorasfromabdera8653
@protagorasfromabdera8653 5 років тому
@@SergeyNemchinskiy спасибо, Сергей, что не взращиваете на канале культ личности. Ваших друзей и коллег тоже интересно послушать.
@6598335
@6598335 5 років тому
😂😂😂😂😂
@bloodraven9622
@bloodraven9622 5 років тому
Такие нужны поддерживаю, но голос у автора сильно уставший ЗЫ слишком много нарезал кадров
@Stalevik
@Stalevik 3 роки тому
Т.е. получается создаётся ещё одна база данных, но уже для компьютера а не человека.
@user-ed5gp2ki5z
@user-ed5gp2ki5z 2 роки тому
Материал ценный и полезный, но качество изложения скучно и однообразно, тяжело слушать.
@tolik8
@tolik8 5 років тому
Видео интересное, но так много склейки, в результате очень дерганный ведущий
@Laertid
@Laertid 3 роки тому
Я искренне думал (и думаю всё ещё), что поиск в документ-ориентированной модели - это тоже её слабое место. Разве нет?
@AndriySydorka
@AndriySydorka 3 роки тому
Там тоже есть индексы
@PavelOmelchenko
@PavelOmelchenko 4 роки тому
Либо говори четче и громче, либо музыку делай тише.
@igoraleksandrovich1498
@igoraleksandrovich1498 5 років тому
Ничего не понял. Сложнее, чем реляционная база, а значит не нужно.
@slavianich
@slavianich 4 роки тому
Не сложнее, к тому же многие noSQL используют нормальный ЯП, а не SQL. Но... Если лень разбираться с архитектурой, в продакшн такие базы лучше не ставить, т.к. косяки архитектурных решений выплывут не сразу.
@MrLuckfinder
@MrLuckfinder 2 роки тому
Шепчет чего-то
@IgorYegorkin
@IgorYegorkin 4 роки тому
Нихрена не понятно о map-reduce.
@user-xl2tf4gq1g
@user-xl2tf4gq1g 4 роки тому
музыку потише надо делать
@user-pb9mb5gh5w
@user-pb9mb5gh5w Рік тому
а чего так вкрадчиво, не уверено?
@user-wd4mo4vl3h
@user-wd4mo4vl3h 5 років тому
Хоть бы чашку на полку сзади поставили
@firstbee4484
@firstbee4484 5 років тому
это хромакей
@vladymyrkuznietsov8815
@vladymyrkuznietsov8815 5 років тому
Да я предлагал постер с голой бабой повесить, но идею не поддержали... :)
@mike-aaa
@mike-aaa Рік тому
И вот зачем тут музыка?...
@SRUL0
@SRUL0 2 роки тому
Что за музЫка боевая? Глушит конкретно.
@Mytest437
@Mytest437 Рік тому
Материал подается четко и понятно, но мне не нравиться манера разговора автора. Сначала начинает говорить, потом затухает и договаривает предложения шопотом. И это волнообразное шептание раздражает. Желаю автору прокачать голос) А то получается убаюкивание и засыпаю.
@MrDenisable
@MrDenisable 5 років тому
Звук отвратительный. То чувство когда человек хочет чего-то рассказать, а нормального звука не завезли.
@noiseless6800
@noiseless6800 3 роки тому
Ля-ля-ля ля-ля-ля, 15 минут говорил, а пользы 2 строки
@gagikpog
@gagikpog 4 роки тому
Чувак, я заснул, почему ты так скучно говоришь?
@yuriy333
@yuriy333 4 роки тому
На самом деле совсем не скучно, а очень медленно. На скорости 1.5 было очень интересно слушать.
@faridakbarov4532
@faridakbarov4532 2 роки тому
ни о чем
Реляционные базы данных
19:16
Sergey Nemchinskiy
Переглядів 54 тис.
Базы данных. NoSQL. MongoDB
36:10
R class Tech
Переглядів 28 тис.
Артем Пивоваров х Klavdia Petrivna - Барабан
03:16
Artem Pivovarov
Переглядів 4,3 млн
0% Respect Moments 😥
00:27
LE FOOT EN VIDÉO
Переглядів 33 млн
How do NoSQL databases work? Simply Explained!
7:38
Simply Explained
Переглядів 1 млн
Разбираем основы Kafka и RabbitMQ
26:54
Digital train | Alex Babin
Переглядів 6 тис.
12. Введение в NoSQL. Базы данных
1:10:00
Институт программных систем I Йошкар-Ола
Переглядів 5 тис.
NoSQL простым языком: что это и зачем нужно?
8:16