O que são dados em streaming?

Dados de streaming são dados emitidos em alto volume de maneira contínua e incremental com o objetivo de alcançar um processamento de baixa latência. As organizações têm milhares de fontes de dados que, normalmente, emitem simultaneamente mensagens, registros ou dados que variam em tamanho, desde alguns bytes a vários megabytes (MB). Os dados de streaming incluem dados de localização, eventos e sensores que as empresas usam para análises em tempo real e visibilidade de diversos aspectos de seus negócios. Por exemplo, as empresas podem acompanhar as alterações no sentimento do público em relação às suas marcas e produtos ao analisar continuamente a sequência de cliques e as postagens dos clientes nos fluxos de mídias sociais e, em seguida, responder prontamente, conforme necessário.

Quais são as características dos dados de streaming?

Um fluxo de dados tem características específicas que o definem.

Significância cronológica

Os elementos individuais em um fluxo de dados contêm carimbos de data e horário. O próprio fluxo de dados pode apresentar sensibilidade ao tempo com significância diminuída após um intervalo de tempo específico. Por exemplo, a aplicação faz recomendações de restaurantes com base na localização atual de seu usuário. Você deve agir sobre os dados de geolocalização do usuário em tempo real ou esses dados perdem a significância.

Fluidez contínua

Um fluxo de dados não tem começo ou fim. A coleta de dados ocorre constante e continuamente pelo tempo que for necessário. Por exemplo, os logs de atividade do servidor se acumularão enquanto o servidor estiver em execução.

Exclusividade

A transmissão repetida de um fluxo de dados é desafiadora devido à sensibilidade ao tempo. Portanto, o processamento preciso de dados em tempo real é fundamental. Infelizmente, as provisões para retransmissão são limitadas na maioria das fontes de dados de streaming.

Não homogeneidade

Algumas fontes podem realizar a transmissão de dados em diversos formatos estruturados, como JSON, Avro e valores separados por vírgula (CSV), com tipos de dados que incluem cadeia de caracteres, números, datas e tipos binários. Os sistemas de processamento de transmissão por streaming devem ter os recursos para lidar com essas variações de dados.

Imperfeição

Erros temporários na fonte podem resultar em elementos danificados ou ausentes nos dados transmitidos. Pode ser um desafio garantir a consistência de dados devido à característica contínua do fluxo. Geralmente, os sistemas de processamento e de análise de transmissões por streaming incluem lógica para validação de dados com a finalidade de mitigar ou minimizar esses erros.

Por que os dados de streaming são importantes?

Os sistemas de processamento de dados tradicionais capturam dados em um data warehouse central e os processam em grupos ou em lotes. Esses sistemas foram desenvolvidos para ingerir e estruturar dados antes da análise. No entanto, nos últimos anos, as características dos dados empresariais e dos sistemas de processamento de dados subjacentes foram significativamente alteradas.

Volume de dados ilimitado

Os volumes de dados gerados através de fontes de fluxo podem ser muito grandes, tornando um desafio para a análise em tempo real regular a integridade (validação), estrutura (evolução) ou velocidade (throughput e latência) dos dados de streaming.

Sistemas de processamento de dados avançados

Simultaneamente, a infraestrutura de nuvem introduziu flexibilidade para a escalabilidade e o uso de recursos computacionais. Você usa exatamente o que precisa e paga somente pelo que usar. Você tem as opções de filtragem ou agregação em tempo real antes e após o armazenamento dos dados de streaming. A arquitetura de dados de streaming utiliza tecnologias em nuvem para consumir, enriquecer, analisar e armazenar permanentemente dados de streaming, conforme necessário.

Quais são os casos de uso para os dados de streaming?

Um sistema de processamento de transmissão por streaming é vantajoso na maioria dos cenários em que dados novos e dinâmicos são gerados continuamente. Isso se aplica à maioria dos casos de uso de segmentos do setor e de big data.

Geralmente, as empresas começam com aplicações simples, como a coleta de logs do sistema e processamentos rudimentares, por exemplo, cálculos de mínimo e máximo. Em seguida, essas aplicações evoluem para um processamento mais sofisticado quase em tempo real.

A seguir, são apresentados mais alguns exemplos de dados de streaming.

Análise de dados

As aplicações processam fluxos de dados para produzir relatórios e executar ações em resposta, como emitir alertas quando as principais medidas excedem determinados limites. As aplicações de processamento de transmissão por streaming mais sofisticadas extraem insights mais aprofundados ao aplicar algoritmos de machine learning aos dados de negócios e atividades do cliente.

Aplicações de IoT

Os dispositivos de Internet das Coisas (IoT) correspondem a outro caso de uso de dados de streaming. Sensores em veículos, equipamentos industriais e máquinas agrícolas enviam dados para uma aplicação de streaming. A aplicação monitora a performance, detecta possíveis defeitos com antecedência e realiza automaticamente pedidos de peças de reposição, o que evita períodos de inatividade do equipamento.

