O Amazon Kinesis Data Streams permite criar aplicativos personalizados que processam ou analisam dados de streaming para necessidades específicas. Você pode configurar centenas de milhares de produtores de dados que colocam dados continuamente em um stream de dados 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 Data Streams é 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 Data Streams comporta o número de consumidores de stream de dados exigido pela sua solução, sem comprometer a performance.

Comece a usar a AWS gratuitamente

Crie uma conta gratuita
Ou faça login no Console
kinesis-architecture-crop

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 monitorar métricas em nível de estilhaço no Amazon Kinesis Data Streams, além de adicionar ou remover estilhaços do seu stream de modo dinâmico de acordo com a mudança no throughput de dados ao refragmentar o stream.

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 Data Streams quando um produtor de dados chama as APIs PutRecord ou PutRecords API para adicionar dados a um stream de dados 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 período entre as solicitações PutRecord ou PutRecords, tanto 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 Data Streams:

  • Criar um stream do Amazon Kinesis por meio do Console de Gerenciamento do Amazon Kinesis ou da API do Amazon Kinesis CreateStream.
  • Configurando seus produtores de dados para colocar dados continuamente em seu stream do Amazon Kinesis.
  • Criando suas aplicações do Amazon Kinesis para ler e processar dados do seu stream do Amazon Kinesis.

Os produtores de dados podem inserir dados nos streams de dados do Amazon Kinesis usando as APIs do Amazon Kinesis Data Streams, a Amazon Kinesis Producer Library (KPL) ou o Amazon Kinesis Agent

 

O Amazon Kinesis Data Streams disponibiliza duas APIs para a inserção de dados em um stream de dados do Amazon Kinesis: PutRecord e PutRecords. PutRecord permite um único registro de dados em uma chamada de API e 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.

O Amazon Kinesis Agent é uma aplicação Java pré-criada que oferece uma maneira fácil de coletar e enviar dados para o stream do Amazon Kinesis. Você pode instalar o agente em ambientes de servidor baseados no Linux, como servidores da web, servidores de log e servidores de banco de dados. O agente monitora determinados arquivos e envia continuamente dados para o seu stream. 


Um aplicativo 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 KCL trata problemas complexos, como a adaptação a mudanças no volume do stream, load balancing de dados de streaming, coordenação de serviços distribuídos e processamento de dados com tolerância a falhas. A KCL permite que você se concentre na lógica de negócios durante a criação de 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 pré-definida que ajuda a integrar facilmente o Amazon Kinesis Data Streams ao Apache Storm. A versão atual da Amazon Kinesis Storm Spout extrai dados do stream do Amazon Kinesis e os emite como tuplas. Você adicionará o Spout à sua topologia do Storm para se beneficiar do Amazon Kinesis Data Streams como um serviço confiável e escalável de extração, armazenamento e nova execução de streams.


O Amazon Kinesis Data Streams se integra ao Amazon CloudWatch, permitindo coletar, visualizar e analisar métricas do CloudWatch para seus streams de dados do Amazon Kinesis e para os estilhaços encontrados dentro desses streams de dados. Para obter mais informações sobre as métricas do Amazon Kinesis Data Streams, consulte Como monitorar o Amazon Kinesis com o Amazon CloudWatch.

O Amazon Kinesis Data Streams se integra ao AWS Identity and Access Management (IAM), um serviço que permite controlar de forma segura o acesso de seus usuários aos serviços e recursos da 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 Data Streams se integra ao AWS CloudTrail, um serviço que registra as chamadas de APIs da AWS para sua conta e disponibiliza arquivos de log para você. Para obter mais informações sobre o registro de chamadas de APIs e uma lista das APIs compatíveis do Amazon Kinesis, consulte Como registrar chamadas de API do Amazon Kinesis usando o AWS CloudTrail.

Você pode acessar de modo privado as APIs do Kinesis Data Streams por meio da Amazon Virtual Private Cloud (VPC) criando VPC endpoints. Com os VPC endpoints, o roteamento entre a VPC e o Kinesis Data Streams é processado pela rede da AWS sem a necessidade de um Internet Gateway, um gateway NAT ou uma conexão VPN. A geração mais recente de VPC endpoints usados pelo Kinesis Data Streams é desenvolvida pelo AWS PrivateLink, uma tecnologia que habilita a conectividade privada entre os Serviços da AWS usando Elastic Network Interfaces (ENIs – Interfaces de rede elástica) com IPs privados nas VPCs. Para obter mais informações, consulte a documentação do AWS PrivateLink.

Você pode criptografar os dados inseridos no Kinesis Data Streams usando criptografia do lado do servidor ou do lado do cliente. A criptografia no lado do servidor é um recurso totalmente gerenciado que criptografa e descriptografa automaticamente dados inseridos e extraídos de um stream. Como alternativa, é possível criptografar dados do lado do cliente antes de inseri-los no stream. Para saber mais, consulte a seção Segurança das perguntas frequentes sobre o Kinesis Data Streams.

O Amazon Kinesis permite atribuir tags aos streams de dados 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 de dados 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 o assunto, consulte Atribuir tags nos streams no Amazon Kinesis Data Streams.