Usando o DynamoDB para registrar a atividade do usuário

5

Estou desenvolvendo uma plataforma de freelancing para determinados profissionais. Eu estava pensando em utilizar o AWS DynamoDB para registrar a atividade do usuário (como postar um trabalho, editar um trabalho, etc.).

Campos seriam

user_id | ip_address | timestamp | data

Eu estaria consultando o DynamoDB para as seguintes informações:

  1. Log da atividade de determinado usuário.
  2. Log de todas as atividades do usuário realizadas em um determinado dia.

E as informações terão que ser salvas e acessadas por um longo tempo (para sempre?).

Quão bom seria o DynamoDB, para esse tipo de caso de uso?

    
por kapeels 05.09.2012 / 15:59

1 resposta

7

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'

    
por 05.09.2012 / 16:30