Мы создали приложение социальной сети для целей электронного обучения. Это экспериментальный проект, который мы исследуем в нашей лаборатории. Некоторое время он использовался в некоторых примерах, и данные в нашей реляционной СУБД (SQL Server 2008) становятся большими. Теперь это несколько гигабайт, и таблицы тесно связаны друг с другом. Производительность все еще в порядке, но когда мы должны рассмотреть другие варианты? Это вопрос производительности?
nosql
relational-dbms
ePezhman
источник
источник
Ответы:
Несколько гигабайт не очень " большие ". Это больше похоже на обычный размер корпоративной БД. Пока вы переходите на PK при присоединении к таблицам, это должно работать очень хорошо, даже в будущем (если вы не получаете ТБ данных в день).
Большинство профессионалов, работающих в среде больших данных, рассматривают > 5TB как начало термина большие данные. Но даже тогда это не всегда лучший способ просто установить следующую лучшую базу данных nosql. Вы всегда должны думать о задаче, которую вы хотите заархивировать с данными (агрегировать, читать, искать, мои, ...), чтобы найти лучшие инструменты для вашей проблемы.
то есть, если вы выполняете много операций поиска в вашей базе данных, вероятно, было бы лучше запустить экземпляр / кластер solr и время от времени денормализовать ваши данные из СУБД, такой как Postgres или SQL Server, и поместить их в solr вместо простого перемещения данных. от sql до nosql с точки зрения настойчивости и производительности.
источник
Чтобы ответить на этот вопрос, вы должны ответить, какой компромисс вы можете себе позволить. RDBMs реализует ACID . Это дорого с точки зрения ресурсов. Нет никаких решений NoSQL, которые являются ACID. См. Теорему CAP, чтобы углубиться в эти идеи.
Таким образом, вы должны понимать каждый компромисс, данный каждым решением, и выбирать тот, который наиболее подходит для вашей проблемы.
источник
Большие данные на самом деле не так о том, «насколько они большие».
Во-первых, несколько гигабайт совсем не большие, это почти ничего. Так что не беспокойтесь, ваша система продолжит работать эффективно в течение некоторого времени, я думаю.
Тогда вы должны подумать о том, как вы используете свои данные.
Если вы храните «функциональные» данные, используемые вашим приложением, я предлагаю вам остаться на SQL. Если вы храните данные для того, чтобы искать их позже или составлять отчеты, и если этот объем данных может быстро увеличиться, я предложу большие данные. На мой взгляд, большие данные полезны, когда вы имеете дело с реальными данными, которые нужно постоянно собирать и анализировать.
источник
Я опубликовал довольно подробный ответ на stackoverflow о том, когда целесообразно использовать реляционную базу данных (или NoSQL), здесь:
Мотивация использования реляционной базы данных / ORM или базы данных документов / ODM
Резюме:
для мелочей используйте все инструменты, с которыми вы знакомы
несколько гигабайт, безусловно, мелкие вещи: они не становятся большими, пока не станут слишком большими, чтобы поместиться в один MySQL Cluster с разумным количеством узлов (16-32), что означает, возможно, 8-16 ТБ данных и несколько миллионов транзакций. в секунду (или более обычная база данных на жестких дисках, содержащая до 100 ТБ данных и несколько тысяч транзакций в секунду).
если вы застряли с другой базой данных (не MySQL Cluster), получите больше пользы от нее, добавив аппаратное обеспечение FusionIO.
если у вас есть данные размером более нескольких ТБ и быстрее, чем тысячи транзакций в секунду, самое время посмотреть на переход к логическому разделению в коде приложения, а затем на NoSQL.
Кассандра :)
источник
Время перехода на NoSQL будет зависеть от 2 вещей:
Базы данных SQL превосходны, когда данные хорошо структурированы (например, если их можно смоделировать как таблицу, электронную таблицу Excel или набор строк с фиксированным числом столбцов). Также хорошо, когда вам нужно сделать много объединений таблиц (что звучит так же, как и вы).
Базы данных NoSQL превосходны, когда данные не структурированы за пределами пар ключ-значение.
С точки зрения производительности, вы должны задать себе один вопрос: ваше текущее SQL-решение медленное ?
Если нет, воспользуйтесь принципом « IIABDFI ».
источник