Comece a usar o Amazon Kinesis Data Streams

Comece a usar

O Amazon Kinesis Data Streams é um serviço de processamento e ingestão de dados com enorme escalabilidade e alta resiliência, otimizado para dados de transmissão. Você pode configurar centenas de milhares de produtores de dados para inserir continuamente dados em um stream de dados do Kinesis. Em milissegundos, os dados serão disponibilizados para as aplicações do Amazon Kinesis, que receberão os registros de dados na ordem em que foram gerados.

O Amazon Kinesis Data Streams é integrado a diversos serviços da AWS, como o Amazon Kinesis Data Firehose, para transformação e entrega de dados de transmissão praticamente em tempo real a um data lake da AWS como o Amazon S3, o Amazon Managed Service for Apache Flink para processamento gerenciado de streams, o AWS Lambda para processamento de eventos ou registros, o AWS PrivateLink para conectividade privada, o Amazon CloudWatch para processamento de métricas e logs e o AWS KMS para criptografia do lado do servidor.

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 aplicativos do Amazon Kinesis. Neste exemplo, um aplicativo (em amarelo) está executando um painel em tempo real com dados de streaming. Outra aplicação (em vermelho) executa uma agregação simples e emite os dados processados para o Amazon S3. Os dados do S3 passam por processamento adicional e são armazenados no Amazon Redshift para a execuçã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 ocorrem simultaneamente e em paralelo.

Comece a usar o Amazon Kinesis Data Streams

Veja as novidades do Amazon Kinesis Data Streams

Solicite auxílio para realizar a prova de conceito ou uma avaliação

Vídeos

Use o Kinesis Data Streams

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

Principais conceitos

Um produtor de dados é um aplicativo que normalmente emite registros de dados à medida que são gerados para um stream de dados do Kinesis. Os produtores de dados atribuem chaves de partição aos registros. Em última análise, as chaves de partição determinam qual estilhaço consome o registro de dados de um stream de dados.

Um consumidor de dados é um aplicativo distribuído do Kinesis ou serviço da AWS que recupera dados de todos os estilhaços de um stream à medida que o stream é gerado. A maioria dos consumidores de dados recupera os dados mais recentes de um estilhaço, o que permite analisar ou processar dados em tempo real.

Um stream de dados é um agrupamento lógico de estilhaços. Não há limite para o número de fragmentos em um fluxo de dados (solicite um aumento de limite se precisar de um número maior). Um stream de dados reterá os dados por 24 horas por padrão ou, como alternativa, até 365 dias.

Um estilhaço é a unidade básica de throughput de um stream de dados do Amazon Kinesis.

  • Um estilhaço é um log que só permite anexação e uma unidade de capacidade de streaming. Um estilhaço contém uma sequência de registros em ordem de chegada.
  • Um estilhaço pode consumir até 1.000 registros de dados por segundo, ou 1 MB/s. Adicione mais estilhaços para aumentar a capacidade de consumo.
  • Adicione ou remova dinamicamente fragmentos do fluxo para acompanhar a oscilação do throughput de dados usando o Console da AWS ou a API UpdateShardCount, acionando o ajuste de escala automático por meio do AWS Lambda ou usando um utilitário de ajuste de escala automático.
  • Quando os consumidores usam distribuição aprimorada, um estilhaço fornece entrada de dados de 1 MB/s e saída de dados de 2 MB/s para cada consumidor de dados registrado para o uso de distribuição aprimorada.
  • Quando os consumidores não usam distribuição aprimorada, um estilhaço fornece entrada de 1 MB/s e saída de dados de 2 MB/s. Essa saída é compartilhada com qualquer consumidor que não usa distribuição aprimorada.
  • Você especificará o número de estilhaços necessários durante a criação do stream e poderá alterar a quantidade a qualquer momento. Por exemplo, você pode criar um stream com dois estilhaços. Se você tiver cinco consumidores de dados usando distribuição aprimorada, esse stream pode fornecer até 20 MB/s de saída de dados total (2 estilhaços x 2 MB/s x 5 consumidores de dados). Quando o consumidor de dados não usa distribuição aprimorada, esse stream tem um throughput de 2 MB/s de entrada de dados e 4 MB/s de saída de dados. Em todos os casos, esse stream permite até 2.000 registros PUT por segundo ou 2 MB/s de entrada, o limite que for alcançado antes.
  • Você pode monitorar métricas de estilhaços no Amazon Kinesis Data Streams.

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).

