Amazon Kinesis Data Streams: por que fazer streaming de dados? (9min49s)
Por que o Amazon Kinesis Data Streams? (6min39s)
Princípios básicos do Amazon Kinesis Data Streams (5min19s)

Comece a usar o Amazon Kinesis Data Streams »

Veja as novidades do Amazon Kinesis Data Streams »

Solicite auxílio para prova de conceito ou avaliação »

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 streaming. 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 Amazon Kinesis Data Firehose para transformação e entrega de dados de streaming praticamente em tempo real a um data lake da AWS como Amazon S3, Amazon Managed Service for Apache Flink para processamento gerenciado de streams, AWS Lambda para processamento de eventos ou registros, AWS PrivateLink para conectividade privada, Amazon CloudWatch para processamento de métricas e logs e AWS KMS para criptografia do lado do servidor.

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 aplicativos do Amazon Kinesis. Neste exemplo, um aplicativo (em amarelo) está executando um painel em tempo real com dados de streaming. Outro aplicativo (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. O terceiro aplicativo (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.

Amazon Kinesis Data Streams como solução de big data

Principais conceitos

Produtor de dados

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.

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

Stream de dados

Um stream de dados é um agrupamento lógico de estilhaços. Não há limite para o número de estilhaços em um stream 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.

Estilhaço

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 estilhaços do stream para acompanhar a oscilação do throughput de dados usando o Console AWS ou a API UpdateShardCount, acionando a escalabilidade automática por meio do AWS Lambda ou usando um utilitário de escalabilidade automática.
  • 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.

Registro de dados

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

Chave de partição

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 o 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 estilhaço 1 e todos os registros de dados com chave B sejam colocados no estilhaço 2.

Número de sequência

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 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, maiores serão os números de sequência.

Use o Kinesis Data Streams

Conceitos básicos do Amazon Kinesis Data Streams (1min58s)

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

Insira dados nos streams

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.

Amazon Kinesis Data Generator

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

API do Amazon Kinesis Data Streams

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.

Amazon Kinesis Producer Library (KPL)

A Amazon Kinesis Producer Library (KPL) é uma biblioteca fácil de usar e altamente configurável que ajuda a inserir dados em um stream 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.

Amazon Kinesis Agent

O Amazon Kinesis Agent é um aplicativo Java predefinido 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 aplicativos gerenciados de processamento de streams 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.

Amazon Kinesis Data Firehose

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 análises. 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.

AWS Lambda

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 baseado em eventos).

Biblioteca de cliente do Amazon Kinesis (KCL)

A biblioteca de cliente do Amazon Kinesis (KCL) é uma biblioteca predefinida que ajuda a criar facilmente aplicativos do Amazon Kinesis para leitura e processamento de dados de 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 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.

Biblioteca do Amazon Kinesis Connector

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

Amazon Kinesis Storm Spout

A Amazon Kinesis Storm Spout é uma biblioteca predefinida 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 à topologia do Storm para usar o Amazon Kinesis Data Streams como um serviço confiável e escalável de captura, armazenamento e reprodução de streams.

Recursos de gerenciamento

Acesso privado da Amazon VPC às APIs do Kinesis Data 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.

Distribuição de dados do Kinesis Data Streams sem sacrificar a performance

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.

Criptografia de dados do Kinesis Data Streams

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 gerenciado que criptografa e descriptografa automaticamente dados inseridos e extraídos de um stream de dados. Como alternativa, é possível criptografar dados do lado do cliente antes de inseri-los no stream de dados. Para saber mais, consulte a seção Segurança das perguntas frequentes sobre o Kinesis Data Streams.

Use um fluxo de dados como origem de um 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.

Integração ao Amazon CloudWatch

O Amazon Kinesis Data Streams se integra ao Amazon CloudWatch, permitindo coletar, visualizar e analisar facilmente métricas do CloudWatch para 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 Monitoramento do serviço do Amazon Kinesis Data Streams com o Amazon CloudWatch.

Integração ao AWS IAM

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 dos 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 stream do Amazon Kinesis, consulte Controle do acesso aos recursos do Amazon Kinesis Data Streams usando o IAM.

Integração ao AWS CloudTrail

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 registro em log de chamadas de APIs e uma lista das APIs compatíveis do Amazon Kinesis, consulte Registro em log de chamadas da API do Amazon Kinesis Data Streams com o AWS CloudTrail.

Suporte à marcação

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 Atribuir tags nos streams no Amazon Kinesis Data Streams.

Tutoriais

Analisar dados de ações com o Amazon Kinesis Data Streams

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.  

Analyzing streaming data in real time with Amazon Kinesis (ABD301)

O Amazon Kinesis facilita a coleta, o processamento e a análise de dados de streaming em tempo real, permitindo que você obtenha insights oportunos e reaja rapidamente às novas informações. Nesta sessão, apresentamos uma solução completa de dados de streaming usando o Kinesis Streams para consumo de dados, o Kinesis Analytics para processamento em tempo real e o Kinesis Firehose para persistência. Analisamos detalhadamente como escrever consultas SQL usando dados de streaming e discutimos as melhores práticas para otimizar e monitorar aplicativos do Kinesis Analytics. Por fim, discutimos como estimar o custo de todo o sistema.

Assista à gravação da sessão | Faça download da apresentação

Workshop: Building your first big data application on AWS (ABD317)

Você quer aumentar o seu conhecimento de web services de big data da AWS e lançar o seu primeiro aplicativo de big data na nuvem? Mostramos a você como simplificar o processamento de big data como um barramento de dados que abrange consumo, armazenamento, processamento e visualização. Você cria um aplicativo de big data usando serviços gerenciados da AWS como Amazon Athena, Amazon Kinesis, Amazon DynamoDB e Amazon S3, entre outros. Durante o workshop, analisaremos padrões de projeto de arquitetura para aplicativos de big data e ofereceremos acesso a um laboratório que você poderá executar fora do workshop para recriar e personalizar o aplicativo. Você deve trazer o seu próprio laptop e ter alguma familiaridade com os serviços da AWS para aproveitar essa sessão ao máximo.

Faça download da apresentação 

Workshop: Don’t wait until tomorrow; How to use streaming data to gain real-time insights into your business (ABD321)

Nos últimos anos, o número de fontes de dados em tempo real e dispositivos conectados cresceu de forma explosiva. O resultado é uma produção contínua de dados, e a taxa de produção está acelerando. As empresas não podem mais esperar horas ou dias para usar esses dados. Para obter os insights mais valiosos, elas devem usar imediatamente esses dados para pode reagir rapidamente com base nas novas informações. Neste workshop, você aprenderá aproveitar as fontes de streaming de dados para analisar e reagir praticamente em tempo real. Você receberá diversos requisitos de um cenário de dados de streaming do mundo real e terá de criar uma solução que atenda a esses requisitos usando serviços como Amazon Kinesis, AWS Lambda e Amazon SNS.

Faça download da apresentação

How Amazon Flex uses real-time analytics to deliver packages on time (ABD217)

A redução do tempo de obtenção de insights acionáveis dos dados é importante para todas as empresas. Os clientes que usam ferramentas de análise de dados em lotes estão explorando os benefícios das análises de streaming. Aprenda as melhores práticas para ampliar uma arquitetura de data warehouses e bancos de dados para soluções em tempo real. Saiba como usar o Amazon Kinesis para obter insights de dados em tempo real e integrá-los aos serviços Amazon Aurora, Amazon RDS, Amazon Redshift e Amazon S3. A equipe do Amazon Flex descreve como usou as análises de streaming em um aplicativo móvel do Amazon Flex usado por motoristas de entrega da Amazon para entregar todos os meses milhões de pacotes dentro do prazo esperado. A equipe discute a arquitetura que possibilitou a mudança de um sistema de processamento de lotes para um sistema em tempo real, superando os desafios da migração de dados em lotes atuais para dados de streaming. Além disso, mostra como obter benefícios com as análises em tempo real.

Assista à gravação da sessão | Faça download da apresentação

Real-time streaming applications on AWS: Use cases and patterns (ABD203)

Para conquistar o mercado e oferecer experiências de cliente diferenciadas, as empresas precisam usar dados ao vivo em tempo real para facilitar a agilidade na tomada de decisões. Nesta sessão, você aprenderá casos de uso e arquiteturas comuns para processamento de dados de streaming. Primeiro, oferecemos uma visão geral dos dados de streaming e dos recursos de dados de streaming da AWS. Em seguida, examinamos alguns exemplos de clientes e seus aplicativos de streaming em tempo real. Por fim, descrevemos as arquiteturas e os padrões de projeto comuns dos principais casos de uso de dados de streaming.

Assista à gravação da sessão | Faça download da apresentação

O AWS Streaming Data Solution for Amazon Kinesis fornece modelos do AWS CloudFormation em que os dados fluem por produtores, armazenamento de streaming, 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.

Comece a usar o Amazon Kinesis Data Streams

Consulte o guia do desenvolvedor
Pronto para começar?
Cadastrar-se
Tem outras dúvidas?
Entre em contato conosco