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

Поделиться
HTML-код
  • Опубликовано: 18 ноя 2024

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Шикарно!

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

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

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

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

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

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

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

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

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

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

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

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

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

    Уважуха.

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

    Спасибо

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

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

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

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

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

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

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

    О супер!

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

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

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

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

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

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

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

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

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

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

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

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

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

    Это круто.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      😂😂😂😂😂

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • @mike-aaa
    @mike-aaa 2 года назад

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

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

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

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

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

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

      это хромакей

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

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

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

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

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

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

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

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

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

    ни о чем

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

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

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

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

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

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

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

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