Análise financeira

As instituições financeiras usam transmissão de dados para acompanhar alterações em tempo real no mercado de ações, calcular o valor em risco e reequilibrar automaticamente os portfólios com base nas flutuações dos preços das ações. Outro caso de uso na área financeira corresponde à detecção de fraude de transações de cartão de crédito ao usar inferência em tempo real diante de dados de transações de streaming.

Recomendações em tempo real

As aplicações do mercado imobiliário acompanham dados de geolocalização dos dispositivos móveis dos consumidores e fazem recomendações em tempo real de propriedades a serem visitadas. De forma semelhante, aplicações das áreas publicitária, alimentícia, varejista e consumidora podem integrar recomendações em tempo real para agregar mais valor aos clientes.

Garantias de serviço

É possível implementar o processamento de fluxo de dados para acompanhar e manter os níveis de serviço em aplicações e equipamentos. Por exemplo, uma empresa de energia solar precisa manter a produtividade de energia para seus clientes ou pagará multas. Uma aplicação de dados de streaming é implementada para monitorar todos os painéis em campo e agendar serviços em tempo real. Dessa maneira, é possível minimizar os períodos de baixa produtividade de cada painel e os pagamentos de multas associados.

Mídia e jogos

Os editores transmitem bilhões de registros de sequências de cliques de suas propriedades online, agregam e enriquecem os dados com informações demográficas do usuário e otimizam a disposição do conteúdo. Isso ajuda os editores a oferecer uma experiência melhor e mais relevante para o público. De forma semelhante, as empresas de jogos online usam o processamento de transmissão por streaming de eventos para analisar as interações do jogador no jogo e oferecer experiências dinâmicas para envolver os jogadores.

Controle de riscos

As plataformas de transmissão ao vivo e de redes sociais capturam dados de comportamento do usuário em tempo real para controle de risco sobre a atividade financeira dos usuários, como recarga, reembolso e recompensas. Ocorre a visualização de painéis em tempo real para ajuste de estratégias de riscos com flexibilidade.

Qual é a diferença entre dados em lotes e dados de streaming?

O processamento em lotes é o método que os computadores usam para concluir periodicamente trabalhos de dados repetitivos e com alto volume. É possível usá-lo para calcular consultas arbitrárias em diferentes conjuntos de dados. Geralmente, são gerados resultados computacionais de todos os dados, o que abrange e possibilita uma análise aprofundada de conjuntos de big data. Sistemas baseados em MapReduce, como o Amazon EMR, são exemplos de plataformas que oferecem suporte a trabalhos em lote.

Em comparação, o processamento de transmissão por streaming requer a ingestão de uma sequência de dados e atualização incremental de métricas, relatórios e estatísticas de resumo em resposta a cada registro de dados recebido. Ele é mais adequado para funções de análise e resposta em tempo real.

  Processamento em lotes

Processamento de streams

Escopo de dados

Consultas ou processamento de todos ou da maioria dos dados no conjunto de dados.

Consultas ou processamento de dados dentro de um período rotacional, ou apenas do registro de dados mais recente.

Tamanho dos dados


Grandes lotes de dados.

Registros individuais ou microlotes compostos de alguns registros.

Performance

  Latências em minutos para horas.

Exige latência na ordem dos segundos ou milissegundos.

Análise

Dados analíticos complexos. Métricas simples de funções, agregação e rotação de respostas.

Muitas organizações estão desenvolvendo um modelo híbrido ao combinar as duas abordagens a fim de manter uma camada em tempo real e uma camada em lote. Por exemplo, primeiro é possível processar os dados em uma plataforma de dados de streaming, como o Amazon Kinesis, para extrair insights em tempo real. Em seguida, você pode mantê-los em um armazenamento como o Amazon Simple Storage Service (Amazon S3). Nele, os dados poderão ser transformados e carregados para diversos casos de uso de processamento em lote.

O Amazon Redshift Streaming Ingestion permite aos usuários ingerir dados diretamente do Amazon Kinesis Data Streams sem a necessidade de organizá-los no Amazon S3. O serviço também pode ingerir dados do Amazon Managed Streaming for Apache Kafka (Amazon MSK) no Amazon Redshift.

Como é possível processar dados de streaming?

A arquitetura de dados de streaming consiste em dois tipos principais de componentes.

Produtores de stream

Os produtores de stream correspondem a componentes de software em aplicações e sistemas de IoT que coletam dados. Eles transmitem registros para o processador de stream que contém um nome de fluxo, valor de dados e número de sequência. O processador armazena em buffer ou agrupa temporariamente os registros de dados por nome de stream. O número de sequência é usado para acompanhar a posição exclusiva de cada registro e processar os dados cronologicamente.

Consumidores de stream

