Você está na página 1de 15

FRAMEWORK DE

BIG DATA

Fabiano Berlinck Neumann


Stream de dados:
definição e fontes
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:

 Definir stream de dados.


 Exemplificar as fontes de stream de dados.
 Identificar os problemas que podem ocorrer na ingestão de dados
via stream.

Introdução
Um conceito cada vez mais popular nos últimos anos é o de big data,
que diz respeito ao tratamento de uma vasta quantidade de dados. O
processamento desses dados é inviável em métodos tradicionais por
conta da variedade de formatos não padronizados e da necessidade de
processamento dos dados em alta velocidade e eficiência, para trans-
formar dados brutos em algo que possa ser entendido e utilizado como
conhecimento para melhorar a tomada de decisão.
Assim como big data, outros conceitos estão sendo popularizados,
como IoT, acrônimo para Internet das Coisas, aprendizagem de máquina,
UX/UI, acrônimo para experiência e interface de usuário, entre outros.
Esses conceitos refletem o amadurecimento digital, uma era de riqueza
de informação para diferentes segmentos, dispositivos cada vez mais
acessíveis e grande número de usuários com acesso à tecnologia, que
geram um crescente número de dados e passam boa parte de seu tempo
conectados.
De acordo com Matos ([2015]), os sensores são um dos equipamentos
que estão se tornando cada vez mais acessíveis, por conta da redução
dos custos em sua produção, o que possibilita que cada objeto tenha
2 Stream de dados: definição e fontes

seus próprios sensores e transmitam seus dados em tempo real, como


sua localização. Com isso, assim como quando aconteceu o crescimento
da internet anos atrás, será necessário superar novos desafios, como a
possibilidade de aplicações inéditas de monitoramento e controle para
lidar com a atual realidade stream de dados em quantidade ainda maior,
sendo transmitida ao mesmo tempo, ininterruptamente e exigindo pro-
cessamento em tempo real.
Neste capítulo, você vai aprender o que é stream de dados, suas
características e fontes, conhecendo exemplos de fontes de dados, pro-
blemas relacionados a dados vindos de múltiplas fontes e a influência
desses problemas.

1 O que é stream de dados?


Segundo Vasconcelos (2019), data streaming ou stream de dados é uma evo-
lução do big data pela forma de prospectar e analisar os dados dinamicamente
e de modo contínuo, tendência que pôde ser observada na evolução do vídeo,
que se deu de maneira similar no streaming, com big data. Além do vídeo,
essa evolução aconteceu em diversas áreas da internet, gerando um mundo
conectado como um todo e foi acompanhada de novas tecnologias, termos e
comportamentos. O stream de dados está em todos os lugares e é considerado
um dos formatos que mais cresce nos últimos anos.
O autor ainda afirma que o número de empresas que exploram os dados
com essa abordagem é relativamente baixo e que várias das empresas
que usam tecnologias com streaming não têm consciência da diferença
que essa forma de tratar os dados pode causar estrategicamente, já que
é grande a disparidade entre tratar os dados capturados em determinado
período e tratar os dados que são atualizados e fornecidos constantemente
por suas fontes.
Para exemplificar o que é o stream de dados, diversos autores utilizam a
metáfora de um rio que possui um fluxo constante, tendo em vista que seu
fim e início não são vistos e sua ideia principal está ligada ao fluxo em si,
que não para. Outra metáfora, menos utilizada, é a do semáforo, considerando
que ele nunca para enquanto estiver ligado, de forma que também não tem
um início e um fim bem definidos. O stream de dados e o processo como um
todo, que gera a possibilidade de análise, podem ser observados na Figura 1.
Stream de dados: definição e fontes 3

Figura 1. Esquema de stream de dados com captura, ingestão, processamento e análise


desses dados.
Fonte: Adaptada de Hitachi Vantara (2018).

Nesse fluxo de dados contínuo, o processamento se dá pela captura de um


