Облако AWS
Облако AWS
Начать работу с Amazon DynamoDB

Базы данных NoSQL – это нереляционные базы данных с возможностью масштабирования, оптимизированные для использования моделей данных без единой схемы. Базы данных NoSQL получили широкое распространение, поскольку они упрощают разработку, обеспечивают отказоустойчивость и низкую задержку. Такие базы данных могут использовать различные модели данных, включая столбчатые, документные, графовые данные и хранилища пар «ключ-значение» в памяти. Ресурсы, представленные на этой странице, помогут начать работу с базами данных NoSQL.

PurposeBuilt-reInvent
58:35
Новые возможности специально разработанных нереляционных баз данных AWS

Системы БД NoSQL используют для управления данными различные модели, включая хранилища пар «ключ-значение» в памяти, графовые модели данных и хранилища документов. Базы данных этих типов оптимизированы для приложений, которым требуется большой объем данных, низкая задержка и гибкие модели данных. Все это достигается за счет смягчения жестких требований к непротиворечивости данных, характерных для традиционных реляционных баз данных.

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

И у нереляционных баз данных (NoSQL), и у систем управления реляционными базами данных (СУРБД) есть свои достоинства и недостатки. СУРБД позволяют гибко выполнять запросы к данным, однако запросы стоят довольно дорого и плохо масштабируются при возрастании трафика. Базы данных NoSQL позволяют эффективно выполнять запросы к данным ограниченным числом способов. Все остальные способы, как правило, стоят дорого и отличаются низкой скоростью выполнения.

  Реляционные базы данных Базы данных NoSQL
Модель данных Реляционная модель нормализует данные и преобразует их в таблицы, состоящие из строк и столбцов. Схема жестко задает таблицы, строки, столбцы, индексы, отношения между таблицами и прочие элементы базы данных. Для баз данных NoSQL схема, как правило, не используется. Для извлечения конкретных значений, наборов столбцов, частично структурированных файлов JSON, XML или прочих документов, содержащих соответствующие атрибуты элементов, обычно используется ключ секции.
Свойства ACID Традиционные СУРБД поддерживают набор свойств реляционной базы данных, обозначаемый как ACID: атомарность, непротиворечивость, изолированность и надежность. Атомарность означает «все или ничего»: транзакция выполняется полностью или не выполняется вообще. Непротиворечивость значит, что сразу по завершении транзакции данные должны соответствовать схеме базы данных. Изолированность требует, чтобы параллельные транзакции выполнялись отдельно друг от друга. Надежность подразумевает способность восстанавливаться после непредвиденного сбоя в системе или перебоя в подаче питания до последнего сохраненного состояния. Базы данных NoSQL зачастую пренебрегают некоторыми свойствами ACID традиционных СУРБД для обеспечения более гибкой модели данных с возможностью горизонтального масштабирования. Эти характеристики делают базы данных NoSQL превосходным выбором для тех случаев, в которых традиционные СУРБД сталкиваются с архитектурными трудностями, включая проблемы с производительностью и масштабируемостью, сложность эксплуатации, увеличение затрат на администрирование и поддержку.
Производительность Производительность главным образом зависит от дисковой подсистемы. Для обеспечения максимальной производительности требуется оптимизация запросов, индексов и структуры таблицы. Производительность обычно зависит от размера кластера базового аппаратного обеспечения, задержки сети и вызывающего приложения.
Масштабирование Проще всего выполнять вертикальное масштабирование при наличии быстрого аппаратного обеспечения. Для создания распределенной системы реляционных таблиц требуются дополнительные затраты. Рассчитаны на горизонтальное масштабирование с использованием распределенных кластеров недорогого аппаратного обеспечения для повышения производительности без увеличения задержек.
API Запросы на хранение и получение данных составляются на языке SQL. Их анализируют и выполняют СУРБД. Объектно-ориентированные API позволяют разработчикам приложений просто выполнять запись и извлечение структур данных, размещенных в памяти. Ключи секций позволяют приложениям осуществлять поиск пар «ключ-значение», наборов столбцов или частично структурированных документов, содержащих серийные объекты и атрибуты приложений.
Инструменты БД SQL обычно обладают богатым набором инструментов, позволяющих упростить разработку приложений на основе баз данных. Базы данных NoSQL обычно содержат инструменты для управления кластерами и масштабированием. Приложения являются основным интерфейсом для работы с базовыми данными.
15

Существует четыре популярных типа баз данных NoSQL: столбчатые, документные, графовые и хранилища пар «ключ-значение» в памяти. Различие между этими базами данных заключается главным образом в способах хранения и структурирования данных, а также доступа к ним. Разные типы баз данных оптимизированы для разных приложений и примеров использования. 

  1. Столбчатые базы данных оптимизированы для чтения и записи данных в виде столбцов, а не строк. Столбчатый подход к хранению таблиц баз данных имеет важное значение для производительности аналитических запросов, поскольку он значительно снижает общие требования к дисковым операциям ввода-вывода и снижает объем данных, которые требуется загружать с диска.
  2. Документные базы данных разработаны для хранения частично структурированных данных в виде документов, обычно в формате JSON или XML. В отличие от традиционных реляционных баз данных, каждый из документов NoSQL может обладать собственной схемой, что обеспечивает большую гибкость в упорядочивании и хранении данных приложения, а также сокращает объем хранилища для необязательных значений.
  3. Графовые базы данных хранят вершины и направленные связи, называемые ребрами. Графовыми могут быть и базы данных SQL, и базы данных NoSQL. Каждая вершина или ребро может обладать набором собственных свойств.
  4. Хранилища типа «ключ-значение» в памяти – это базы данных NoSQL, рассчитанные на нагрузки с большим количеством операций чтения (например, социальные сети, игры, сервисы обмена мультимедийными материалами и порталы вопросов и ответов) или нагрузки с повышенными требованиями к вычислительной мощности (например, сервисы рекомендаций). Кэширование в памяти позволяет увеличить производительность приложений за счет сохранения критически важных блоков данных в памяти для последующего доступа к ним с минимальными задержками.
SQL
MongoDB (NoSQL) DynamoDB (NoSQL) Cassandra (NoSQL) Couchbase (NoSQL)
Таблица Коллекция Таблица Таблица Корзина данных
Ряд Документ
Элемент Ряд Документ
Столбец
Поле Атрибут Столбец Поле
Первичный ключ
ObjectId
Первичный ключ Первичный ключ ID документа
Индекс Индекс Вторичный индекс Индекс
Индекс
Вид Вид Глобальный вторичный индекс Материализованный вид Вид
Вложенная таблица или объект
Встроенный документ Карта Карта Карта
Массив
Массив Список Список Список

Начать работу с Amazon DynamoDB очень просто. Руководство по началу работы поможет вам за несколько щелчков мышью создать свою первую таблицу DynamoDB.

Дополнительно можно загрузить техническое описание Рекомендации по миграции из СУРБД в Amazon DynamoDB, чтобы узнать о рекомендациях по миграции рабочих нагрузок из СУРБД в DynamoDB.

Начать работу с Amazon DynamoDB