Normalmente, uma chave de partição é um identificador significativo, como um ID de usuário ou time stamp. Ela é especificada pelo produtor de dados quando este insere dados em um stream de dados do Amazon Kinesis. Essa informação é útil para os consumidores, pois a chave de partição pode ser usada para reproduzir ou criar um histórico associado a ela. A chave de partição também é usada para segregar e rotear registros de dados para diferentes estilhaços de um stream. Por exemplo, supondo que você tem um stream do Amazon Kinesis com dois estilhaços (estilhaço 1 e estilhaço 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 para adicionar dados a um fluxo 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, maiores serão os números de sequência.

Insira dados nos streams

Os produtores de dados podem inserir dados nos fluxos de dados do Amazon Kinesis usando as APIs do Amazon Kinesis Data Streams, a biblioteca de produtor do Amazon Kinesis (KPL) ou o Amazon Kinesis Agent.

Insira dados de amostra em um fluxo de dados do Kinesis ou em um Kinesis Data Firehose usando o Amazon Kinesis Data Generator.

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.

O Amazon Kinesis Producer Library (KPL) é uma biblioteca fácil de usar e altamente configurável que fornece suporte na inserção de dados em um fluxo de dados do Amazon Kinesis. A Amazon Kinesis Producer Library (KPL) apresenta uma interface simples, assíncrona e confiável que permite alcançar rapidamente um alto throughput de produtor com um mínimo de recursos de clientes.

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

Execute ou crie os seus próprios aplicativos

Execute aplicativos gerenciados de processamento de streams usando serviços da AWS ou crie os seus próprios aplicativos.

O Amazon Kinesis Data Firehose é a maneira mais fácil de transformar e carregar de forma confiável dados de streaming em datastores e ferramentas de analytics. Você pode usar um fluxo de dados do Kinesis como origem para um Kinesis Data Firehose.

Com o Amazon Managed Service for Apache Flink, você pode consultar facilmente dados de streaming ou criar aplicações de streaming usando o Apache Flink para obter insights práticos e responder prontamente às necessidades de sua empresa e de seus clientes. Você pode usar um fluxo de dados do Kinesis como origem e destino para uma aplicação do Amazon Managed Service for Apache Flink.

Você pode assinar funções do Lambda para ler automaticamente registros de um stream de dados do Kinesis. Normalmente, o AWS Lambda é usado para processamento de streams registro a registro (também conhecido como processamento baseado em eventos).

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 de um fluxo de dados 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 partir da KCL 2.0, você pode utilizar uma API de streaming HTTP/2 de baixa latência e a distribuição aprimorada para recuperar dados de um stream.

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 da biblioteca oferece conectores para o Amazon DynamoDB, o Amazon Redshift, o Amazon S3 e o Amazon Elasticsearch Service. A biblioteca também inclui exemplos de conectores de cada tipo, além de arquivos de criação do Apache Ant para executar os exemplos.

O 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 de um stream de dados do 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.

Gerencie streams

Você pode acessar de modo privado as APIs do Kinesis Data Streams de uma 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 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 é baseada no AWS PrivateLink, uma tecnologia que habilita a conectividade privada entre os serviços da AWS usando interfaces de rede elástica (ENIs) com IPs privados nas VPCs. Para obter mais informações, consulte a documentação do AWS PrivateLink.

A distribuição aprimorada permite que os clientes escalem a quantidade de consumidores que leem um stream de dados em paralelo sem afetar a performance. Você pode usar a distribuição aprimorada e uma API HTTP/2 de recuperação de dados para distribuir dados a vários aplicativos, com um intervalo após a chegada que habitualmente é de 70 milissegundos.

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

Use um fluxo de dados como origem do Kinesis Data Firehose para transformar dinamicamente os dados durante a entrega para o S3, o Redshift, o Elasticsearch e o Splunk. Associe uma aplicação do Amazon Managed Service for Apache Flink para processar dados de streaming em tempo real com SQL padrão, sem necessidade de aprender novas linguagens de programação ou estruturas de processamento.

O Amazon Kinesis Data Streams se integra ao Amazon CloudWatch, possibilitando a coleta, a visualização e análise de métricas do CloudWatch de maneira fácil para uso nos fluxos de dados do Amazon Kinesis e nos fragmentos encontrados dentro desses fluxos de dados. Para obter mais informações sobre as métricas do Amazon Kinesis Data Streams, consulte Monitoring Amazon Kinesis with Amazon CloudWatch (Monitoramento do serviço do Amazon Kinesis Data Streams com o Amazon CloudWatch).

O Amazon Kinesis Data Streams se integra ao AWS Identity and Access Management (IAM), um serviço que possibilita o controle de forma segura do 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 um grupo específico insira dados em um stream de dados do Amazon Kinesis. Para obter mais informações sobre o gerenciamento e o controle de acesso a um fluxo de dados do Amazon Kinesis, consulte Controlling Access to Amazon Kinesis Resources using IAM (Controle do acesso aos recursos do Amazon Kinesis Data Streams usando o IAM).

O Amazon Kinesis Data Streams se integra ao AWS CloudTrail, um serviço que registra as chamadas de APIs da AWS para uma conta e entrega arquivos de log. Para obter mais informações sobre o log de chamadas de APIs e uma lista das APIs compatíveis do Amazon Kinesis, consulte Logging Amazon Kinesis API calls Using AWS CloudTrail (Registro em log de chamadas da API do Amazon Kinesis Data Streams com o AWS CloudTrail).

Você pode marcar streams de dados do Amazon Kinesis com tags 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 marcar streams de dados do Amazon Kinesis com tags por centro de custo, permitindo a categorização e o rastreamento dos custos do Amazon Kinesis Data Streams com base em centros de custo. Para obter mais informações sobre o assunto, consulte Tagging Your Amazon Kinesis Data Streams (Marcação de streams no Amazon Kinesis Data Streams).

Tutoriais

Este tutorial apresenta as etapas para criar um stream de dados do Amazon Kinesis, enviar dados simulados de negociação de ações para o stream e criar um aplicativo para processar os dados do stream de dados.  

Apresentações em destaque

Soluções em destaque

A solução de dados em transmissão da AWS para o Amazon Kinesis fornece modelos do AWS CloudFormation em que os dados fluem por produtores, armazenamento de transmissão, consumidores e destinos. Para dar suporte a diversos casos de uso e necessidades de negócios, essa solução oferece quatro modelos do AWS CloudFormation. Os modelos são configurados para aplicar as práticas recomendadas para monitorar a funcionalidade usando painéis e alarmes e para proteger os dados.