Перейти к содержимому
шпаргалка.
Esc
навигацияоткрыть⌘Jпредпросмотр
На этой странице

NoSQL

Все темы Data Engineer

В чём отличие SQL и NoSQL?

Отличие между SQL (реляционные базы данных) и NoSQL (нереляционные базы данных) заключается в структуре данных и модели хранения:

  1. SQL (Structured Query Language):

    • Использует реляционную модель данных.

    • Таблицы со связями между ними.

    • Строгая схема данных.

    • Примеры: MySQL, PostgreSQL, Oracle.

  2. NoSQL (Not Only SQL):

    • Использует нереляционные или распределенные модели данных.

    • Гибкая схема данных (документы, столбцы, ключ-значение, графы).

    • Горизонтальное масштабирование лучше подходит для больших объемов данных.

    • Примеры: MongoDB, Cassandra, Redis.


Когда NoSQL может быть быстрее реляционной СУБД?

NoSQL может быть быстрее SQL по нескольким причинам:

  1. Гибкая схема данных: NoSQL базы данных позволяют хранить данные без строгой схемы, что может уменьшить издержки на обработку и проверку данных перед записью.

  2. Горизонтальное масштабирование: Многие NoSQL базы данных спроектированы для горизонтального масштабирования, что позволяет им легко масштабироваться на большие объемы данных и обрабатывать запросы более эффективно.

  3. Оптимизированные запросы: NoSQL базы данных могут оптимизировать запросы для конкретных типов данных или операций, что позволяет им работать быстрее в некоторых сценариях, особенно при больших объемах данных.

  4. Меньшие издержки на транзакции: Некоторые NoSQL базы данных могут позволить себе менее строгие гарантии целостности данных, что может сократить накладные расходы на транзакции и ускорить обработку запросов.


В чем основные отличия между реляционными и NoSQL базами данных?

Различия между NoSQL и реляционными базами данных:

  • Модель данных:

    • Реляционные базы данных (RDBMS): Используют таблицы с фиксированной схемой для хранения данных. Таблицы связаны через первичные и внешние ключи.

    • NoSQL базы данных: Могут использовать различные модели данных (документные, графовые, колоночные, ключ-значение). Схема может быть гибкой или отсутствовать вовсе.

  • Скалируемость:

    • Реляционные базы данных: Обычно вертикально масштабируемые (добавление ресурсов на один сервер).

    • NoSQL базы данных: Часто горизонтально масштабируемые (добавление новых узлов кластера).

  • Последовательность и согласованность:

    • Реляционные базы данных: Следуют ACID-принципам (Atomicity, Consistency, Isolation, Durability) для обеспечения целостности данных.

    • NoSQL базы данных: Часто следуют принципам BASE (Basically Available, Soft state, Eventual consistency), что позволяет более гибкую работу с данными, но иногда за счет временной непоследовательности.

  • Поддержка запросов:

    • Реляционные базы данных: Используют SQL для запросов и манипуляций с данными.

    • NoSQL базы данных: Используют различные языки запросов или API в зависимости от типа базы данных.


Какие NoSQL базы данных вы использовали и для каких задач они были наиболее подходящими?

Ниже приведены примеры NoSQL-систем и задач. Выберите из них свой реальный опыт и уточните нагрузку, настройки и результат.

  • MongoDB:

    • Используется для хранения и обработки документов JSON.

    • Подходит для приложений, требующих гибкой схемы и быстрой разработки.

    • Используется для систем управления контентом, аналитики и больших данных.

  • Cassandra:

    • Используется для работы с большим объемом данных, требующих высокой доступности и горизонтальной масштабируемости.

    • Подходит для приложений, требующих высокой скорости записи и чтения.

    • Используется для мониторинга и аналитики в реальном времени.

  • Redis:

    • Используется как база данных ключ-значение с быстрой памятью.

    • Подходит для кеширования, очередей сообщений и систем реального времени.

    • Используется для повышения производительности приложений за счет кеширования часто запрашиваемых данных.

  • Elasticsearch:

    • Используется для полнотекстового поиска и аналитики данных.

    • Подходит для приложений, требующих быстрого поиска и анализа больших объемов данных.

    • Используется для журналирования, мониторинга и бизнес-аналитики.


Каковы основные типы NoSQL баз данных и в чем их особенности?

Основные типы NoSQL баз данных:

  • Документные базы данных (Document Store):

    • Хранят данные в виде документов (например, JSON, BSON).

    • Гибкая схема, позволяет хранить сложные и вложенные структуры данных.

    • Примеры: MongoDB, CouchDB.

  • Ключ-значение (Key-Value Store):

    • Хранят данные в виде пар ключ-значение.

    • Высокая производительность при операциях чтения и записи.

    • Примеры: Redis, DynamoDB.

  • Колоночные базы данных (Column-Family Store):

    • Хранят данные в виде столбцов, сгруппированных в семействе столбцов.

    • Оптимизированы для чтения и записи больших объемов данных.

    • Примеры: Cassandra, HBase.

  • Графовые базы данных (Graph Database):

    • Хранят данные в виде графов с узлами и ребрами.

    • Оптимизированы для работы с графовыми структурами данных и сложными связями.

    • Примеры: Neo4j, ArangoDB.

Эта страница была полезной?