Владимир Кузнецов: Описание документ-ориентированной модели организации данных. Особенности реализации, сильные и слабые стороны этого подхода. MongoDB
КОМЕНТАРІ: 90
@brostver5 років тому
Очень доступно! размеренная подача, без лишних слов.Примеры очень информативны и коротки.
@vs84185 років тому
Классная вводная, побольше бы таких. Спасибо!
@Snake19S5 років тому
Спасибо большое. Единственная просьба, уберите музыкальную подложку. Ведущий говорит достаточно тихо, а музыка иногда заглушает звук. Третий вид БД я так и не расслышал.
@vladymyrkuznietsov88155 років тому
"Ведущий говорит достаточно тихо" - это главная проблема, звук пришлось вытягивать, поэтому появился фоновый шум, который замаскировали музыкой... Тут все непросто :)
@homo-ergaster5 років тому
третий вид - основанные на графах
@user-vv8mi7kf1m4 роки тому
Все правильно делает ведущий, что бы его услышать, надо прислушаться, что положительно сказывается на запоминании.
@vladyslavpodkhaliuzin68155 років тому
Крутой формат)) По возможности давайте больше таких видео
@homo-ergaster5 років тому
крутой - это мягко сказано. Формат охуенен.
@russellray12195 років тому
Большое спасибо за ролик, все понятно и по полочкам!) Очень приятно Вас слушать, информация легко воспринимается.
@user-mv4rv7jt2p5 років тому
Сергей, спасибо за информацию!
@aimanalbini78834 роки тому
Огромное спасибо, все прекрасно и конструктивно объяснил, побольше таких видео)
@SokratForever5 років тому
Хороший урок, продолжайте делать такие видео.
@alexshwartz2045 років тому
Коротко и очень понятно. Огромное спасибо!!!
@slavianich4 роки тому
Если речь про MongoDB: 1) мы можем использовать атомарные операции обновления, но да, они используют блокировку на уровне документа одной ноды кластера. Никто не мешает читать с других нод, всего-то secondaryPreffered в строке соединения. 2) мы можем запрашивать определенные поля, а не весь документ, если данные поля попадают в индекс - запрос вообще не лезет в хранилище данных, а берет результат прямо из индекса. Блокировки на чтение данных нет. 3) есть валидатор схемы и им глупо не пользоваться, это как раз и нормализует данные. 4) используя постоянное соединение с СУБД множество запросов выполняется не дольше чем один. Точнее так, разницу вы не увидите вообще никогда. Естественно при правильно построенных идентификаторах и индексах. 5) aggregation framework в сотку раз быстрее map reduce. 6) с кластера можно даже дамп снимать на горячую, без вывода из боевого режима одной из нод. Ну а обобщая, стоило бы упомянуть, что фишка noSQL в нормальном горизонтальном масштабировании (и map reduce тут ни при чем). Да, еще про то что в noSQL используется не SQL, а нормальный ЯП со всеми вытекающими плюсами.
@pmak60742 роки тому
Мы вообще можем принудительно создавать пары индекс-значение, для каждого поля документа? Я понимаю, что объем данных вырастает при этом, но всё-же.
@slavianich2 роки тому
@@pmak6074 ну если прямо для каждого поля, то у вас индексов будет больше чем данных. Смысла в этом нет. + Индексы тормозят запись в базу. Если нужна скорость чтения/поиска то в определенных пределах можно держать один из осколков кластера (без шардинга) в in-memory состоянии. Из минусов - очень долгий старт кластера до консистентного состояния при падении или необходимости перезапуска, ну и то что это все руками настраивается. Т.е. условно у вас может быть 2 осколка кластера, один в обычном режиме как primary, а второй в in-memory как secondary. При этом вы можете в драйвере подключения к монге добавить настройку, чтобы читало принудительно из secondary. Но лучше все таки поискать менее костыльные инструменты.
@wimanen4 роки тому
Супер! Кратко и по делу. :)
@Rokinso3 роки тому
Большое спасибо за ликбез!
@ivanko7475 років тому
Очень интересно! Спасибо!
@StroyManosfera4 роки тому
Крутейший формат - готов смотреть такое.
@andreymorozov11895 років тому
Ништяк, с удовольствием послушал.
@ermak505 років тому
спасибо, очень доходчиво
@richmangroup4 роки тому
Шикарно!
@dmytrohelbak4 роки тому
Привет, Сергей! Обязательно передай Владимиру спасибо и респект! Толковый у тебя товарищ, прям как Ты)))!
@alexn43094 роки тому
Очень классное видео. Спасибо большое!
@SergeyNemchinskiy4 роки тому
пожалуйста)
@abrafgesvbeac36764 роки тому
Спасибо за видео и объяснение! Очень интересно. PS: Музыка лишняя, это правда.
@andrewbutov95754 роки тому
Легко понятно доступно
@user-cq6br4xz6dРік тому
Смотришь вот так вот ролик, готовясь к первому собеседованию на тестировщика, и понимаешь, как все-таки круто быть профессионалом и уметь на 3 пальцах объяснить сложные вещи. Спасибо за труд! Действительно полезно.
@goldmeat_932 роки тому
Огромное спасибо!
@nickml513811 місяців тому
Спасибо тебе, ты навёл меня на мысль о том, что именно я не понимал, чтобы воспользоваться MongoDB.
@chuhrayuriy5 років тому
Я бы потом дизайн паттерны бы предложил рассмотреть или Java или Restful API. Спасибо, что делитесь знаниями ;) Или какие фреймворка реализуют JPA.
@vladimirrabtsun5 років тому
Очень интересно!
@EdAmielinРік тому
Воу! Очень круто!
@SRUL02 роки тому
Уважуха.
@gagogoga7944 роки тому
Чувак ты бог компуктеров! 😁👍🏻
@eyu71115 років тому
О супер!
@Edgesofthecompass2 роки тому
Спасибо
@alexdeshift67333 роки тому
Лайк однозначно.
@crackinglad76444 роки тому
Это круто.
@wolfich4684Рік тому
Молодец парень. С задачей "не отпугнуть, чтобы подписчик полюбил БД" справился.
@Aleksandr8383835 років тому
Спасибо большое. У меня просьба. Хотелось бы видео где проводится не чистое описание одной их баз, а сравнение. Например какие нибудь примеры и в этом случае лучше бы подошел этот тип базы, а в этом случае вот этот. Просто к концу видео получается еще больше путаница, так где же использовать, а где нет. Еще хотелось бы услышать про семейства столбцов (cassandra) и key-value, в сравнениии. Вся беда в том что в интернете есть куча инфы как выглядит та или иная база, но очень мало инфы где их сравнивают между собой. Спасибо большое. В любом случае видео интересное.
@vladymyrkuznietsov88155 років тому
А простого ответа просто нет. Слишком много переменных: на каком железе, какая реализация, с какими настройками, какие операции и т.д... Как правило, чем проще - тем уже функционал и быстрее (и понятнее)... key-value с персистансом на основе лога, типа bitcask - похоже что самые быстрые... Пока оперативки на индекс хватает :)
@colombianchebur5 років тому
В описании к видео представляйте рассказчика, пожалуйста. (Имя-фамилия). Спасибо.
@keyar9763 роки тому
Ахах, голос огонь в этом видео, спокойный, плавный, будто познавательный ASMR посмотрел.
@HowItWorks5 років тому
Можно очень быстро запилить магазин или склад с большим количеством товаров с разными свойствами.
@1983Boria3 роки тому
Хорошая лекция. Мне вначале показалось что это Гарик Харламов.
@vefremov15 років тому
Одно замечание: как я понимаю, на стадии reduce тоже можно параллелить, если операция обладает ассоциативностью. А так, неплохой обзор. Спасибо! Ну и чашка там возможно стоит - оптимистичная стратегия в этом случае лучше ;)
@user-gw6df6ns7e5 років тому
На reduce только ассициотивных операций такое можно или если неважен порядок вообще.
@vladymyrkuznietsov88155 років тому
Да, свертку тоже можно распараллелить, но ключей все же гораздо меньше, чем документов. Тут акцент был на то, что она должна дождаться выполнения Map на документах, которых может быть очень много... Как правило, основной профит делается на распараллеливании чтения документов и выполнения Map. А вообще MapReduce неисчерпаем как атом, а у меня бюджет в 15 мин на все :)
@user-ex3rx6yf5y5 років тому
Хотелось услышать про CAP теорему. Ведь именно Partition Tolerance это то из-за чего мы любим и ненавидим NoSQL. Кстати NoSql базы не только документ-ориентированные. Например, Cassandra содержит внутри таблицы.
@vladymyrkuznietsov88155 років тому
тема распределенных систем будет раскрыта, и даже еще не знаю, сколько роликов на эту тему будет...
@user-xe2jk5ui2d4 роки тому
вопрос? какие риски могут быть если я перенсу бузу с мрины дб на могну ?
@ni55an5 років тому
Полезный урок, но хотелось бы более чёткого произношения
@intellectualuser22443 роки тому
За документно-ориентированными субд будущее?
@denysgranevych82795 років тому
шум на фоне мешает немного :(
@wolfich4684Рік тому
Подскажите Mapreduce Это ведь частный случай mapping ?
@user-eo8vm2su4u4 роки тому
Я чуть не сдох когда ты говорил
@wolfich4684Рік тому
Только не понял почему автор сказал что нормализация это отношение "один ко многим" и "многие ко многим " ? Ведь нормализация это же создание таблиц и отношений . То есть на стадии создания БД, а не на стадии выполнении запросов)
@Slaemee5 років тому
Что-то не совсем понятно преимущество "локальность" над реляционной моделью. В реляционной модели тоже можно сделать аналогичную "локальность", просто писав не ссылки, а значения в поля таблицы.
@vladymyrkuznietsov88155 років тому
O преимуществах локальности вообще имеет смысл говорить, если размер документа больше сектора на диске. В случае крупных документов использование больших записей в реляционной базе нам локальности не гарантирует: реляционки как правило используют страничную организацию памяти, и не факт, что страницы, содержащие одну большую запись таблицы, будут на диске рядом.
@protagorasfromabdera86535 років тому
Походу президент канала реализует план "Преемник".
@protagorasfromabdera86535 років тому
@@SergeyNemchinskiy спасибо, Сергей, что не взращиваете на канале культ личности. Ваших друзей и коллег тоже интересно послушать.
@65983355 років тому
😂😂😂😂😂
@bloodraven96225 років тому
Такие нужны поддерживаю, но голос у автора сильно уставший ЗЫ слишком много нарезал кадров
@Stalevik3 роки тому
Т.е. получается создаётся ещё одна база данных, но уже для компьютера а не человека.
@user-ed5gp2ki5z2 роки тому
Материал ценный и полезный, но качество изложения скучно и однообразно, тяжело слушать.
@tolik85 років тому
Видео интересное, но так много склейки, в результате очень дерганный ведущий
@Laertid3 роки тому
Я искренне думал (и думаю всё ещё), что поиск в документ-ориентированной модели - это тоже её слабое место. Разве нет?
@AndriySydorka3 роки тому
Там тоже есть индексы
@PavelOmelchenko4 роки тому
Либо говори четче и громче, либо музыку делай тише.
@igoraleksandrovich14985 років тому
Ничего не понял. Сложнее, чем реляционная база, а значит не нужно.
@slavianich4 роки тому
Не сложнее, к тому же многие noSQL используют нормальный ЯП, а не SQL. Но... Если лень разбираться с архитектурой, в продакшн такие базы лучше не ставить, т.к. косяки архитектурных решений выплывут не сразу.
@MrLuckfinder2 роки тому
Шепчет чего-то
@IgorYegorkin4 роки тому
Нихрена не понятно о map-reduce.
@user-xl2tf4gq1g4 роки тому
музыку потише надо делать
@user-pb9mb5gh5wРік тому
а чего так вкрадчиво, не уверено?
@user-wd4mo4vl3h5 років тому
Хоть бы чашку на полку сзади поставили
@firstbee44845 років тому
это хромакей
@vladymyrkuznietsov88155 років тому
Да я предлагал постер с голой бабой повесить, но идею не поддержали... :)
@mike-aaaРік тому
И вот зачем тут музыка?...
@SRUL02 роки тому
Что за музЫка боевая? Глушит конкретно.
@Mytest437Рік тому
Материал подается четко и понятно, но мне не нравиться манера разговора автора. Сначала начинает говорить, потом затухает и договаривает предложения шопотом. И это волнообразное шептание раздражает. Желаю автору прокачать голос) А то получается убаюкивание и засыпаю.
@MrDenisable5 років тому
Звук отвратительный. То чувство когда человек хочет чего-то рассказать, а нормального звука не завезли.
@noiseless68003 роки тому
Ля-ля-ля ля-ля-ля, 15 минут говорил, а пользы 2 строки
@gagikpog4 роки тому
Чувак, я заснул, почему ты так скучно говоришь?
@yuriy3334 роки тому
На самом деле совсем не скучно, а очень медленно. На скорости 1.5 было очень интересно слушать.