Captura de dados de alterações com o Amazon DynamoDB
Muitas aplicações podem se beneficiar da capacidade de capturar alterações nos itens armazenados em uma tabela do DynamoDB no momento em que elas ocorrem. Veja a seguir alguns exemplos de casos de uso:
-
Uma aplicação móvel popular modifica os dados em uma tabela do DynamoDB a uma taxa de milhares de atualizações por segundo. Outra aplicação captura e armazena dados sobre essas atualizações, fornecendo métricas de uso quase em tempo real para a aplicação móvel.
-
Uma aplicação financeira modifica os dados do mercado de ações em uma tabela do DynamoDB. Diferentes aplicações executadas em paralelo acompanham essas mudanças em tempo real, calculam o valor em risco e reequilibram automaticamente as carteiras com base nos movimentos dos preços das ações.
-
Sensores em veículos de transporte e equipamentos industriais enviam dados para uma tabela do DynamoDB. Diferentes aplicações monitoram a performance e enviam alertas de mensagens quando um problema é detectado, preveem possíveis defeitos aplicando algoritmos de machine learning e compactam e arquivam dados no Amazon Simple Storage Service (Amazon S3).
-
Uma aplicação envia notificações automaticamente aos dispositivos móveis de todos os jogadores de um grupo assim que um deles carrega uma nova imagem.
-
Um novo cliente adiciona dados a uma tabela do DynamoDB. Esse evento invoca outra aplicação que envia um e-mail de boas-vindas ao novo cliente.
O DynamoDB oferece suporte a streaming de registros de captura de dados de alteração em nível de item em tempo quase real. Você pode criar aplicações que consomem esses fluxos e executam ações com base no conteúdo.
nota
Não há suporte para a adição de tags ao DynamoDB Streams e o uso de controle de acesso por atributo (ABAC) com o DynamoDB Streams.
O vídeo a seguir apresenta uma introdução sobre o conceito de captura de dados de alteração.
Tópicos
Opções de streaming para captura de dados de alteração
O DynamoDB oferece dois modelos de streaming para captura de dados de alteração: Kinesis Data Streams para DynamoDB e DynamoDB Streams.
Para ajudar você a escolher a solução certa para sua aplicação, a tabela a seguir resume os recursos de cada modelo de streaming.
Propriedades | Kinesis Data Streams para DynamoDB | DynamoDB Streams |
---|---|---|
Retenção de dados | Até 1 ano. | 24 horas |
Compatibilidade com a Kinesis Client Library (KCL) | Compatível com a KCL versões 1.X e 2.X. | Compatível com a KCL versão 1.X. |
Número de consumidores | Até 5 consumidores simultâneos por fragmento ou até 20 consumidores simultâneos por fragmento com fan-out aprimorado. | Até 2 consumidores simultâneos por fragmento. |
Cotas de throughput | Ilimitada. | Sujeito a cotas de throughput por tabela do DynamoDB e região da AWS. |
Registro de modelo de entrega | Modelo Pull via HTTP usando GetRecords e com fan-out aprimorado, o Kinesis Data Streams envia os registros por HTTP/2 usando SubscribeToShard. | Modelo Pull via HTTP usando GetRecords. |
Ordenação dos registos | O atributo timestamp em cada registro de fluxo pode ser usado para identificar a ordem real na qual as alterações ocorreram na tabela do DynamoDB. | Para cada item modificado em uma tabela do DynamoDB, os registros de fluxo aparecem na mesma sequência que as modificações reais no item. |
Registros duplicados | Registros duplicados podem aparecer ocasionalmente no fluxo. | Nenhum registro duplicado aparece no fluxo. |
Opções de processamento de fluxos | Processe registros de fluxo usando o AWS Lambda, o Amazon Managed Service for Apache Flink, Kinesis Data Firehose ou ETL de streaming do AWS Glue. | Processe registros de fluxo usando o AWS Lambda ou o adaptador do DynamoDB Streams Kinesis. |
Nível de durabilidade | Zonas de disponibilidade para fornecer failover automático sem interrupção. | Zonas de disponibilidade para fornecer failover automático sem interrupção. |
É possível habilitar ambos os modelos de streaming na mesma tabela do DynamoDB.
O vídeo a seguir aprofunda-se nas diferenças entre as duas opções.