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

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

Комментарии • 90

  • @Snake19S
    @Snake19S 5 лет назад +73

    Спасибо большое. Единственная просьба, уберите музыкальную подложку. Ведущий говорит достаточно тихо, а музыка иногда заглушает звук. Третий вид БД я так и не расслышал.

    • @vladymyrkuznietsov8815
      @vladymyrkuznietsov8815 5 лет назад +4

      "Ведущий говорит достаточно тихо" - это главная проблема, звук пришлось вытягивать, поэтому появился фоновый шум, который замаскировали музыкой... Тут все непросто :)

    • @homo-ergaster
      @homo-ergaster 5 лет назад +1

      третий вид - основанные на графах

    • @Lurck_rr
      @Lurck_rr 5 лет назад +3

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

  • @vladyslavpodkhaliuzin6815
    @vladyslavpodkhaliuzin6815 5 лет назад +63

    Крутой формат)) По возможности давайте больше таких видео

    • @homo-ergaster
      @homo-ergaster 5 лет назад +2

      крутой - это мягко сказано. Формат охуенен.

  • @brostver
    @brostver 5 лет назад +26

    Очень доступно! размеренная подача, без лишних слов.Примеры очень информативны и коротки.

  • @vs8418
    @vs8418 5 лет назад +27

    Классная вводная, побольше бы таких. Спасибо!

  • @МаксимС-ь2е
    @МаксимС-ь2е 3 года назад +1

    Материал ценный и полезный, но качество изложения скучно и однообразно, тяжело слушать.

  • @IgorYegorkin
    @IgorYegorkin 5 лет назад +2

    Нихрена не понятно о map-reduce.

  • @slavianich
    @slavianich 5 лет назад +24

    Если речь про 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. Но лучше все таки поискать менее костыльные инструменты.

  • @chuhrayuriy
    @chuhrayuriy 5 лет назад +7

    Я бы потом дизайн паттерны бы предложил рассмотреть или Java или Restful API. Спасибо, что делитесь знаниями ;) Или какие фреймворка реализуют JPA.

  • @protagorasfromabdera8653
    @protagorasfromabdera8653 5 лет назад +10

    Походу президент канала реализует план "Преемник".

    • @protagorasfromabdera8653
      @protagorasfromabdera8653 5 лет назад +9

      @@SergeyNemchinskiy спасибо, Сергей, что не взращиваете на канале культ личности. Ваших друзей и коллег тоже интересно послушать.

    • @6598335
      @6598335 5 лет назад

      😂😂😂😂😂

  • @colombianchebur
    @colombianchebur 5 лет назад +3

    В описании к видео представляйте рассказчика, пожалуйста. (Имя-фамилия). Спасибо.

  • @gagogoga794
    @gagogoga794 4 года назад +4

    Чувак ты бог компуктеров! 😁👍🏻

  • @1983Boria
    @1983Boria 4 года назад +2

    Хорошая лекция. Мне вначале показалось что это Гарик Харламов.

  • @wolfich4684
    @wolfich4684 2 года назад

    Подскажите Mapreduce Это ведь частный случай mapping ?

  • @Mytest437
    @Mytest437 2 года назад

    Материал подается четко и понятно, но мне не нравиться манера разговора автора. Сначала начинает говорить, потом затухает и договаривает предложения шопотом. И это волнообразное шептание раздражает. Желаю автору прокачать голос) А то получается убаюкивание и засыпаю.

  • @wolfich4684
    @wolfich4684 2 года назад

    Только не понял почему автор сказал что нормализация это отношение "один ко многим" и "многие ко многим " ? Ведь нормализация это же создание таблиц и отношений . То есть на стадии создания БД, а не на стадии выполнении запросов)

  • @denysgranevych8279
    @denysgranevych8279 5 лет назад +4

    шум на фоне мешает немного :(

  • @MrLuckfinder
    @MrLuckfinder 2 года назад +1

    Шепчет чего-то

  • @Edgesofthecompass
    @Edgesofthecompass 2 года назад +1

    Спасибо

  • @SRUL0
    @SRUL0 2 года назад +1

    Уважуха.

  • @Stalevik
    @Stalevik 4 года назад +1

    Т.е. получается создаётся ещё одна база данных, но уже для компьютера а не человека.

  • @faridakbarov4532
    @faridakbarov4532 2 года назад +1

    ни о чем

  • @ni55an
    @ni55an 5 лет назад +5

    Полезный урок, но хотелось бы более чёткого произношения

  • @daymaker_trading
    @daymaker_trading 4 года назад +1

    Спасибо за видео и объяснение! Очень интересно.
    PS: Музыка лишняя, это правда.

  • @Aleksandr838383
    @Aleksandr838383 5 лет назад +2

    Спасибо большое. У меня просьба. Хотелось бы видео где проводится не чистое описание одной их баз, а сравнение. Например какие нибудь примеры и в этом случае лучше бы подошел этот тип базы, а в этом случае вот этот. Просто к концу видео получается еще больше путаница, так где же использовать, а где нет.
    Еще хотелось бы услышать про семейства столбцов (cassandra) и key-value, в сравнениии. Вся беда в том что в интернете есть куча инфы как выглядит та или иная база, но очень мало инфы где их сравнивают между собой. Спасибо большое. В любом случае видео интересное.

    • @vladymyrkuznietsov8815
      @vladymyrkuznietsov8815 5 лет назад

      А простого ответа просто нет. Слишком много переменных: на каком железе, какая реализация, с какими настройками, какие операции и т.д... Как правило, чем проще - тем уже функционал и быстрее (и понятнее)... key-value с персистансом на основе лога, типа bitcask - похоже что самые быстрые... Пока оперативки на индекс хватает :)

  • @SRUL0
    @SRUL0 2 года назад

    Что за музЫка боевая? Глушит конкретно.

  • @alexdeshift6733
    @alexdeshift6733 3 года назад +1

    Лайк однозначно.

  • @SokratForever
    @SokratForever 5 лет назад +2

    Хороший урок, продолжайте делать такие видео.

  • @tolik8
    @tolik8 5 лет назад +1

    Видео интересное, но так много склейки, в результате очень дерганный ведущий

  • @Slaemee
    @Slaemee 5 лет назад +1

    Что-то не совсем понятно преимущество "локальность" над реляционной моделью. В реляционной модели тоже можно сделать аналогичную "локальность", просто писав не ссылки, а значения в поля таблицы.

    • @vladymyrkuznietsov8815
      @vladymyrkuznietsov8815 5 лет назад

      O преимуществах локальности вообще имеет смысл говорить, если размер документа больше сектора на диске. В случае крупных документов использование больших записей в реляционной базе нам локальности не гарантирует: реляционки как правило используют страничную организацию памяти, и не факт, что страницы, содержащие одну большую запись таблицы, будут на диске рядом.

  • @richmangroup
    @richmangroup 4 года назад +2

    Шикарно!

  • @igoraleksandrovich1498
    @igoraleksandrovich1498 5 лет назад +1

    Ничего не понял.
    Сложнее, чем реляционная база, а значит не нужно.

    • @slavianich
      @slavianich 5 лет назад

      Не сложнее, к тому же многие noSQL используют нормальный ЯП, а не SQL.
      Но... Если лень разбираться с архитектурой, в продакшн такие базы лучше не ставить, т.к. косяки архитектурных решений выплывут не сразу.

  • @HowItWorks
    @HowItWorks 5 лет назад

    Можно очень быстро запилить магазин или склад с большим количеством товаров с разными свойствами.

  • @Rokinso
    @Rokinso 3 года назад +1

    Большое спасибо за ликбез!

  • @wolfich4684
    @wolfich4684 2 года назад

    Молодец парень. С задачей "не отпугнуть, чтобы подписчик полюбил БД" справился.

  • @НиколайТополев-в1й

    а чего так вкрадчиво, не уверено?

  • @eyu7111
    @eyu7111 5 лет назад +2

    О супер!

  • @ИгнатСергиевич
    @ИгнатСергиевич Год назад +1

    Смотришь вот так вот ролик, готовясь к первому собеседованию на тестировщика, и понимаешь, как все-таки круто быть профессионалом и уметь на 3 пальцах объяснить сложные вещи. Спасибо за труд! Действительно полезно.

  • @mike-aaa
    @mike-aaa Год назад

    И вот зачем тут музыка?...

  • @nickml5138
    @nickml5138 Год назад

    Спасибо тебе, ты навёл меня на мысль о том, что именно я не понимал, чтобы воспользоваться MongoDB.

  • @keyar976
    @keyar976 3 года назад

    Ахах, голос огонь в этом видео, спокойный, плавный, будто познавательный ASMR посмотрел.

  • @EdAmielin
    @EdAmielin 2 года назад

    Воу! Очень круто!

  • @dmytrohelbak
    @dmytrohelbak 5 лет назад

    Привет, Сергей! Обязательно передай Владимиру спасибо и респект! Толковый у тебя товарищ, прям как Ты)))!

  • @alexn4309
    @alexn4309 4 года назад +1

    Очень классное видео. Спасибо большое!

  • @user-xl2tf4gq1g
    @user-xl2tf4gq1g 4 года назад

    музыку потише надо делать

  • @СергейБорисов-в6ю
    @СергейБорисов-в6ю 5 лет назад +1

    Сергей, спасибо за информацию!

  • @bloodraven9622
    @bloodraven9622 5 лет назад

    Такие нужны поддерживаю, но голос у автора сильно уставший
    ЗЫ слишком много нарезал кадров

  • @wimanen
    @wimanen 4 года назад +1

    Супер! Кратко и по делу. :)

  • @intellectualuser2244
    @intellectualuser2244 3 года назад

    За документно-ориентированными субд будущее?

  • @ermak50
    @ermak50 5 лет назад +1

    спасибо, очень доходчиво

  • @МарияМаятникова-у2л

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

  • @ivanko747
    @ivanko747 5 лет назад +1

    Очень интересно! Спасибо!

  • @StroyManosfera
    @StroyManosfera 4 года назад

    Крутейший формат - готов смотреть такое.

  • @петрпишенин
    @петрпишенин 5 лет назад

    Хотелось услышать про CAP теорему. Ведь именно Partition Tolerance это то из-за чего мы любим и ненавидим NoSQL. Кстати NoSql базы не только документ-ориентированные. Например, Cassandra содержит внутри таблицы.

    • @vladymyrkuznietsov8815
      @vladymyrkuznietsov8815 5 лет назад

      тема распределенных систем будет раскрыта, и даже еще не знаю, сколько роликов на эту тему будет...

  • @PavelOmelchenko
    @PavelOmelchenko 5 лет назад

    Либо говори четче и громче, либо музыку делай тише.

  • @Laertid
    @Laertid 4 года назад

    Я искренне думал (и думаю всё ещё), что поиск в документ-ориентированной модели - это тоже её слабое место. Разве нет?

    • @AndriySydorka
      @AndriySydorka 4 года назад +1

      Там тоже есть индексы

  • @образомдуха
    @образомдуха 4 года назад

    Я чуть не сдох когда ты говорил

  • @NikolayVerhovcev
    @NikolayVerhovcev 5 лет назад +1

    Хоть бы чашку на полку сзади поставили

    • @firstbee4484
      @firstbee4484 5 лет назад

      это хромакей

    • @vladymyrkuznietsov8815
      @vladymyrkuznietsov8815 5 лет назад +4

      Да я предлагал постер с голой бабой повесить, но идею не поддержали... :)

  • @russellray1219
    @russellray1219 5 лет назад

    Большое спасибо за ролик, все понятно и по полочкам!)
    Очень приятно Вас слушать, информация легко воспринимается.

  • @aimanalbini7883
    @aimanalbini7883 5 лет назад

    Огромное спасибо, все прекрасно и конструктивно объяснил, побольше таких видео)

  • @noiseless6800
    @noiseless6800 4 года назад +1

    Ля-ля-ля ля-ля-ля, 15 минут говорил, а пользы 2 строки

  • @andreymorozov1189
    @andreymorozov1189 5 лет назад

    Ништяк, с удовольствием послушал.

  • @crackinglad7644
    @crackinglad7644 5 лет назад

    Это круто.

  • @andrewbutov9575
    @andrewbutov9575 5 лет назад

    Легко понятно доступно

  • @alexshwartz204
    @alexshwartz204 5 лет назад

    Коротко и очень понятно. Огромное спасибо!!!

  • @vefremov1
    @vefremov1 5 лет назад

    Одно замечание: как я понимаю, на стадии reduce тоже можно параллелить, если операция обладает ассоциативностью. А так, неплохой обзор. Спасибо! Ну и чашка там возможно стоит - оптимистичная стратегия в этом случае лучше ;)

    • @владимирсенцов-р1ю
      @владимирсенцов-р1ю 5 лет назад

      На reduce только ассициотивных операций такое можно или если неважен порядок вообще.

    • @vladymyrkuznietsov8815
      @vladymyrkuznietsov8815 5 лет назад

      Да, свертку тоже можно распараллелить, но ключей все же гораздо меньше, чем документов. Тут акцент был на то, что она должна дождаться выполнения Map на документах, которых может быть очень много... Как правило, основной профит делается на распараллеливании чтения документов и выполнения Map. А вообще MapReduce неисчерпаем как атом, а у меня бюджет в 15 мин на все :)

  • @vladimirrabtsun
    @vladimirrabtsun 5 лет назад

    Очень интересно!

  • @MrDenisable
    @MrDenisable 5 лет назад +3

    Звук отвратительный. То чувство когда человек хочет чего-то рассказать, а нормального звука не завезли.

  • @gagikpog
    @gagikpog 5 лет назад

    Чувак, я заснул, почему ты так скучно говоришь?

    • @yuriy333
      @yuriy333 5 лет назад

      На самом деле совсем не скучно, а очень медленно. На скорости 1.5 было очень интересно слушать.

  • @goldmeat_93
    @goldmeat_93 2 года назад +1

    Огромное спасибо!