Pular para o conteúdo principal

Amazon Kinesis Data Streams

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. Os dados estarão disponíveis em milissegundos para seus aplicativos do Amazon Kinesis, e esses aplicativos receberão 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

Abrir tudo

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á limites para o número de fragmentos em um fluxo de dados (solicite um aumento de limite se precisar de mais). 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 fragmentos do seu stream dinamicamente à medida que sua taxa de transferência de dados muda usando o console da AWS, a API UpdateHardCount, acionando a escalabilidade automática via 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.

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

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

Insira dados nos streams

Abrir tudo

Coloque dados de amostra em um stream de dados do Kinesis ou no Kinesis Data Firehose usando o Amazon Kinesis Data Generator.

O Amazon Kinesis Data Streams fornece duas APIs para colocar 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.

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

O Amazon Kinesis Agent é um aplicativo Java pré-criado que oferece uma maneira fácil de coletar e enviar dados para seu stream do Amazon Kinesis. Você pode instalar o atendente 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

Abrir tudo

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 dados de streaming de forma confiável em datastores e ferramentas de análise. Você pode usar um fluxo de dados do Kinesis como origem para um Kinesis Data Firehose.

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

A Amazon Kinesis Client Library (KCL) é uma biblioteca pré-criada que ajuda você a criar facilmente aplicativos do Amazon Kinesis para leitura e processamento de dados de um stream 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 Amazon Kinesis Connector Library é uma biblioteca pré-criada que ajuda você 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 fornece 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 criação do Apache Ant para executar os exemplos.

O Amazon Kinesis Storm Spout é uma biblioteca pré-criada que ajuda você a integrar facilmente o Amazon Kinesis Data Streams com o 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

Abrir tudo

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 endpoints da VPC usada pelo Kinesis Data Streams é desenvolvida pelo AWS PrivateLink, uma tecnologia que habilita conectividade privada entre serviços da AWS usando interfaces de rede elástica (ENI) com IPs privados em suas VPCs. Para obter mais informações sobre o PrivatLink, 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 totalmente gerenciado que criptografa e descriptografa automaticamente os dados conforme você os coloca e os obtém de um fluxo de dados. Como alternativa, você pode criptografar seus dados no lado do cliente antes de colocá-los em seu fluxo de dados. Para saber mais, consulte a seção Segurança das perguntas frequentes do Kinesis Data Streams.

O Amazon Kinesis Data Streams se integra ao Amazon CloudWatch para que você possa coletar, visualizar e analisar facilmente as métricas do CloudWatch para seus streams de dados do Amazon Kinesis e os fragmentos dentro desses fluxos de dados. Para obter mais informações sobre as métricas do Amazon Kinesis Data Streams, consulte Monitoramento do 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 que você controle com segurança o acesso aos seus serviços e recursos da AWS para seus usuários. 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 gerenciamento de acesso e controle do seu stream de dados do Amazon Kinesis, consulte Controle do acesso aos recursos do Amazon Kinesis usando o IAM.

O Amazon Kinesis Data Streams se integra ao AWS CloudTrail, um serviço que registra chamadas de API da AWS para sua conta e entrega arquivos de log para você. Para obter mais informações sobre o registro de chamadas de API e uma lista de APIs compatíveis do Amazon Kinesis, consulte Registro de chamadas de API do Amazon Kinesis usando o AWS CloudTrail.

Você pode marcar seus Amazon Kinesis Data Streams e seus consumidores de fan-out (EFO) avançados para facilitar o gerenciamento de recursos e custos. Uma etiqueta é 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 com tags os Amazon Kinesis Data Streams ou consumidores EFO 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, consulte Marcar seus recursos do Amazon Kinesis Data Streams.

Tutoriais

Abrir tudo

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

Abrir tudo

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 | Baixe a apresentação

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

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

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 | Baixe a apresentação

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 | Baixe a apresentação

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