W jaki sposób osiąga się agregację za pomocą dynamodb? Mongodb i couchbase mają ograniczoną obsługę map.Jak przeprowadzić podstawową agregację z Dynamodb?
Powiedzmy, że budujemy blog technologiczny, na którym użytkownicy mogą publikować artykuły. I powiedz, że artykuły mogą być oznaczone.
user
{
id : 1235,
name : "John",
...
}
article
{
id : 789,
title: "dynamodb use cases",
author : 12345 //userid
tags : ["dynamodb","aws","nosql","document database"]
}
W interfejsie użytkownika chcemy pokazać aktualne tagi użytkownika i odpowiednią liczbę.
Jak uzyskać następujące agregacje?
{
userid : 12,
tag_stats:{
"dynamodb" : 3,
"nosql" : 8
}
}
Będziemy dostarczać te dane za pośrednictwem interfejsu API odpoczynku i będzie on często wywoływany. Podobnie jak te informacje są wyświetlane na stronie głównej aplikacji.
- Potrafię wyodrębnić wszystkie dokumenty i wykonać agregację na poziomie aplikacji. Ale czuję, że moje jednostki pojemności odczytu zostaną wyczerpane.
- Można używać narzędzi takich jak EMR, redshift, bigquery, aws lambda. Ale myślę, że są one przeznaczone do celów przechowywania danych.
Chciałbym poznać inne i lepsze sposoby osiągnięcia tego samego. W jaki sposób osoby uzyskujące dynamiczne proste zapytania, takie jak te, wybrały dynamodb jako podstawowy magazyn danych, biorąc pod uwagę koszt i czas reakcji.