trecho, conhecido como janela. Uma vez coletados, esses dados são processados
sequencialmente e de forma incremental, registro por registro ou em uma
janela que desliza com base no tempo. Esse processo de captura de dados na
janela é conhecido como ingestão de dados, o que possibilita o processamento
e a realização da análise desses dados.
Para Techopedia (2019), um stream de dados é definido como um conjunto
de sinais digitais que são utilizados para diferentes tipos de transmissão de
conteúdo. Eles funcionam de várias maneiras diferentes em diversas tecnologias
modernas e legadas, e precisam ser normalizados, limpos e padronizados, por
meio de padrões industriais, de modo que possam suportar transmissão tanto
em redes globais quanto em acesso individual.
São diversos os profissionais que estão envolvidos nas questões de controle
de fluxos de dados e monitoramento de seu uso, sejam eles de TI ou de outras
áreas. No caso de administradores de redes, examinam o fluxo de dados
enquanto entram e saem dessas redes, bem como trabalham em melhorar as
topologias existentes ou na criação de novas. Já os profissionais envolvidos
com tarefas de TI que são relacionadas à internet examinam como a rede
global trata questões de transporte ao longo da transmissão.
4 Stream de dados: definição e fontes

Os profissionais que não são de TI, como é o caso de contadores e pesqui-


sadores, lidam com distintos tipos de informações e realizam o processamento
delas de diferentes maneiras para que possam obter os resultados desejados.
Enquanto isso, o público ou usuários finais utilizam os streams de dados e
analisam como eles podem desempenhar um papel significativo nas novas
tecnologias, em suas empresas e em suas vidas.
Aplicações criadas para coleta, processamento e análise de dados em strea-
ming necessitam de uma abordagem específica de tratamento desses dados, em
que o processamento precisa acontecer em tempo real à medida que os dados
chegam. O processamento e análise em tempo real estão se tornando críticos
para as empresas enquanto estratégia para tomada de decisão e sobrevivência
dos negócios (PENCHIKALA, 2016).
De acordo com Alley (2018), stream de dados são dados gerados em tempo
real e, diferentemente do envio em lotes, têm relação com o processo de envio
de registros de dados de forma contínua à medida que os dados são gerados.
Geralmente, são úteis para fontes que enviam dados pequenos, na casa de
kilobytes, que exigem rápido envio e processamento para que os dados não
se tornem obsoletos no momento de seu processamento, mesmo que essa
espera seja de alguns minutos. Esse tipo de solução exige armazenamento
em uma infraestrutura que seja adequada e com suporte a métodos de análise
de stream de dados.
Tradicionalmente, os dados são enviados em lotes e tecnologias de big data
podem ser utilizadas para processamento de grandes volumes desses dados
simultaneamente, com processamento que pode levar longos períodos para
acontecer. Mesmo que possa ser uma maneira eficiente para tratar grandes
volumes de dados, existem aplicações de big data em que o tratamento de dados
não é viável dessa forma, como no caso das aplicações com fluxo contínuo
de dados, que são atualizados o tempo todo.
Um exemplo que pode representar a diferença entre o stream de dados e o
envio em lotes é o caso de uma empresa que necessita realizar uma pesquisa
de mercado e procura um instituto de pesquisa para levantar dados de um
determinado período, para certo segmento. O instituto irá fornecer o apanhado
mais recente, do último mês, bimestre, semestre, ano ou o período que a
empresa solicitar, mas essas informações não serão fornecidas em tempo
real e com atualização constante, o que pode causar impacto na diferença
de estratégia adotada para realização da análise dessa quantidade de dados
(VASCONCELOS, 2019).
Stream de dados: definição e fontes 5

Outro cenário é o caso de análise de informações das redes sociais, por


