O DynamoDB destina-se à recuperação de alto desempenho. Ele usa internamente a unidade SSD para que o preço de armazenamento do DynamoDB possa ser um pouco caro para um armazenamento de dados "para sempre" ao chegar a volumes altos.
Dito isto, seu caso de uso parece se encaixar perfeitamente no DynamoDB. Se você só precisa do que disse, recomendo este esquema:
-
hash_key = <user_id>:YYYY-MM-DD
-
range_key = full_ISO_8601_timestamp
-
ip_address
-
data
ISO_8601 é sempre uma boa ideia se você precisar ordenar as datas.
Sugiro acrescentar a data ao user_id
para facilitar as consultas e manter as coisas logicamente agrupadas, mas isso complexificará as consultas mais avançadas. Isso pode ser evitado usando BETWEEN
filter de '' 'Consulta'