33 lines
6.0 KiB
Markdown
33 lines
6.0 KiB
Markdown
---
|
||
title: Amazon DynamoDB
|
||
localeTitle: Amazon DynamoDB
|
||
--- ## Amazon DynamoDB
|
||
|
||
Amazon DynamoDB - это сервис от Amazon Web Services (AWS), который предлагает полностью управляемую базу данных NoSQL. Его основной особенностью является способность масштабироваться бесконечно в зависимости от требуемой рабочей нагрузки. Он полностью управляется, пользователю не нужно беспокоиться о базовой инфраструктуре, например о масштабировании вверх или вниз в зависимости от рабочей нагрузки. Он поддерживает хранение данных на основе ключей и документов.
|
||
|
||
Основными компонентами службы DynamoDB являются:
|
||
|
||
* **Таблица** : DynamoDB хранит данные в таблицах, которые похожи на реляционные базы данных. Главное отличие состоит в том, что она схематична, она не имеет фиксированной структуры с момента ее создания.
|
||
|
||
* **Элемент** : Элемент - это данные, хранящиеся в таблице, а таблица может иметь неопределенное количество элементов. По сравнению с реляционной базой, элемент будет представлять собой строку в таблице.
|
||
|
||
* **Атрибут** : элемент имеет атрибуты, похожие на столбцы в реляционных базах данных. Тем не менее, поскольку DynamoDB является схематичным, элемент не должен иметь одинаковые атрибуты. Более того, атрибуты могут быть одним значением или JSON-подобным документом с другими полями, которые также могут быть запрошены.
|
||
|
||
|
||
Хотя DynamoDB не нуждается в фиксированной структуре для своих таблиц, для этого необходим первичный ключ для каждого элемента таблицы. Первичный ключ, как и в реляционных базах данных, должен быть уникальным. Первичный ключ может быть простым или составленным. Простой первичный ключ состоит только из ключа раздела. Скомпилированный первичный ключ, в свою очередь, состоит из ключа раздела и ключа сортировки. В простом первичном ключе ключ раздела должен быть уникальным, а в скомментированном ключе ключ раздела может быть равен, но ключ сортировки должен быть другим.
|
||
|
||
Концепция ключа раздела и ключа сортировки очень важна, поскольку она связана с тем, как DynamoDB хранит данные. DynamoDB хранит данные в разделах, а ключ раздела - это ключ для раздела. DynamoDB использует значение в ключе раздела в качестве входа хеш-функции, чтобы знать, где он хранит данные. В случае сложенного ключа все элементы с одним и тем же ключом раздела хранятся в одном разделе, но сортируются по типу сортировки.
|
||
|
||
Amazon DynamoDB также имеет высокую доступность. Он реплицирует данные на многие серверы в разных зонах доступности в регионе. Зоны доступности - это центры обработки данных, физически разделенные безопасным расстоянием. В случае бедствия на одном сервере другие серверы реплицируются на безопасном расстоянии и нетронутыми.
|
||
|
||
Благодаря простоте настройки и бесконечной емкости для масштабирования это хорошо для многих случаев использования. Он лучше всего подходит для сценариев, где требуемая нагрузка неизвестна или появляются внезапные пики. Некоторые из вариантов использования - это хранилище данных для серверных приложений, микросервисов, мобильных back-end, игр, IoT и других.
|
||
|
||
### Ресурсы:
|
||
|
||
* [Базы данных ключевых значений](https://guide.freecodecamp.org/computer-science/databases/key-value-databases)
|
||
* [Реляционные базы данных](https://guide.freecodecamp.org/computer-science/databases/relational-databases)
|
||
|
||
### Дополнительная информация:
|
||
|
||
* «Что такое Amazon DynamoDB?» из [документации AWS DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html?shortFooter=true)
|
||
* «Основные компоненты DynamoDB» из [документации AWS DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html?shortFooter=true) |