O Amazon Kinesis é um serviço totalmente gerenciado para processamento em tempo real de dados de streaming em altíssima escala. Você pode configurar centenas de milhares de produtores de dados que colocam dados continuamente em um stream do Amazon Kinesis. Por exemplo, dados de clickstreams de websites, logs de aplicações e feeds de mídia social. Em menos de um segundo, os dados estarão disponíveis para suas aplicações do Amazon Kinesis para leitura e processamento a partir do stream.

No diagrama de arquitetura a seguir, o Amazon Kinesis é usado como gateway de uma solução de big data. Dados de várias origens são colocados em um stream do Amazon Kinesis e consumidos por diferentes aplicações do Amazon Kinesis. Neste exemplo, uma aplicação (em amarelo) está executando um painel em tempo real sobre os dados de streaming. Outra aplicação (em vermelho) realiza uma agregação simples e emite os dados processados ​​para o Amazon S3. Os dados do Amazon S3 passam por processamento adicional e são armazenados no Amazon Redshift para a realização de análises complexas. A terceira aplicação (em verde) emite dados brutos para o Amazon S3, que depois são arquivados no Amazon Glacier em um armazenamento de longo prazo mais econômico. Note que todos os três pipelines de processamento de dados estão acontecendo simultaneamente e em paralelo. O Amazon Kinesis comporta o número de consumidores de stream de dados exigido pela sua solução, sem comprometer o desempenho.

Comece a usar a AWS gratuitamente

Crie uma conta gratuita
Ou faça login no console

O fragmento é a unidade básica de taxa de transferência de um stream do Amazon Kinesis. Um fragmento fornece uma capacidade de 1 MB/s de entrada de dados e 2 MB/s de saída de dados. Um fragmento pode suportar até 1.000 registros PUT por segundo. Você especificará o número de fragmentos necessários ao criar um stream. Por exemplo, você pode criar um stream com dois fragmentos. Esse stream tem uma taxa de transferência de 2 MB/s de entrada de dados e de 4 MB/s de saída de dados, e permite até 2.000 registros de PUT por segundo. Você pode adicionar ou remover fragmentos dinamicamente do seu stream do conforme sua taxa de transferência de dados muda por meio da refragmentação.

Um registro é a unidade de dados armazenada em um stream do Amazon Kinesis. Um registro é composto por um número de sequência, uma chave de partição e um blob de dados. Um blob de dados consiste nos dados de interesse que o seu produtor de dados adiciona a um stream. O tamanho máximo de um blob de dados (a carga útil de dados após a decodificação Base64) é de 1 megabyte (MB).

A chave de partição é usada para segregar e rotear registros de dados para diferentes fragmentos de um stream. Uma chave de partição é especificada por seu produtor de dados ao colocar dados em um stream do Amazon Kinesis. Por exemplo, supondo que você tem um stream do Amazon Kinesis com dois fragmentos (Fragmento 1 e Fragmento 2). Você pode configurar seu produtor de dados para usar duas chaves de partição (chave A e chave B) para que todos os registros de dados com chave A sejam colocados no fragmento 1 e todos os registros de dados com chave B sejam colocados no fragmento 2.

Um número de sequência é um identificador exclusivo para cada registro de dados. O número de sequência é atribuído pelo Amazon Kinesis quando um produtor de dados chama as APIs PutRecord ou PutRecords para adicionar dados a um stream do Amazon Kinesis. Os números de sequência para a mesma chave de partição geralmente aumentam ao longo do tempo. Quanto maior o entre as solicitações PutRecord ou PutRecords, maiores serão os números de sequência.


Depois de cadastrar-se na Amazon Web Services, você pode começar a usar o Amazon Kinesis:


Os produtores de dados pode colocar dados em streams do Amazon Kinesis por meio de APIs do PutRecord e do PutRecords ou do Amazon Kinesis Producer Library (KPL).A API do PutRecord permite um único registro de dados em uma chamada de API, e a API do PutRecords permite vários registros de dados em uma chamada de API.

