Разница между AWS DynamoDB и AWS DocumentDB(недавно запущенный сервис)?
AWS недавно запустил новый сервис DocumentDB, аналогичный интерфейсу MongoDB.
В чем разница между сервисами AWS DynamoDB и DocumentDB?
Какой сервис имеет лучшую производительность?
1 ответ
Основным отличием является то, что DocumentDB является промежуточным этапом между MongoDB и DynamoDB.
DynamoDB - это полностью управляемый масштабируемый сервис, в котором вы устанавливаете верхний предел его потенциала.
DocumentDB немного сложнее, и вам нужно выбрать количество экземпляров для кластера и размеры экземпляров. Это означает, что вам нужно следить за их использованием / производительностью, но не за пределами MongoDB.
MongoDB будет наиболее гибким, но также потребует наибольшего технического обслуживания.
Все они хороши для производительности в зависимости от приложения, но это зависит от того, насколько вы хотите гибко со стоимостью дополнительного обслуживания.
Другим фактором является модель ценообразования. Как MongoDB (Atlas), так и DocumentDB вы платите в час (плюс использование для DocumentDB). DynamoDB вы можете оплатить на основе предоставленных ресурсов или по требованию (платите за то, что вы используете).
DynamoDB и DocumentDB - это две услуги, предлагаемые AWS, которые отличаются во многих отношениях. Поэтому, прежде чем переходить к любому из них, я хотел бы, чтобы вы в деталях поняли разницу между ними, чтобы вы могли решить, какой вариант лучше всего подходит для вашего случая использования. Ниже я попытался уточнить их разницу и объяснил, как перейти на них.
Разница между DocumentDB и DynamoDB
Amazon DynamoDB - это полностью управляемый сервис баз данных NoSQL. Это обеспечивает быструю и предсказуемую производительность с масштабируемостью. Вы можете использовать Amazon DynamoDB для создания таблицы базы данных, которая может хранить и извлекать любой объем данных и обслуживать любой уровень трафика запросов. База данных документов основана на базе данных документов с открытым исходным кодом Mongo DB и ведущей базе данных NoSQL. База данных документов основана на базе данных Mongo с открытым исходным кодом и представляет собой базу данных документов, предназначенную для меньшего количества разработки и масштабирования.
DynamoDB использует таблицы, элементы и атрибуты в качестве основных компонентов, с которыми вы работаете. Таблица представляет собой набор элементов, а каждый элемент представляет собой набор атрибутов. DynamoDB использует первичные ключи для уникальной идентификации каждого элемента в таблице и вторичных индексов для обеспечения большей гибкости запросов. Document DB использует JSON-подобные документы для хранения данных без схемы. В БД документов коллекции документов не требуют предварительно определенной структуры, и столбцы могут различаться для разных документов. Документ БД имеет много функций реляционной базы данных, включая выразительный язык запросов и строгую согласованность. Так как MongoDB/Document DB не содержит схем, вы можете создавать документы без необходимости сначала создавать структуру для документа.
В DynamoDB вы можете создавать и использовать так называемый вторичный индекс для тех же целей, что и в RDBMS. Когда вы создаете вторичный индекс, вы должны указать его ключевые атрибуты, и после его создания вы можете запросить его или отсканировать его, как таблицу. DynamoDB не имеет оптимизатора запросов, поэтому вторичный индекс используется только при запросах или сканировании. Индексы являются предпочтительными в Document DB. Если индекс отсутствует, каждый документ в коллекции должен быть найден для выбора документов, запрашиваемых запросом. Это может замедлить время чтения.
DynamoDB популярен в игровой индустрии, а также в индустрии вещей (IoT).
База данных документов - это тип нереляционной базы данных, предназначенный для хранения полуструктурированных данных в виде документов. Базы данных документов интуитивно понятны для разработчиков, поскольку данные на уровне приложения обычно представлены в виде документа JSON. Разработчики могут сохранять данные, используя тот же формат модели документа, который они используют в своем коде приложения. В базе данных документов каждый документ может иметь одинаковую или разную структуру данных, и каждый документ имеет самоописание - включая, возможно, уникальную схему - и не обязательно зависит от какого-либо другого документа. Документы сгруппированы в "коллекции", которые служат для целей, аналогичных таблице в реляционной базе данных.
БД ДОКУМЕНТА AWS:
Amazon DocumentDB (с совместимостью с MongoDB) - это быстрый, масштабируемый, высокодоступный и полностью управляемый сервис базы данных документов, который поддерживает рабочие нагрузки MongoDB. Разработчики могут использовать один и тот же код приложения MongoDB, драйверы и инструменты для запуска, управления и масштабирования рабочих нагрузок в Amazon DocumentDB и наслаждаться улучшенной производительностью, масштабируемостью и доступностью, не беспокоясь об управлении базовой инфраструктурой.
AWS Dynamo DB:
Amazon DynamoDB - это нереляционная база данных, которая обеспечивает надежную производительность в любом масштабе. Это полностью управляемая, многообластная, многоузловая база данных, которая обеспечивает постоянную задержку в несколько миллисекунд и обеспечивает встроенную защиту, резервное копирование и восстановление, а также кэширование в памяти. DynamoDB поддерживает собственный JSON, поэтому вы можете записывать документы JSON непосредственно в таблицы DynamoDB. С максимальным размером элемента 400 КБ DynamoDB позволяет хранить большие документы JSON и вложенные объекты в одной транзакции.
Кроме того, для сравнения Dynamo DB с Document DB вы можете просто сравнить Dynamo DB с MongoDB, поскольку Document DB основана на MongoDB.
1) Amazon DynamoDB - это полностью управляемый сервис баз данных NoSQL. Это обеспечивает быструю и предсказуемую производительность с масштабируемостью. Вы можете использовать Amazon DynamoDB для создания таблицы базы данных, которая может хранить и извлекать любой объем данных и обслуживать любой уровень трафика запросов.
База данных документов основана на базе данных документов с открытым исходным кодом Mongo DB и ведущей базе данных NoSQL. База данных документов основана на базе данных Mongo с открытым исходным кодом и представляет собой базу данных документов, предназначенную для меньшего количества разработки и масштабирования.
2) DynamoDB использует таблицы, элементы и атрибуты в качестве основных компонентов, с которыми вы работаете. Таблица представляет собой набор элементов, а каждый элемент представляет собой набор атрибутов. DynamoDB использует первичные ключи для уникальной идентификации каждого элемента в таблице и вторичных индексов для обеспечения большей гибкости запросов.
MongoDB / Document DB использует JSON-подобные документы для хранения данных без схемы. В БД документов коллекции документов не требуют предварительно определенной структуры, и столбцы могут различаться для разных документов. Документ БД имеет много функций реляционной базы данных, включая выразительный язык запросов и строгую согласованность. Так как MongoDB / Document DB не содержит схем, вы можете создавать документы без необходимости сначала создавать структуру для документа.
3) В DynamoDB вы можете создавать и использовать так называемый вторичный индекс для тех же целей, что и в RDBMS. Когда вы создаете вторичный индекс, вы должны указать его ключевые атрибуты, и после его создания вы можете запросить его или отсканировать его, как таблицу. DynamoDB не имеет оптимизатора запросов, поэтому вторичный индекс используется только при запросах или сканировании.
Индексы являются предпочтительными в MongoDB/Document DB. Если индекс отсутствует, каждый документ в коллекции должен быть найден для выбора документов, запрашиваемых запросом. Это может замедлить время чтения.
4) DynamoDB популярен как в игровой индустрии, так и в индустрии Интернета вещей (IoT).
Подводя итог, можно сказать, что Document DB может быть хорошим выбором, если вам нужна масштабируемость и кэширование для аналитики в реальном времени; однако он не предназначен для транзакционных данных (системы учета и т. д.). БД документов может использоваться для мобильных приложений, управления контентом, аналитики в реальном времени и приложений для IoT. Если у вас есть случай без четкого определения схемы, DocumentDB может быть хорошим выбором.
Что касается лучшей производительности между сервисами AWS DynamoDB и DocumentDB, то она полностью зависит от типа рабочей нагрузки и задействованных данных, поэтому мы не можем выбирать между сервисами на основе производительности, не зная фактического варианта использования и типа данных. В дальнейшем я предлагаю вам протестировать сервисы AWS DynamoDB и DocumentDB и на его основе решить, какой сервис лучше всего подходит для вашего варианта использования и обеспечивает более высокую производительность.