DynamoDB: NoSQL без забот
Когда нужна молниеносная NoSQL-база без серверов — это DynamoDB.
DynamoDB — полностью управляемая NoSQL-база данных типа «ключ — значение» и «документ», работающая без серверов и масштабирующаяся автоматически.
Чем DynamoDB отличается от RDS
RDS — это привычные таблицы со строками, столбцами и SQL. DynamoDB устроена иначе: данные хранятся как элементы (items) в таблицах, но без жёсткой схемы столбцов и без JOIN-ов. Зато она даёт стабильно низкие задержки (единицы миллисекунд) на любом объёме данных и не требует управления серверами вообще.
Ключи: partition и sort
Главное в DynamoDB — первичный ключ. Он бывает простым (только partition key) или составным (partition key + sort key):
- Partition key — определяет, в какой «корзине» (партиции) хранить элемент. От его выбора зависит распределение нагрузки.
- Sort key — упорядочивает элементы внутри одной партиции, позволяя делать запросы по диапазону.
{
"TableName": "Orders",
"Item": {
"UserId": { "S": "user-42" },
"OrderId": { "S": "2026-06-22-001" },
"Total": { "N": "1990" },
"Status": { "S": "paid" }
}
}Здесь UserId — partition key, OrderId — sort key. Запрос «все заказы пользователя user-42» отработает мгновенно, потому что они лежат в одной партиции и отсортированы по ключу.
Когда что выбирать
| Нужно | Выбор |
| Сложные связи, JOIN, отчёты, транзакции | RDS (реляционная) |
| Простой доступ по ключу, огромный масштаб, минимальная задержка | DynamoDB (NoSQL) |
Как работает под капотом
DynamoDB размазывает данные по множеству физических разделов (партиций) на основе хеша от partition key. Запрос по ключу попадает сразу в нужную партицию, минуя перебор — отсюда постоянная скорость независимо от размера таблицы. Поэтому критично выбрать partition key с хорошим разбросом значений: если все запросы бьют в один ключ, образуется «горячая партиция» и упрётесь в её лимит. Данные автоматически реплицируются по нескольким AZ, а ёмкость можно отдать на откуп режиму on-demand, где вы платите только за реальные запросы.
Частые ошибки
- Тащить реляционную модель в DynamoDB. Здесь нет JOIN; схему данных проектируют под конкретные запросы заранее.
- Плохой partition key. Ключ с малым разбросом создаёт горячую партицию и упирается в лимиты.
- Брать DynamoDB ради «модно». Если нужны сложные отчёты и связи — реляционный RDS будет проще и удобнее.
Итог
- DynamoDB — управляемая NoSQL-база с постоянно низкой задержкой и автомасштабированием.
- Первичный ключ (partition + опционально sort) определяет хранение и скорость запросов.
- Выбирайте DynamoDB для простого доступа по ключу и масштаба; RDS — для связей, JOIN и отчётов.