Comece a usar o Amazon Kinesis Data Streams »

Veja as novidades do Amazon Kinesis Data Streams »

Solicite ajuda para uma prova de conceito ou avaliação »

O Amazon Kinesis Data Streams é um serviço de consumo e processamento de dados massivamente escalável e altamente resiliente, otimizado para o streaming de dados. Você pode configurar centenas de milhares de produtores de dados que colocam continuamente dados em um stream de dados do Kinesis. Os dados serão disponibilizados em milissegundos aos aplicativos do Amazon Kinesis, que receberão os registros de dados na ordem em que foram gerados.

O Amazon Kinesis Data Streams é integrado a vários serviços da AWS, incluindo Amazon Kinesis Data Firehose para transformação e entrega de dados de streaming praticamente em tempo real para um data lake da AWS, como o Amazon S3; Kinesis Data Analytics 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, 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 S3 passam por processamento adicional e são armazenados no Amazon Redshift para a realizaçã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 estão acontecendo simultaneamente e em paralelo.

kinesis-architecture-crop

Principais conceitos

Produtor de dados

Normalmente, um produtor de dados é um aplicativo que 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 um serviço da AWS que recupera dados de todos os estilhaços de um stream à medida que são gerados. A maioria dos consumidores de dados recuperam os dados mais recentes em um estilhaço, o que viabiliza análises ou processamento de 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 (se precisar de mais, solicite um aumento de limite). Um stream de dados retém os dados por 24 horas ou, quando a retenção prolongada está habilitada, por até 7 dias.

Estilhaço

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

  • Um estilhaço é um log que permite apenas anexações e uma unidade de capacidade de streaming. Um estilhaço contém uma sequência ordenada de registros, ordenada por hora 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 à medida que o throughput de dados evolui usando o Console AWS e a API UpdateShardCount, acione a escalabilidade automática com o AWS Lambda ou use um utilitário de escalabilidade automática.
  • Quando os consumidores usam a 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 uso da distribuição aprimorada.
  • Quando os consumidores não usam a distribuição aprimorada, um estilhaço oferece 1 MB/s de entrada e 2 MB/s de saída de dados, e essas saída é compartilhada com todos os consumidores que não usam a distribuição aprimorada.
  • Você especifica o número de estilhaços necessários quando cria um stream, e pode alterar essa quantidade a qualquer momento. Por exemplo, você pode criar um stream com dois estilhaços. Se você tiver 5 consumidores de dados usando a distribuição aprimorada, esse stream pode fornecer até 20 MB/s de total de saída de dados (2 estilhaços x 2 MB/s x 5 consumidores de dados). Quando o consumidor de dados não usa a 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 consumo, o limite que for atingido primeiro.
  • Você pode monitorar métricas de estilhaço 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 e usuário ou time stamp. Ela é especificada pelo produtor de dados quando insere dados em um stream de dados do Amazon Kinesis, e é útil para os consumidores, pois permite o uso da chave de partição para reproduzir ou criar um histórico associado à chave de partição. A chave de partição é usada para segregar e rotear registros de dados para estilhaços diferentes de um stream. Por exemplo, supondo que você tenha um stream de dados 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.

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

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

  • Criando um stream de dados do Amazon Kinesis por meio do console de gerenciamento do Amazon Kinesis ou da API CreateStream do Amazon Kinesis.
  • Configurando seus produtores de dados para colocar continuamente dados em seu stream de dados do Amazon Kinesis.
  • Criando seus aplicativos do Amazon Kinesis para ler e processar dados do seu stream de dados do Amazon Kinesis.

Colocar dados em 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 exemplo em um stream de dados do Kinesis ou no 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 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 uma alto throughput para o produtor com um mínimo de recursos de cliente.

Amazon Kinesis Agent

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.

Execute aplicativos de processamento de streams gerenciados ou crie os seus próprios aplicativos

Execute aplicativos de processamento de streams gerenciados usando os 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 stream de dados do Kinesis como origem para um Kinesis Data Firehose.

Amazon Kinesis Data Analytics

O Amazon Kinesis Data Analytics permite que você crie consultas de dados de streaming ou crie aplicativos completos de streaming usando SQL, para que você possa obter insights práticos e reagir imediatamente às necessidades da empresa e dos clientes. Você pode usar um stream de dados do Kinesis como origem e destino de um aplicativo de análise de dados do Kinesis.

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 por 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 em um stream do Amazon Kinesis. A KCL processa 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 usar 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 dessa 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 pré-definida que ajuda a integrar facilmente o Amazon Kinesis Data Streams ao Apache Storm. A versão atual da Amazon Kinesis Storm Spout recupera dados do stream de dados do Kinesis e os emite como tuplas. Você adicionará o spout à sua 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

Como acessar de modo privado as APIs do Kinesis Data Streams por meio da Amazon VPC

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 sobre o PrivateLink, consulte a documentação do AWS PrivateLink.

Distribua streams de dados do Kinesis sem sacrificar a performance

A distribuição aprimorada permite que os clientes escalem o número de consumidores com leituras de um stream em paralelo, sem afetar a alta performance. Você pode usar a distribuição aprimorada e a API de recuperação de dados HTTP/2 para distribuir dados a diversos aplicativos, normalmente dentro de 70 milissegundos após a chegada.

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

Integração entre o Amazon Kinesis Data Firehose e o Amazon Kinesis Data Analytics

Use um stream 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. Anexe um aplicativo do Kinesis Data Analytics 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 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 Como monitorar o Amazon Kinesis com o Amazon CloudWatch.

Integração do 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 grupo específico insira dados em um stream do Amazon Kinesis. Para obter mais informações sobre o gerenciamento e o controle de acesso a streams do Amazon Kinesis, consulte Controlar acesso aos recursos do Amazon Kinesis Data Streams usando o IAM.

Integração do AWS CloudTrail

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.

Suporte à marcação

Você pode 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 streams de dados do Amazon Kinesis por centro de custo, permitindo a categorização e o rastreamento dos custos do Amazon Kinesis 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 escrever 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 dispositivos conectados e fontes de dados em tempo real 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

Comece a usar o Amazon Kinesis Data Streams

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