meio dos dados fornecidos pelos usuários dessas plataformas, que permitem
que anunciantes e empresas tenham uma vasta quantidade de dados para tratar,
por meio de uma estratégia que possibilita que essa análise seja constantemente
refeita. Isso acontece por conta das informações serem oferecidas de forma
constante para o banco de dados das redes sociais, já que os usuários fornecem
dados diariamente quando a acessam, seja por compartilhar localização mesmo
sem realizar uma publicação, por comportamento de navegação, pelos seus
relacionamentos e interações na rede ou diversas outras ações que podem
fornecer dados mesmo que os aplicativos estejam em segundo plano.

Saiba mais sobre o aprendizado do comportamento de um usuário de jogos compu-


tacionais lendo a tese Mineração de fluxos contínuos de dados para jogos de computador,
de Rosane Maria Maffei Vallim.

Um ponto importante para o uso de stream de dados é que as opera-


ções nesse modelo não impedem o uso de dados armazenados em relações
convencionais. Apesar disso, existem algumas diferenças nesse modelo que
podem ser destacadas, como a chegada dos dados ser on-line, o sistema não
ter controle da ordem de chegada dos dados, o tamanho potencialmente ili-
mitado dos fluxos de dados, bem como a dificuldade de recuperação de um
fluxo de dados já processado que não seja armazenado explicitamente e por
completo em memória, o que em muitos casos não é viável, pois a memória
costuma ser pequena se comparada ao tamanho dos fluxos de dados (GAMA;
RODRIGUES, 2007).
Essas informações já são disponibilizadas para boa parte de grandes empre-
sas e anunciantes, de modo que o usuário precisa apenas fornecer informações
para as plataformas que fazem a coleta constante de dados. Isso é o que acontece
quando os usuários realizam buscas por produtos em um dos motores de busca
ou em determinadas empresas que vendem produtos na internet e, então,
começam a receber anúncios desses mesmos produtos ou itens relacionados
por e-mail ou ao acessarem suas redes sociais (VASCONCELOS, 2019).
6 Stream de dados: definição e fontes

2 Exemplos de fontes de stream de dados


O conceito de Internet das Coisas, ilustrado na Figura 2, e as tecnologias rela-
cionadas também impulsionam essa nova realidade que ajuda a gerar cada vez
mais dados, com apoio de conceitos, como cidades, casas e redes inteligentes,
indústria 4.0, entre outros, que permitem que diversos dispositivos permaneçam
conectados e que são alguns dos responsáveis pela transformação de big data
para suportar tecnologias que envolvem stream de dados.

Figura 2. Exemplo de um ecossistema de Internet das Coisas.


Fonte: Peloi (2015, documento on-line).

Por conta desses conceitos, são diversos os dispositivos e equipamentos


existentes, além dos que estão surgindo, cada vez mais acessíveis, em maior
variedade e quantidade, que fazem com que os usuários se mantenham mais
conectados e com acesso à internet. Alguns exemplos desse tipo de equipamento
são os projetos de geladeira que se conectam na internet com o objetivo de
fornecer dados a respeito de hábitos alimentares, de economia de energia e que
podem prever solicitação de itens a serem comprados, bem como dispositivos
que limpam as casas que podem fornecer o desenho e tamanho interno, além
de mapear os móveis e eletrodomésticos.
De acordo com Alley (2018), existe uma grande variedade de fontes de
dados de streaming, como telemetria de equipamentos conectados na internet,
Stream de dados: definição e fontes 7

arquivos de log de usuários que estejam utilizando aplicações web, aplicativos


