

# Captura de dados de alterações com o Amazon DynamoDB
<a name="streamsmain"></a>

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)](access-control-resource-based.md) com o DynamoDB Streams.

O vídeo a seguir apresenta uma introdução sobre o conceito de captura de dados de alteração.

[![AWS Videos](http://img.youtube.com/vi/VVv_-mZ5Ge8/0.jpg)](http://www.youtube.com/watch?v=VVv_-mZ5Ge8)


**Topics**
+ [Opções de streaming para captura de dados de alteração](#streamsmain.choose)
+ [Use o Kinesis Data Streams para capturar alterações do DynamoDB](kds.md)
+ [Capturar dados de alterações para o DynamoDB Streams](Streams.md)

## Opções de streaming para captura de dados de alteração
<a name="streamsmain.choose"></a>

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](https://docs.aws.amazon.com/streams/latest/dev/kinesis-extended-retention.html). | 24 horas | 
| Compatibilidade com a Kinesis Client Library (KCL | Compatível com a [KCL versões 1.x, 2.x e 3.x](https://docs.aws.amazon.com/streams/latest/dev/custom-kcl-consumers.html). | Compatível com a [KCL versões 1.X e 2.X](https://docs.aws.amazon.com/streams/latest/dev/custom-kcl-consumers.html). | 
| Número de consumidores | Até [5 consumidores simultâneos](https://docs.aws.amazon.com/streams/latest/dev/service-sizes-and-limits.html) por fragmento ou até 20 consumidores simultâneos por fragmento com [fan-out aprimorado](https://docs.aws.amazon.com/streams/latest/dev/enhanced-consumers.html).  | Até [2 consumidores simultâneos](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html#limits-dynamodb-streams) por fragmento. | 
| Cotas de throughput | Ilimitada. | Sujeito a [cotas](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html#limits-dynamodb-streams) de throughput por tabela do DynamoDB e região da AWS. | 
| Registro de modelo de entrega | Modelo Pull via HTTP usando [GetRecords](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetRecords.html) e com [fan-out aprimorado](https://docs.aws.amazon.com/streams/latest/dev/enhanced-consumers.html), o Kinesis Data Streams envia os registros por HTTP/2 usando [SubscribeToShard](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_SubscribeToShard.html). | Modelo Pull via HTTP usando [GetRecords](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetRecords.html). | 
| 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](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html), o [Amazon Managed Service for Apache Flink](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/what-is.html), [Kinesis Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) ou [ETL de streaming do AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/add-job-streaming.html).  | Processe registros de fluxo usando o [AWS Lambda](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.Lambda.html) ou o [adaptador do DynamoDB Streams Kinesis](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.KCLAdapter.html). | 
| Nível de durabilidade | [Zonas de disponibilidade](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/disaster-recovery-resiliency.html) para fornecer failover automático sem interrupção. | [Zonas de disponibilidade](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/disaster-recovery-resiliency.html) 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.

[![AWS Videos](http://img.youtube.com/vi/UgG17Wh2y0g/0.jpg)](http://www.youtube.com/watch?v=UgG17Wh2y0g)
