AWS — DYNAMO DB

Бессерверная по своей природе, не требует создания инфраструктуры.

DynamoDB — это полностью управляемая, масштабируемая через Интернет, легко администрируемая и экономически эффективная база данных NoSQL.

DynamoDB предлагает встроенную защиту, непрерывное резервное копирование, автоматическую репликацию в нескольких регионах, кэширование в памяти и средства экспорта данных.
Данные организованы в таблицы, которые содержат элементы. Каждый элемент содержит набор пар ключ-значение атрибутов. Есть два специальных типа атрибутов: primary-key, который работает аналогично ID элемента, и sort-key, который позволяет упорядочить элементы.

Dynamo поддерживает вторичные индексы. Их можно использовать для ссылок и упорядочивания элементов по различным первичным ключам и ключам сортировки. Это бессхемная база данных, в которой элементы могут иметь различные наборы атрибутов. Это позволяет создавать разреженные индексы: состоящие только из элементов, содержащих определенный атрибут.

DynamoDB может обрабатывать более 10 триллионов запросов в день и может поддерживать пики более 20 миллионов запросов в секунду.

Основные концепции DynamoDB

Типы данных
DynamoDB поддерживает различные типы данных для атрибутов элемента, которые в основном можно разделить на следующие категории:

Скалярные типы : Число, Строка, Двоичные, Булевы и Null.
Типы документов : Список и Карта
Типы множеств : Числовой набор, Строковый набор и Двоичный набор.

Таблица: как коллекция, которая может содержать практически бесконечное количество элементов, она может иметь вторичные индексы, связанные с таблицей.

Вторичный индекс: дублирует элементы таблицы, используя другой первичный ключ и ключ сортировки.

Элемент: самая базовая единица в Dynamo, она содержит атрибуты данных, структурированные в JSON

Атрибут: пара ключ-значение, которая содержит информационные данные об элементе в таблице базы данных

Первичный ключ: специальная форма атрибута, которая используется для ссылки на элементы, аналогично ID элемента

Сортировочный ключ: другая специальная форма атрибута, которая используется для упорядочивания элементов в различном порядке сортировки.

Потоки: постоянный поток изменяющих состояние операций, выполняемых над таблицей.

Запрос: операция получения определенного элемента (или набора элементов)

Сканирование: операция сканирования всей таблицы или ее части

Фильтр: правила, применяемые после выполнения запроса или сканирования, но до возвращения результатов запросчику.

Основные возможности DynamoDB

Автомасштабирование

Вероятно, это самая важная особенность Dynamodb, она обеспечивает автоматическое масштабирование пропускной способности и хранения данных в зависимости от производительности или использования вашего приложения. В обычном сервере баз данных системный администратор заботится о масштабировании, когда приложение сталкивается с более высоким, чем обычно, трафиком. С DynamoDB вы можете создавать таблицы базы данных, которые могут хранить и извлекать любой объем данных, а масштабирование автоматически управляется AWS. Это включает в себя увеличение масштаба для более высокого трафика и уменьшение масштаба для более низкого трафика, поэтому вы платите только за то, что используете.

Модели данных

DynamoDB поддерживает как ключевые, так и документальные модели данных. Это позволяет вам иметь гибкую схему, так что каждая строка может иметь любое количество столбцов в любой момент времени. Это очень важно для растущих компаний с постоянно меняющимися требованиями.

Переопределение схемы базы данных — это кошмар, через который проходят многие разработчики/администраторы баз данных в растущих приложениях. Гибкость модели данных спасает, предлагая надежное решение базы данных как для малого, так и для крупного бизнеса.

Репликация

AWS заботится о репликации таблиц DynamoDB автоматически на основе выбранных вами регионов AWS (кросс-региональная репликация). Даже распределенные приложения могут иметь производительность чтения и записи с использованием DynamoDB, исчисляемую миллисекундами.

При наличии репликации вам не нужно беспокоиться о доступности данных. В случае отказа первичного источника вы можете легко получить доступ к данным из вторичного резерва, что снижает вероятность простоя приложения.

Резервное копирование и восстановление

DynamoDB обеспечивает резервное копирование по требованию для ваших таблиц, которое можно включить в консоли AWS. Вы также можете включить автоматическое резервное копирование и архивирование данных в другие решения AWS, например S3.

DynamoDB также предлагает восстановление в режиме «точка-время». Это защищает ваши данные от случайных операций записи/удаления. С помощью восстановления по времени вы можете восстановить свою базу данных в любой момент времени за последние 35 дней. Восстановление по времени достигается путем хранения инкрементных резервных копий вашей базы данных, которые автоматически управляются AWS.

Безопасность

DynamoDB по умолчанию шифрует данные в состоянии покоя, а также при передаче, используя ключи, хранящиеся в AWS Key Management Service (или ключи, предоставленные клиентом). Благодаря шифрованию вы можете создавать приложения, чувствительные к безопасности, которые отвечают нормативным требованиям и требованиям регуляторов. DynamoDB также обеспечивает контроль доступа с помощью ролей AWS IAM.

