Kinesis - Guia Completo

O Kinesis não é um único serviço — é uma família de quatro serviços.

Amazon Kinesis - Guia Completo (Pontos-Chave para o Exame DEA-C01)

Introducao

O Amazon Kinesis e um dos servicos que aparece com maior frequencia na secao Domain 1: Data Ingestion and Transformation (34%) do exame DEA-C01.

O Kinesis nao e um unico servico, mas sim um conjunto de servicos projetados para processamento de streaming em tempo real. O exame foca especialmente nas diferencas entre cada servico e na arquitetura do Kinesis Data Streams (KDS).

Este guia cobre os conceitos essenciais que voce precisa conhecer para se preparar para o exame.

---

Os quatro servicos do Kinesis em uma visao geral

O Kinesis e composto por quatro servicos distintos. Como cada um tem um proposito claramente diferente, o exame frequentemente apresenta questoes baseadas em cenarios onde voce deve escolher o servico correto.

| Servico | Funcao | Conceitos-chave | | --- | --- | --- | | Kinesis Data Streams (KDS) | Captura e processamento de dados em tempo real | Shards, processamento em tempo real | | Kinesis Data Firehose | Entrega automatica de dados para data stores | Escalamento automatico, carga de dados | | Kinesis Data Analytics | Analise de dados em streaming com SQL ou Flink | Analise em tempo real | | Kinesis Video Streams | Captura e processamento de streams de video | Analise de video |

Pontos-chave para o exame:

Voce precisa implementar logica de processamento personalizada → Kinesis Data Streams Voce precisa carregar dados automaticamente no S3 ou Redshift → Firehose Voce precisa analisar dados em streaming com SQL → Data Analytics

!Comparação dos 4 serviços do Kinesis

Arquitetura central do Kinesis Data Streams (Shards)

O conceito fundamental do Kinesis Data Streams e o Shard.

Todo o throughput e a escalabilidade sao determinados com base nos shards.

| Aspecto | Detalhe | | --- | --- | | Throughput de escrita por shard | 1 MB/seg ou 1.000 registros/seg | | Throughput de leitura por shard | 2 MB/seg | | Tamanho maximo do registro | 1 MB | | Retencao padrao | 24 horas | | Retencao maxima | 7 dias | | Garantia de ordenacao | Dentro de um shard |

O ponto-chave do exame aqui e como calcular o throughput.

Se o throughput for insuficiente, voce pode escalar adicionando mais shards.

---

Modos de servico: Provisioned vs On-Demand

O Kinesis Data Streams oferece dois modos de operacao.

| Modo | Caracteristicas | Caso de uso | | --- | --- | --- | | Provisioned | Voce especifica o numero de shards manualmente | Trafego previsivel | | On-Demand | A capacidade se ajusta automaticamente | Trafego imprevisivel |

No exame, a resposta correta e tipicamente determinada pelo padrao de trafego.

O trafego e constante → Provisioned O trafego flutua significativamente → On-Demand

---

Producers: como os dados entram

As entidades que enviam dados para um stream sao chamadas de Producers.

Existem tres abordagens principais.

| Ferramenta | Caracteristicas | Caso de uso | | --- | --- | --- | | AWS SDK | Chamadas diretas a API | Transmissao basica de dados | | Kinesis Producer Library (KPL) | Transmissao de alto throughput | Streaming em larga escala | | Kinesis Agent | Transmissao automatica de arquivos de log | Coleta de logs de servidor |

Dois cenarios aparecem com frequencia no exame:

Processamento de dados de streaming em larga escala → KPL Coleta automatica de logs em servidores Linux → Kinesis Agent

---

Consumers: como os dados sao lidos

As aplicacoes que leem dados do stream sao chamadas de Consumers.

A abordagem basica utiliza a API GetRecords.

| Aspecto | Detalhe | | --- | --- | | Limite de chamadas | 5 chamadas/seg | | Tamanho maximo de leitura | 10 MB | | Throughput | 2 MB/s por shard |

Quando varios consumers leem dados simultaneamente, eles compartilham o throughput.

Para resolver esse problema, voce pode usar o recurso Enhanced Fan-Out.

Com o Enhanced Fan-Out:

Cada consumer recebe throughput dedicado (2 MB/s) Multiplas aplicacoes podem ler o stream simultaneamente sem degradacao de desempenho

---

KCL (Kinesis Client Library)

Quando multiplas instancias de aplicacao precisam processar um stream, utiliza-se o KCL.

As principais funcoes do KCL sao as seguintes.

| Funcao | Descricao | | --- | --- | | Processamento distribuido | Multiplos workers processam em paralelo | | Gerenciamento de checkpoints | Salva a posicao de processamento | | Recuperacao de falhas | Retoma a partir do ultimo checkpoint |

As informacoes de checkpoint sao armazenadas no Amazon DynamoDB.

O ponto-chave do exame aqui e a relacao com o custo.

Checkpoints frequentes aumentam os custos do DynamoDB Checkpoints pouco frequentes significam mais dados para reprocessar apos uma falha

---

Integracao do Lambda com o Kinesis

O Kinesis e muito frequentemente usado junto com o AWS Lambda.

O Lambda faz polling automatico do stream e processa os novos dados.

| Funcao | Descricao | | --- | --- | | Polling automatico | O Lambda le dados do stream | | Escalamento automatico | O Lambda escala com base no numero de shards | | Processamento paralelo | Usa Parallelization Factor |

As duas principais formas de aumentar o throughput sao:

Aumentar o Parallelization Factor Habilitar o Enhanced Fan-Out

---

Divisao e fusao de shards

Quando o trafego aumenta ou diminui, voce pode ajustar os shards de acordo.

| Operacao | Descricao | | --- | --- | | Splitting | Aumenta o numero de shards | | Merging | Reduz o numero de shards |

Apos dividir um shard, voce deve prestar atencao a ordem de processamento dos dados.

Voltar à lista do blog