Os consumidores de stream correspondem a componentes de software que processam e analisam os fluxos de dados armazenados em buffer no processador. Cada consumidor tem funcionalidades analíticas como correlações, agregações, filtragem, amostragem ou machine learning. Cada fluxo pode ter diversos consumidores e cada um deles pode processar vários fluxos. Os consumidores também podem retornar os dados alterados ao processador para criar novos fluxos para outros consumidores.

Implementação da arquitetura

Para implementar a arquitetura de dados de streaming, são necessárias camadas de armazenamento e de processamento. A camada de armazenamento deve oferecer suporte para a solicitação de registros e ter uma forte consistência para permitir leituras e gravações rápidas, de baixo custo e reproduzíveis de grandes fluxos de dados. A camada de processamento é responsável por consumir dados da camada de armazenamento, realizar cálculos sobre esses dados e, em seguida, enviar notificações para a camada de armazenamento excluir os dados que não são mais necessários.

Quais são os desafios de se trabalhar com dados de streaming?

A arquitetura de dados de streaming requer considerações especiais devido às características e ao volume de dados.

Disponibilidade

As aplicações de dados de streaming requerem consistência, baixa latência e alta disponibilidade. Os consumidores estão constantemente obtendo novos dados do fluxo para processamento. Os atrasos do produtor podem prejudicar o sistema e causar erros.

Escalabilidade

Os fluxos de dados brutos podem aumentar rápida e inesperadamente. Por exemplo, as postagens em mídias sociais aumentam durante um grande evento esportivo. Portanto, o sistema deve priorizar o sequenciamento, a disponibilidade e a consistência adequados dos dados, mesmo durante picos de demanda.

Durabilidade

Devido à sensibilidade dos dados ao tempo, o sistema de processamento de transmissão por streaming deve ser tolerante a falhas. Caso contrário, os dados serão perdidos permanentemente em uma interrupção ou falha.

Como a AWS pode oferecer suporte aos seus requisitos de dados de streaming?

A AWS oferece diversas opções para o trabalho com dados de streaming. 

Amazon Kinesis

O Kinesis é uma plataforma para dados de streaming na AWS. Ela oferece serviços robustos que facilitam o carregamento e a análise de dados de streaming, além de permitir que você desenvolva aplicações de dados de streaming personalizadas para necessidades especializadas.

O Kinesis fornece três serviços: Amazon Kinesis Data Firehose, Amazon Kinesis Data Streams e Amazon Managed Streaming for Apache Kafka (Amazon MSK).

Kinesis Data Firehose

O Kinesis Data Firehose pode capturar e carregar automaticamente dados de streaming no Amazon Simple Storage Service (Amazon S3) e no Amazon Redshift. Isso permite que você execute análises em tempo real com ferramentas e painéis de inteligência de negócios existentes e já em uso atualmente.

Kinesis Data Streams

O Kinesis Data Streams pode capturar e armazenar continuamente terabytes (TB) de dados por hora de centenas de milhares de fontes. Ele é compatível com a sua escolha de plataforma de processamento de transmissão por streaming, incluindo a biblioteca de cliente do Amazon Kinesis (KCL), o Apache Storm e o Apache Spark Streaming.

Amazon MSK

O Amazon MSK corresponde a um serviço totalmente gerenciado que facilita o desenvolvimento e a execução de aplicações usando o Apache Kafka para processamento de dados de streaming. O Apache Kafka é uma plataforma de código aberto para desenvolvimento de pipelines e de aplicações de dados de streaming em tempo real. 

Amazon Redshift

O Amazon Redshift Streaming Ingestion possibilita a ingestão de dados de streaming no data warehouse dos usuários para análises em tempo real de diversos fluxos de dados do Kinesis. É possível executar análises avançadas usando SQL conhecidas, bem como desenvolver e gerenciar pipelines de ELT facilmente. Também é possível processar grandes volumes de dados de streaming com baixa latência e alto throughput para obter insights em segundos.

Outras soluções de streaming no Amazon EC2

Você pode instalar as plataformas de dados de streaming que desejar no Amazon Elastic Compute Cloud (Amazon EC2) e no Amazon EMR, bem como desenvolver camadas personalizadas de armazenamento e processamento de fluxo. Como resultado, você pode evitar conflitos de provisionamento de infraestrutura, além de obter acesso a diversas estruturas de processamento e armazenamento de fluxo. As opções para a camada de armazenamento de dados incluem o Amazon MSK e o Apache Flume. As opções para a camada de processamento de transmissão por streaming incluem o Apache Spark Streaming e o Apache Storm.

Comece a usar os dados de streaming na AWS criando uma conta gratuita da AWS hoje mesmo.

Próximas etapas do AWS Streaming Data

Confira recursos adicionais relacionados a produtos
Veja ofertas gratuitas de serviços de análises na nuvem 
Cadastre-se para obter uma conta gratuita

Obtenha acesso instantâneo ao nível gratuito da AWS. 

Cadastre-se 
Comece a criar no console

Comece a criar no Console de Gerenciamento da AWS.

Faça login