A Amazon Kinesis Producer Library (KPL) é uma biblioteca fácil de usar e altamente configurável que o ajuda a colocar dados em um stream do Amazon Kinesis. A Amazon Kinesis Producer Library (KPL) apresenta uma interface simples, assíncrona e confiável que lhe permite alcançar rapidamente uma alta taxa de transferência para o produtor com um mínimo de recursos de clientes.


Uma aplicação do Amazon Kinesis é um consumidor de dados que lê e processa dados de um stream do Amazon Kinesis. Você pode criar suas aplicações do Amazon Kinesis usando a API do Amazon Kinesis ou a Amazon Kinesis Client Library (KCL).

A biblioteca de cliente do Amazon Kinesis (KCL) é uma biblioteca predefinida que ajuda a criar facilmente aplicações do Amazon Kinesis para leitura e processamento de dados em um stream do Amazon Kinesis. A Biblioteca de cliente do Amazon Kinesis (KCL) trata problemas complexos como a adaptação a mudanças no volume do stream, balanceamento de carga de streaming de dados, coordenação de serviços distribuídos e dados de processamento com tolerância a falhas. A Biblioteca de cliente do Amazon Kinesis (KCL) permite que você se concentre na lógica do negócio ao criar aplicativos do Amazon Kinesis.

A biblioteca do Amazon Kinesis Connector é uma biblioteca predefinida que ajuda a integrar facilmente o Amazon Kinesis com outros serviços da AWS e ferramentas de terceiros. A biblioteca de cliente do Amazon Kinesis (KCL) é necessária para usar a biblioteca do Amazon Kinesis Connector. A versão atual dessa biblioteca oferece conectores para Amazon DynamoDB, Amazon Redshift, Amazon S3 e Elasticsearch. A biblioteca também inclui conectores de amostra de cada tipo, além de arquivos de criação do Apache Ant para executar as amostras.

A Amazon Kinesis Storm Spout é uma biblioteca predefinida que ajuda a integrar facilmente o Amazon Kinesis com o Apache Storm. A versão atual da Amazon Kinesis Storm Spout extrai dados do stream do Amazon Kinesis e os emite como tuplas. Os desenvolvedores podem adicionar o Spout à sua topologia do Storm para se beneficiarem do Amazon Kinesis como um serviço confiável e escalonável de captura, armazenamento e nova execução de streams.


O Amazon Kinesis se integra ao Amazon CloudWatch, permitindo coletar, visualizar e analisar métricas do CloudWatch para os seus streams do Amazon Kinesis. Para obter mais informações sobre o Amazon Kinesis, consulte Monitoring Amazon Kinesis with Amazon CloudWatch.

O Amazon Kinesis se integra ao AWS Identity and Access Management (IAM), um serviço que permite controlar de forma seguro o acesso de seus usuários aos seus serviços e recursos do AWS. Por exemplo, você pode criar uma política que permite que apenas um usuário ou grupo específico coloque dados no seu stream do Amazon Kinesis. Para obter mais informações sobre o gerenciamento e o controle de acesso ao seu stream do Amazon Kinesis, consulte Controlling Access to Amazon Kinesis Resources using IAM.

O Amazon Kinesis se integra ao Amazon CloudTrail, um serviço que registra as chamadas de APIs da AWS para a sua conta e fornece arquivos de log. Para obter mais informações sobre o registro de chamadas de APIs e uma lista das APIs compatíveis do Amazon Kinesis, consulte Logging Amazon Kinesis API calls Using Amazon CloudTrail.

O Amazon Kinesis permite atribuir tags aos streams do Amazon Kinesis para facilitar o gerenciamento de recursos e custos. Uma tag é um rótulo definido pelo usuário, especificado como um par chave-valor, que ajuda a organizar recursos da AWS. Por exemplo, você pode atribuir uma tag aos seus streams do Amazon Kinesis por centro de custo, permitindo a categorização e o rastreamento dos custos do Amazon Kinesis com base no centro de custo. Para obter mais informações sobre a atribuição de tags do Amazon Kinesis, consulte Tagging Your Amazon Kinesis Streams.