Мониторинг

Мониторинг имеет решающее значение для любого критически важного для бизнеса приложения. Он помогает поддерживать надежность, а также уведомлять персонал в случае возникновения события или сбоя. AWS предлагает подробные инструменты мониторинга, такие как CloudWatch Logs, CloudWatch Events и CloudTrail Logs, которые помогут вам отслеживать, уведомлять и отлаживать все типы событий в DynamoDB. Вы также можете установить пользовательские триггеры на основе таких показателей, как системные ошибки, использование емкости и т.д.

Теперь давайте сравним DynamoDB с двумя популярными альтернативами баз данных — MySQL и MongoDB.

DynamoDB против MySQL

Очевидно, что между MySQL и Mongo DB существует большая разница, поскольку MySQL — это реляционная база данных. С точки зрения преимуществ, я думаю, что MySQL ограничена из-за требования иметь схему, прежде чем вы сможете начать работу с данными.

MySQL также отлично подходит для многих случаев использования. Ее часто называют «самой популярной в мире базой данных с открытым исходным кодом», и она обеспечивает быстрый, многопоточный, многопользовательский и надежный сервер баз данных SQL (Structured Query Language).

Но будучи базой данных NoSQL, DynamoDB обеспечивает гораздо большую гибкость в плане моделирования данных. Несмотря на то, что AWS предоставляет управляемые услуги для SQL и других реляционных баз данных, DynamoDB — это база данных, разработанная AWS, а не просто размещенная база данных. Поэтому она предлагает больше улучшений и возможностей, которых нет у MySQL и других реляционных баз данных.

DynamoDB vs MongoDB

Dynamo DB и MongoDB тесно связаны друг с другом, поскольку обе являются базами данных NoSQL. Но поскольку DynamoDB создана и поддерживается AWS, она предлагает гораздо больше возможностей и интеграций, особенно с другими сервисами Amazon, такими как S3, по сравнению с MongoDB.

Если бы я руководил растущей компанией, я бы предпочел использовать DynamoDB исключительно из-за ее масштабируемости и возможности межрегиональной репликации. AWS не предлагает управляемую службу MongoDB, но если вы ищете такую службу, то MongoDB Atlas будет отличной альтернативой.

Еще одной важной особенностью DynamoDB по сравнению с MongoDB является то, что MongoDB по умолчанию не является безопасной, и вам придется настраивать безопасность самостоятельно. DynamoDB безопасна по умолчанию, поэтому она может быть лучшим вариантом, если безопасность является для вас решающим фактором.

TLDR

AWS DynamoDB — это полностью управляемая база данных NoSQL, которая может масштабироваться и расширяться в зависимости от потребностей. AWS берет на себя заботу о типичных функциях, включая обновление программного обеспечения, репликацию и обслуживание. DynamoDB также предлагает шифрование в состоянии покоя, моментальные снимки в режиме реального времени и мощные возможности мониторинга. Одним словом, это отличный вариант, если вы создаете приложение, которому нужна высокопроизводительная масштабируемая база данных NoSQL.

Дополнительные возможности

Потоки DynamoDB позволяют выполнять захват данных об изменениях (CDC) в таблице DynamoDB и реагировать на обновления в таблице с помощью функций Lambda. Вы также можете передавать эти изменения в поток данных Kinesis.
Транзакции позволяют выполнять операции «все или ничего» над различными элементами.
Глобальные таблицы DynamoDB — это функция, позволяющая создавать многорегиональные многомастерные установки по всему миру с минимальной задержкой.
PartiQL — это язык запросов, разработанный AWS, который похож на SQL и может использоваться в различных предложениях NoSQL.
DAX или DynamoDB Accelerator — это кэш для записи в память перед DynamoDB, если вам нужно микросекундное время отклика.

Сравнительный анализ между Amazon DynamoDB и другими базами данных

По сравнению с другими транзакционными базами данных, такими как Oracle, MSSQL или PostgreSQL, AWS DynamoDB является бессхемной, то есть она не требует соответствия жесткой схеме типов данных, таблиц и т.д.. Это, однако, также является компромиссом: ключевые преимущества, такие как стабильно высокая производительность и миллисекундная задержка, уступают свойствам ACID (атомарность, согласованность, изоляция и долговечность), поддерживаемым реляционной базой данных.

По сравнению с другими базами данных NoSQL, AWS DynamoDB поддерживает такие модели данных, как пара ключ-значение (см. рисунок ниже), и документальные структуры данных, такие как JSON, XML и HTML. Однако в DynamoDB отсутствует поддержка столбчатых наборов данных, как в Cassandra и HBase, и графовых моделей, как в Orient DB.

Оцените статью
Procodings.ru
Добавить комментарий