em smartphones ou televisores, transações de comércio eletrônico, informa-
ções de redes sociais, serviços geoespaciais e de geolocalização, assim como
de atividade de jogadores em um jogo on-line com múltiplos participantes
simultâneos.
Além dessas, é possível citar outras fontes de stream de dados e aplicações que
as utilizam, como o caso de uma instituição financeira que rastreia as mudanças
no mercado financeiro e ajusta as configurações das carteiras de investimento
de seus clientes com base nas restrições configuradas, como a realização da
venda ou da compra de uma ação caso ela atinja determinado valor de mercado.
Também é possível considerar o caso de uma rede elétrica que tem a sua taxa de
transferência monitorada e que gera diferentes alertas no caso de determinados
limites serem ultrapassados, assim como acontece em hidrelétricas, como a de
Itaipu, que possui sensores de monitoramento das turbinas geradoras e da situ-
ação da barragem, de forma que possibilite respostas imediatas para situações
emergentes, além de mais informações para a sua manutenção.
Assim como as fontes de dados citadas anteriormente, boa parte de dados
de equipamentos de Internet das Coisas são adequados para aproveitar técnicas
que tratam fluxos de dados, o que torna sensores de tráfego e de saúde, logs de
transações e de atividades, entre outros equipamentos e técnicas semelhantes,
bons candidatos para esse tipo de serviço, que é ideal para séries temporais e
de detecção de padrões ao longo do tempo.
Além dos sensores de tráfego e de saúde, que ajudam a melhorar o fluxo
no trânsito e a garantir a sobrevivência de pacientes em risco, existe uma
vasta quantidade de propósitos para os quais os sensores podem ser utilizados,
como no caso de um sensor em um avião que mede a sua altura para controle
de tráfego aéreo, e um sensor em um ponto no mar para medir a altura da
sua superfície e estudar o comportamento do oceano, bem como para medir
a variação do nível do mar ao longo dos anos.
As imagens de satélite e de câmeras também são bons exemplos de fontes
de stream de dados. Os satélites enviam vários terabytes de imagens por dia
e, apesar de as imagens das câmeras de segurança possuírem menor resolução
que as imagens dos satélites, elas são mais numerosas e cada uma produz um
stream de imagens com menor intervalo, podendo chegar a números absurdos,
como no caso de Londres, que possuía quase 1 milhão de câmeras até 2019,
e da China, que possuía aproximadamente 200 milhões de câmeras no seu
circuito fechado de televisão.
Outro exemplo bastante interessante é o caso do serviço SurfConnect,
que informa aos usuários as condições das ondas, tempo, temperatura, vento
8 Stream de dados: definição e fontes

e maré de praias do Rio de Janeiro e de São Paulo, apresentando imagens


de câmeras dessas praias para que surfistas e outros esportistas possam
acompanhar suas condições em tempo real, além de enviar notificações
quando as praias estão nas melhores condições para a prática de esportes
marítimos.

Existem algumas plataformas muito populares, como as de streaming de vídeos


Netflix e Amazon Prime Videos, em que é possível assistir a filmes, séries, docu-
mentários e musicais, bem como as plataformas de streaming de música, como
Spotify, Deezer e Soundcloud, nas quais os usuários ouvem músicas, marcam seus
artistas, álbuns e músicas favoritas e criam listas que podem ser compartilhadas
com os amigos.

Todos esses tipos de dados, geralmente, são utilizados para agregação,


correlação, filtragem e/ou amostragem em tempo real, o que permite
que os dados sejam analisados à medida que são criados e gerem ideias
a respeito de uma grande variedade de atividades, como é o caso dos
sistemas de monitoramento de operações, atividades dos servidores web,
cliques em botões de páginas, localização geográfica de dispositivos, entre
muitos outros.

3 Problemas relacionados a stream de dados


Um dos principais desafios de tratar streams de dados tem relação com a
sua geração contínua de dados, por meio de diversas fontes e dispositivos
diferentes, entregues à estação em uma grande variedade de formatos. São
diversos os dispositivos e sensores, cada um com o seu propósito, como nos
casos de medição de temperatura, altura em relação ao nível do mar, nível
de óleo de um motor, posição de uma turbina eólica e pressão atmosférica
(PEARLMAN, 2019).
Mesmo que estejam todos integrados em uma única solução, geralmente,
são produzidos por fabricantes diferentes e os dados podem possuir padrões
Stream de dados: definição e fontes 9

bastante distintos. Esse cenário de diferentes sensores e padrões de dados


