Почему DynamoDB не поддерживает простые агрегации так же, как их поддерживает mongoDB?
Исходя из моих, по общему признанию, ограниченных знаний о базах данных NoSQL, я бы подумал, что будет гораздо эффективнее выполнять агрегацию в БД NoSQL, чем в традиционной RDS, из-за распределенной природы этихбазы данных.
Конечно, более эффективно выполнять агрегацию параллельно на небольших порциях данных, когда главный осколок выполняет окончательное агрегирование.Вместо того, чтобы на RDS, где одна машина выполняет операцию над всем набором данных
Я понимаю, что вы все еще можете выполнять агрегирование на стороне клиента.Но это кажется гораздо менее эффективным, и для больших наборов данных вы можете отправлять очень большие объемы ненужных данных обратно вашему клиенту
Так почему же DynamoDB не поддерживает простые агрегации?Я что-то здесь упускаю?Действительно ли эти операции лучше подходят для RDS?
Редактировать
Чтобы было ясно, я понимаю, что объединение таблиц становится гораздо более проблематичным в распределенных базах данных.Но, насколько я вижу, те же проблемы не относятся к агрегатам
Например, в приведенном ниже запросе мы объединяем таблицу users с таблицей emails.Этот запрос намного эффективнее, если все данные находятся на одном узле, поскольку нам не нужно начинать принимать пользователей с одного узла и проверять, можем ли мы присоединить их к электронным письмам на другом узле
SELECT * FROM users u INNER JOIN emails e ON u.user_id = e.user_id
Однако в приведенном ниже запросе агрегации данные могут быть распределены по сотням узлов.Запрос может быть эффективно обработан на всех узлах, и тогда конечный результат будет, по сути, суммой подзапросов.По сути, это идея карты сокращения парадигмы
SELECT AVG(age) FROM users GROUP BY nationality