Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Статья будет полезна особенно начинающим пионерам в разработки БД.
Если у вас 600 Терабайт
Если у вас больше 1 Петабайт данных
Необходимо знать язык SQL и основные принципы RDBMS как транзакции, foreign key, таблицы.
Если у вас большой проект, то вам нужен профессиональный БД разработчик, а это лишний балласт если не будет проектов в будущем.
… или нужно неблокирующее чтение… Покупайте Exadata
Допустим вы разработчик Java, и от вас еще требуют знать какой-то SQL и особенности RDBMS
Если у вас большой проект, то вам нужен профессиональный БД разработчик, а это лишний балласт если не будет проектов в будущем.
Невозможность использовать commodity сервера на больших данных. Если у вас 600 Терабайт, то вам из RDBMS подойдет только Exadata или Teradata.
2.2. Отказоустойчивость. Без технологии shared-nothing и no single point failer вы вынуждены покупать дорогие сервера, с двойным резервированием всего,
Если у вас большой проект вам потребуются профессионалы. И они уж явно будут знать как разработать в том числе и БД. Так что очень сомнительный довод.
Давайте честно скажем что не правда. Тот же Skype отлично использовал PostgreSQL использует ли сейчас не знаю. Но SkyTools вполне себе доступны.
Дополнительно я могу рассказать про www.scidb.org/ который внезапно тоже использует кодовую базу PostgreSQL.
Репликация и быстрое переключение между узлами давно уже есть. И в MySQL и в PostgreSQL. В последней версии PostgreSQL процесс переключения master с одного сервера на другой и обратно существенно упростили.
Ну и дополнительно. В PostgreSQL работают жирные тролли и в последней версии есть NoSQL.
У меня есть крутой разработчик Java и C#, он наотрез отказывается пользоваться SQL, говорит, что это прошлый век, что NoSQL во всем лучше
В NoSQL репликация автоматическая, она обязательная часть архитектуры,
Репликация расходует ресурсы Master сервера
Значит, его крутость ограничена Java и C#, и прислушиваться к его мнению за их пределами не надо.
Вы готовы доказать это утверждение для всех видов NoSql-решений? Для графовых БД, например?
А вы хотите сказать, что репликация в NoSql бесплатна?
Не совсем так, он реально очень крутой разработчик, хорошо разбирается в Java и C# и NoSQL. Просто он в свое время поддался эйфории, что обычным SQL базам пришел конец.
И вы не внимательно читали мою статью, я здесь принципиально не обсуждаю графовые БД
У меня есть крутой разработчик Java и C#, он наотрез отказывается пользоваться SQL, говорит, что это прошлый век, что NoSQL во всем лучше, что Твиттер сделал, и мы сделаем. И к сожалению таким разработчиков много.
Может быть, а ссылку можно? Ваша ссылка чисто на форум, что там читать?
Не смог найти Архитектуру Скайпа на Постге. Увидел только что они правили код. Чтобы мне что-то сказать, нужно оценить их архитектуру. Если ей нет в сети в открытом доступе, но она для меня не релевантна. Да и один случай не показателен
В NoSQL репликация автоматическая, она обязательная часть архитектуры, а в MySQL и в PostgreSQL её нужно настраивать. В Оракле она настраивается не тривиально для начинающего.
2. StandBy сервер простаивает, а в NoSQL нет
Репликация расходует ресурсы Master сервера
Но он не MPP, иначе бы не было Netteza, GreenPlum and AsterData
Это не крутой разработчик.
Ключевая фраза горизонтальное масштабирование. Использование sky tools в интернете хорошо описано. Если кратко то смысл в том что данные в таблицах делятся по серверам, прозрачно для клиента.
Вообще говоря не обязательно автоматическая и тоже требует настройки. А так же требует понимания как она работает иначе вы можете словить мноого проблем, когда окажется что репликация работала не так как вы ожидали.
Совершенно не обязательно. Никто не мешает вам с него читать. У MySQL даже есть классическая схема когда делают много слейвов и с них читают, а пишут только в один.
Он просто религиозен как и большинство разработчиков, он свято верит в NoSQL =)
Но это несомненно минус, в этом я согласен.
Почитаю. А кроме Скайпа кто ни будь использует эту технологию?
Я в данном месте имел в виду шардинг. Шардинг с избыточностью заменяет репликацию.
Клиент подключается к общему инстансу за которым стоит Master and StandBy, и работать в одной в одной сессии он может только с одной БД.
А возможность бегать Select на StandBy я считаю не очень большим приемуществом.
Я про это и говорю, что NoSQL однозначно следует использовать только на Больших Данных.
Для решения этой проблемы существуют специальные прокси.
Я думаю вопрос в выборе базы на 100 Гб это вопрос предпочтения разработчиков. Кому что нравится.
А чтоб будет если сделать select еще не реплецированных данных?
Я думаю вопрос в выборе базы на 100 Гб это вопрос предпочтения разработчиков. Кому что нравится.
Шардинг с избыточностью заменяет репликацию.
А возможность бегать Select на StandBy я считаю не очень большим приемуществом.
Я про это и говорю, что NoSQL однозначно следует использовать только на Больших Данных.
Шардинг не заменяет репликацию. Шардинг и репликация это ортогональные понятия.
А зря, потому что есть много систем, где нагрузка на чтение сильно превышает нагрузку на запись, и их балансировка таким образом радикально повышает производительность.
Если вкратце, то нет. А если долго, то надо начинать с вашего определения «больших данных», NoSql, и выяснения, вы имели в виду, что «только для больших», или «для больших — однозначно, для других — нет» и так далее.
Но сам факт ручного постоянно переключаться, не очень удобен, по сравнению с автоматической балансировкой нагрузки
а вот если это не большие данные, то целесообразность применения Hadoop уже переходит в плоскость предпочтения.
А нет никакого «ручного постоянно», есть просто разделение потоков на чтение и на запись. CQRS.
Вы все время забываете, что NoSql — это не только Hadoop, и тем более не только MPP. NoSql — это (будем честными, весьма бессмысленный в своей общности) класс разнообразных хранилищ. Например, любая документо-ориентированная (или key-value) база данных — это NoSql, но никакого MPP там может и не быть при этом.
Только для тех запросов для которых отстование в репликации на несколько минут не кретично.
Согласен, это мой пробел, который я не очень то стремлюсь заполнять. Я специализируюсь в основном только на DWH, BI, ETL, Big Data.
Недостатки RDBMS или RDBMS vs NoSQL