significa que o esquema de dados de cada solução pode mudar de forma
imprevisível e se tornar um problema para quem lida com o fluxo de dados.
Além disso, ainda existem relativamente poucos profissionais que possuem
habilidade e conhecimento para trabalhar com esse tipo de solução, comparado
ao número de empresas e gestores que têm interesse em utilizá-las.
Existem situações em que as fontes geram fluxos de dados que não causam
grandes problemas, como no caso de um sensor no oceano que envia a leitura
de temperatura da superfície para a estação e que possui variação que permite
o envio a cada hora. Esse caso tem uma taxa de dados baixa e com uma única
fonte, de forma que não sobrecarrega a tecnologia moderna e torna possível
armazenar o fluxo inteiro em memória durante milhares de anos (LESKOVEC;
RAJARAMAN; ULLMAN, c2014).
No caso de um sensor que informa a altura da superfície e que contenha
um GPS acoplado, como a altura da superfície varia drasticamente mais
rápido ao longo do tempo se comparada à temperatura, pode ser necessário
realizar o envio da informação para a estação a cada décimo de segundo. Se
essa informação for composta por um número real de 4 bytes por envio, serão
produzidos aproximadamente 3.5 megabytes por dia, e ainda assim levará
um tempo considerável para encher a memória principal da estação, ainda
mais para um único disco. Entretanto, para que o estudo do comportamento
do oceano se torne realmente interessante e possa gerar mais conhecimento,
talvez seja necessário utilizar um milhão de sensores, cada um enviando um
stream de dados para a estação com a taxa de 10 envios por segundo. Consi-
derando o oceano todo, um milhão de sensores ainda é um número pequeno,
mas que gera 3.5 terabytes de dados por dia, o que é o suficiente para causar
a preocupação em relação a quais dados devem ser mantidos em memória e
quais serão armazenados em disco.
Dessa forma, existem algumas restrições que precisam ser consideradas
para trabalhar com esse tipo de dados, como fluxos que chegam rapidamente
às estações e processamento de elementos que deve acontecer em tempo real,
para que a oportunidade de processamento sem acessar o armazenamento em
disco não seja perdida, tendo em vista que, geralmente, é importante que os
algoritmos de processamento de fluxos sejam executados na memória principal,
sem que os dados tenham que passar pelo armazenamento em disco ou com
raros acessos ao disco para obtenção dos dados.
10 Stream de dados: definição e fontes

Outra restrição tem relação com a quantidade de fluxos. Mesmo que


o stream de dados seja relativamente lento ou com baixa frequência de
chegada à estação e que ele utilize uma pequena quantidade de memória
em seu processamento, a solução como um todo pode conter uma imensa
quantidade de streams chegando simultaneamente, de forma que todos
somados podem exceder a quantidade de memória principal disponível.
Com isso, seria fácil resolver diversos dos problemas de stream de dados
se a memória principal fosse grande o suficiente para tratar todos os dados
simultaneamente. Todavia, como essa não é a realidade, esses desafios se
tornam mais complexos e exigem novas técnicas para que sejam executados
em uma máquina real a uma taxa realista e existem duas generalizações que
podem auxiliar nesse processo.
A primeira delas diz respeito sobre a melhor eficiência em se obter uma
resposta aproximada ao invés de uma solução precisa, na maioria dos casos. Já
a segunda está relacionada com as diversas técnicas de funções hash, que se
tornam úteis para esse tipo de problema, tendo em vista que introduzem uma
aleatoriedade útil no comportamento dos algoritmos de forma que produzam
os resultados aproximados que são bastante próximos do resultado exato.
Para Alley (2018), streams de dados podem ser utilizados como uma
ferramenta poderosa e possuem alguns desafios que são comuns quando
se trata de fontes desses tipos de dados. Portanto, esse tipo de solução
exige planejamento em relação a alguns pontos principais, como criação
de um plano de escalabilidade e de durabilidade, que trata da conservação
das características e duração de sua existência, além de um plano que in-
corpore tolerância a falhas tanto na camada de processamento quanto de
armazenamento.
Assim, é possível concluir que stream de dados é uma forte e crescente
tendência no mundo do big data, devido ao desejo das empresas e gestores
de conhecer o comportamento dos usuários, diminuir os gastos, crescer seus
negócios e aumentar a sua renda, ao aumento do número de equipamentos e
dispositivos cada vez mais interconectados, além da necessidade dos usuários
de ter mais conhecimento e controle sobre diversos aspectos de suas vidas.
Contudo, ainda existem muitos desafios que precisam ser superados nos pró-
ximos anos, fato que impulsiona a criação de novas tecnologias, que evoluem
cada vez mais rápido.
Stream de dados: definição e fontes 11

