O que são dados em streaming?
Dados em streaming são dados gerados continuamente por milhares de fontes de dados, que geralmente enviam os registros de dados simultaneamente, em tamanhos pequenos (na ordem dos kilobytes). Os dados em streaming incluem uma ampla variedade de dados, como arquivos de log gerados por clientes usando seus aplicativos móveis ou web, compras de e-commerce, atividade de jogador durante o jogo, informações de redes sociais, pregões financeiros ou serviços geoespaciais, como também telemetria de dispositivos conectados ou instrumentação em datacenters.
Esses dados devem ser processados sequencial e incrementalmente por registro ou durante períodos móveis, e usados para uma ampla variedade de dados analíticos, como correlações, agregações, filtragem e amostragem. As informações derivadas de tais análises proporcionam às empresas visibilidade sob vários aspectos de suas atividades de negócios e de clientes, como uso de serviços (para medição/faturamento), atividade do servidor, cliques no site, além da geolocalização de dispositivos, pessoas e mercadorias, permitindo que elas respondam de imediato a situações emergentes. Por exemplo, as empresas podem monitorar alterações na percepção pública de suas marcas e produtos, analisando continuamente streams de mídias sociais e responder em tempo hábil, conforme a necessidade.
Benefícios dos dados em streaming
O processamento de dados em streaming é benéfico na maioria dos cenários em que novos dados dinâmicos são gerados continuamente. Ele se aplica à maior parte 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, como a rotação de computações mín/máx. Então, essas aplicações se desenvolvem, tornando-se um processamento mais sofisticado praticamente em tempo real. Inicialmente, as aplicações podem processar streams de dados para produzir relatórios simples e executar ações pouco complexas em resposta, como emitir alertas quando medidas fundamentais excederem determinados limites. Eventualmente, essas aplicações executam modelos de análise de dados mais sofisticados, como a aplicação de algoritmos de Machine Learning e a obtenção de informações mais profundas dos dados. Com o tempo, são aplicados algoritmos complexos de processamento de streams e eventos, como períodos cada vez menores para encontrar os filmes populares mais recentes, enriquecendo ainda mais as informações obtidas.
Exemplos de dados em streaming
- Sensores em veículos de transporte, equipamentos industriais e máquinas agrícolas enviam dados para um aplicativo de streaming. A aplicação monitora o desempenho, detecta de antemão qualquer defeito em potencial e faz automaticamente pedidos de peças extras, o que evita períodos de inatividade do equipamento.
- Uma instituição financeira monitora alterações na bolsa de valores em tempo real, calcula o valor em risco e recompõe carteiras com base nas flutuações de preço das ações.
- Um site do setor imobiliário monitora um subconjunto de dados de dispositivos móveis de consumidores e recomenda em tempo real propriedades a visitar com base em sua localização geográfica.
- Uma empresa de energia solar precisa manter a produtividade da energia para seus clientes, ou pagará multas. Ela implementou uma aplicação de dados em streaming que monitora todos os painéis em campo, e programa serviços em tempo real, o que minimiza os períodos de baixa produtividade de cada painel e os pagamentos de multas associados.
- Uma editora transmite bilhões de registros de sequências de cliques de suas propriedades on-line, agrega e enriquece dados com informações demográficas sobre usuários e otimiza a disposição do conteúdo no site, proporcionando relevância e uma melhor experiência para o público.
- Uma empresa de jogos on-line coleta dados em streaming sobre as interações dos jogadores com o jogo e alimenta os dados em sua plataforma de jogos. Em seguida, a empresa analisa os dados em tempo real, oferece incentivos e experiências dinâmicas para envolver seus jogadores.
Comparação entre o processamento em lotes e o processamento de streams
Antes de utilizar dados em streaming, vale a pena comparar o processamento de streams e o processamento em lotes. O processamento em lotes pode ser utilizado para computar consultas arbitrárias sobre diferentes conjuntos de dados. Ele geralmente computa resultados derivados de todos os dados que engloba e permite a análise profunda de conjuntos de big data. Sistemas baseados em MapReduce, como o Amazon EMR, são exemplos de plataformas compatíveis com trabalhos em lote. Em comparação, o processamento de streams exige o consumo de uma sequência de dados e a 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 monitoramento 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 sem interrupções, ou apenas no registro de dados mais recente. |
Tamanho dos dados | Grandes lotes de dados. |
Registros individuais ou microlotes compostos de alguns registros. |
Desempenho | Latências em minutos a horas. | Exige latência na ordem dos segundos ou milissegundos. |
Análise | Análise complexa. | Métricas simples de funções, agregação e rotação de respostas. |
Muitas empresas estão criando um modelo híbrido ao combinar as duas abordagens, além de manter uma camada em tempo real e uma camada em lote. Primeiro, os dados são processados por uma plataforma de dados em streaming, como o Amazon Kinesis, para extrair informações em tempo real, e depois são mantidos em um armazenamento, como o S3, onde podem ser transformados e carregados para uma variedade de casos de uso de processamento em lotes.
Desafios ao trabalhar com dados em streaming
Trabalho com dados em streaming na AWS
A Amazon Web Services (AWS) oferece várias opções de trabalho com dados em streaming. Você pode aproveitar os serviços de dados em streaming oferecidos pelo Amazon Kinesis ou implantar e gerenciar sua própria solução de dados em streaming na nuvem ou no Amazon EC2.
O Amazon Kinesis é uma plataforma para dados em streaming na AWS, que oferece serviços eficazes para facilitar o carregamento e a análise de dados em streaming, além de permitir a criação de aplicativos de dados em streaming personalizadas para necessidades específicas. Ele oferece três serviços: Amazon Kinesis Data Firehose, Amazon Kinesis Data Streams e Amazon Managed Streaming for Apache Kafka (Amazon MSK).
Além disso, você pode executar outras plataformas de dados em streaming, como Apache Flume, Apache Spark Streaming e Apache Storm – no Amazon EC2 e no Amazon EMR.
Amazon Kinesis Data Streams
O Amazon Kinesis Data Streams permite que você crie seus próprios aplicativos personalizados que processam ou analisam dados em streaming para atender a necessidades específicas. Eles podem capturar e armazenar continuamente terabytes de dados por hora por meio de centenas de milhares de fontes. Você pode então criar aplicativos que consomem os dados do Amazon Kinesis Data Streams para alimentar painéis em tempo real, gerar alertas, implementar definição de preço e anúncios dinâmicos e muito mais. O Amazon Kinesis Data Streams é compatível com estruturas de trabalho para processamento de streams, como Kinesis Client Library (KCL), Apache Storm e Apache Spark Streaming.
Amazon Kinesis Data Firehose
O Amazon Kinesis Data Firehose é o modo mais fácil de carregar dados em streaming na AWS. Ele captura e carrega automaticamente dados em streaming no Amazon S3 e no Amazon Redshift, permitindo uma análise em tempo real usando as ferramentas e painéis de business intelligence atuais que você já utiliza. O serviço também permite implementar com rapidez uma abordagem de ELT e obter benefícios de dados em streaming prontamente.
Amazon Managed Streaming for Apache Kafka (Amazon MSK)
O Amazon MSK é um serviço totalmente gerenciado que facilita a criação e execução de aplicativos que usam o Apache Kafka para processar dados em streaming. O Apache Kafka é uma plataforma de código aberto para criação de pipelines de dados em streaming e aplicativos em tempo real. Com o Amazon MSK, você pode usar as APIs nativas do Apache Kafka para preencher data lakes, fazer streaming de alterações de/para bancos de dados e desenvolver aplicativos de machine learning e análises.
Outras soluções de streaming no Amazon EC2
Você pode instalar as plataformas de dados em streaming que quiser no Amazon EC2 e Amazon EMR, e criar suas próprias camadas de armazenamento e processamento de streams. Ao criar sua solução de dados em streaming no Amazon EC2 e no Amazon EMR, você pode evitar o conflito causado pelo provisionamento da infraestrutura e obter acesso a uma variedade de estruturas de trabalho para armazenamento e processamento de streams. As opções de camada de armazenamento de dados em streaming incluem o Amazon MSK e o Apache Flume. As opções da camada de processamento de streams incluem o Apache Spark Streaming e o Apache Storm.
Próximas etapas
- Saiba mais sobre o Amazon MSK
- Saiba mais sobre o Amazon Kinesis
- Saiba mais sobre os serviços de big data da AWS
- Consulte a página Apache Spark no Amazon EMR
- Converta seus dados em streaming em informações com apenas alguns clique, usando o Amazon Kinesis Data Firehose e Amazon Redshift

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

Comece a criar com o Amazon Kinesis no Console de Gerenciamento da AWS.