Pessoal, estou com um projeto de plataforma de streaming e gostaria de armazenar cada acesso que um vídeo teve, e então contabilizar estas visualizações em um período (mensal ou semanal). As "tuplas" no DynamoDB terão mais ou menos o seguinte formato:
{
"view_id": "1139-abcd-9873-cyzv"
"video_id": 2457,
"date_viewed": "2023-06-30T20:23:59"
}
O meu objetivo é acumular esses documentos e então filtrá-los para contabilizar quantas visualizações (fazer um SELECT COUNT com o Query) que cada vídeo teve. Neste caso, pensei na seguinte configuração de chaves e índice:
chave de partição: video_id chave de classificação: view_id índice secundário global: date_viewed
Com isto, imaginando que essa tabela ocupe 1 milhão de registros em pouco tempo, um COUNT performaria bem? Levando em consideração que irei fazer uma consulta do tipo "contar quantas visualizações um video_id X teve com o date_viewed entre 01/06/23 e 30/06/23.
OBS: também pensei em definir a ch de partição como video_id e ch de classificação como view_id, mas pode acontecer de duas ou mais pessoas assistirem o mesmo vídeo no mesmo segundo, o que faria duplicar a chave primária e então iria manter apenas um registro, correto?