ALLEY, G. What is data streaming?. 2018. Disponível em: https://dzone.com/articles/


what-is-data-streaming. Acesso em: 25. mar. 2020.
GAMA, J.; RODRIGUES, P. P. Data stream processing. In: GAMA, J. GABER, M. M. (ed.). Lear-
ning from data streams: processing techniques in sensor networks. New York: Springer,
2007. p. 25–39. Disponível em: https://www.researchgate.net/publication/236007656_
Data_Stream_Processing. Acesso em: 25 mar. 2020.
HITACHI VANTARA. Streaming analytics. 2018. Pentaho documentation. Disponível em:
https://help.pentaho.com/Documentation/8.2/Products/Data_Integration/Streaming.
Acesso em: 25 mar. 2020.
LESKOVEC, J.; RAJARAMAN, A.; ULLMAN, J. D. Mining of massive datasets. c2014. Disponível
em: http://infolab.stanford.edu/~ullman/mmds/book.pdf. Acesso em: 25 mar. 2020.
MATOS, D. Internet of things e stream de dados. [2015]. Disponível em: http://www.
cienciaedados.com/internet-of-things-e-stream-de-dados/. Acesso em: 25 mar. 2020.
PEARLMAN, S. 2 Key challenges of streaming data and how to solve them. 2019. Disponível
em: https://www.talend.com/resources/data-streaming-challenges/. Acesso em: 25
mar. 2020.
PELOI, R. TechBeer: o podcast da Sensedia!: ep. 1 internet das coisas. 2015. Disponível
em: https://sensedia.com/podcast-techbeer/techbeer-o-podcast-da-sensedia-ep-1-
-internet-das-coisas/. Acesso em: 25 mar. 2020.
PENCHIKALA, S. Big Data com Apache Spark part 3: Spark Streaming. 2016. Disponível em:
https://www.infoq.com/br/articles/apache-spark-streaming/. Acesso em: 25 mar. 2020.
TECHOPEDIA. Data stream. 2019. Disponível em: https://www.techopedia.com/defini-
tion/6757/data-stream. Acesso em: 25 mar. 2020.
VASCONCELOS, N. Data streaming: uma vertente do Big Data. 2019. Disponível em:
https://zoeweb.com.br/data-streaming/. Acesso em: 25 mar. 2020.

Leitura recomendada
VALLIM, R. M. M. Mineração de fluxos contínuos de dados para jogos de computador. 2013.
Tese (Doutorado em Ciências da Computação e Matemática Computacional) — Instituto
de Ciências Matemáticas e de Computação, Universidade de São Paulo, São Carlos,
2013. Disponível em: https://teses.usp.br/teses/disponiveis/55/55134/tde-30082013-
101303/publico/monografia_revisada.pdf. Acesso em: 25 mar. 2020.
12 Stream de dados: definição e fontes

Os links para sites da web fornecidos neste capítulo foram todos testados, e seu fun-
cionamento foi comprovado no momento da publicação do material. No entanto, a
rede é extremamente dinâmica; suas páginas estão constantemente mudando de
local e conteúdo. Assim, os editores declaram não ter qualquer responsabilidade
sobre qualidade, precisão ou integralidade das informações referidas em tais links.

Você também pode gostar