Você está na página 1de 20

CIÊNCIAS DE DADOS (BIG DATA PROCESSING AND ANALYTICS)

Arquitetura de Big Data


Modalidade a distância

COLETA E ARMAZENAMENTO DE DADOS

Trilha 2 — Fontes e Recebimento de Dados

Professor: Fabio Lopes


Trilha de Aprendizagem 2 - Fontes e Recebimento de Dados

Sumário
1. Introdução ao estudo da trilha de aprendizagem������������������������������������� 4

2. Explorando os conceitos��������������������������������������������������������������������������� 5

3. Sintese����������������������������������������������������������������������������������������������������� 18

4. Referências��������������������������������������������������������������������������������������������� 19
Trilha de Aprendizagem 2 - Fontes e Recebimento de Dados

1. Introdução ao estudo da trilha de aprendizagem

Projetos analíticos são dependentes das fontes de dados. Bons dados podem garantir
bons resultados. Contudo, há uma complexidade a ser enfrentada. Isso demanda práticas,
princípios e ferramentas adequadas para este propósito.

Podemos obter dados de fontes secundárias ou coletar nossos próprios dados, mas isso
dependerá de um bom planejamento de ações, como já vimos no e-book anterior.

São estes aspectos que estudaremos neste e-book: quais são nossas fontes de dados?
Quais ferramentas utilizamos? E como receberemos estes dados para análises posteriores
ou em tempo real?

De modo complementar, conheceremos os conceitos de ETL e ELT, bem como a arquitetura


Lambda para utilizar dados em tempo real, nos aproximando do conceito de Datamesh.

Bons estudos!

4
Trilha de Aprendizagem 2 - Fontes e Recebimento de Dados

2. Explorando os conceitos

1) Fontes de dados

Como vimos na trilha anterior, para obtermos bons dados, dependemos de um bom
planejamento de ações. Desde a coleta, a organização dos dados, a validação do que
estamos coletando até como vamos armazená-los após a coleta.

Isso diz respeito às fontes primárias, ou seja, ao conjunto de dados que produziremos
para nossas produções analíticas.

Coletar dados pode ser muito interessante, pois nos dá autonomia para decidir sobre
diversos aspectos de nossa coleta, tornando os dados mais adequados para aquilo que
queremos produzir.

No contexto das empresas, temos muitos dados a serem coletados a partir de sistemas
operativos ou transacionais. Temos diversas fontes disponíveis em função das operações
que a empresa desenvolve.

Por exemplo: um sistema de e-commerce pode nos apresentar diversos dados


interessantes para analisarmos e gerarmos novos insights. Esta experiência já é bem
evoluída em termos de inteligência de negócios, também conhecida como Business
Intelligence.

Podemos gerar diversos indicadores e dashboards a partir desses dados, explorando


suas dimensões temporal e espacial e gerando indicadores como vendas por período,
vendas por região, produtos mais vendidos etc.

Por outro lado, existe um universo de dados pouco explorado pelas empresas, são dados
associados às transações. No exemplo do e-commerce, poderíamos trabalhar os dados
sobre a navegação dentro do site: quantos acessos tivemos? Qual é o tempo médio de
permanência do observador? Quantas vezes a venda foi cancelada? Entre outros dados.

Essas fontes nos permitem analisar o processo em si, de modo a possibilitar melhorias,
entendendo melhor o comportamento do cliente em nosso site. Assim, geramos novos
repositórios valiosos para analisar e criar oportunidades em um determinado contexto de
negócios.

5
Trilha de Aprendizagem 2 - Fontes e Recebimento de Dados

Do ponto de vista da taxonomia, podemos classificar os dados como fontes primárias e


fontes secundárias, assim como dados intra organização e dados extra organização.

Um exemplo de taxonomia, proposto em Zrenner et al. (2017, p. 124), é apresentada


como podemos observar na figura 1:

Figura 1 – Taxonomia de Dados

Fonte: ZRENNER et al. (2017).

Cada uma das quatorze dimensões tem de duas a quatro características possíveis e não
são exclusivas. Isso significa que uma dimensão pode ter uma ou mais características de
aplicação.

Conhecer estes aspectos de sua fonte de dados é importante para catalogar e disponibilizar
em repositórios de Big Data. Lembrando que, nos termos da Lei Geral de Proteção de
Dados, é mandatório ter controle sobre os assets de dados, para evitar problemas com a
publicação de dados sensíveis ou não autorizados (na Figura 1, Data Sharing).

Dados adquiridos de outros fornecedores são considerados fontes secundárias. O uso


de dados desta natureza deve prescindir de cuidados adicionais, pois, como nós não
geramos estes dados, não conhecemos o processo de coleta e eventuais gaps que
podemos ter em nossos estudos.

Podemos, então, definir algumas preocupações com o uso dessas fontes, conforme
descrito no Quadro 1:

6
Trilha de Aprendizagem 2 - Fontes e Recebimento de Dados

Quadro 1 – Comparativo de tipos de fontes de dados

Fonte: VALERI (2020).

Ao utilizar dados em estudos científicos, sempre indicamos eventuais limitações referentes


aos dados, independentemente de a fonte ser primária ou secundária. Se considerarmos
a catalogação do dataset em uma empresa, vela a pena pensar em completar o descritivo,
pois quem a utilizar poderá avaliar se a base contribui ou não para os estudos em
andamento.

2) Sensoriamento

Sensores são importantes para melhorar a produtividade em diversos seguimentos do


conhecimento humano. São dispositivos que respondem a estímulos físicos, químicos

7
Trilha de Aprendizagem 2 - Fontes e Recebimento de Dados

ou biológicos, como calor, luz, som etc. E transmitem um impulso correspondente à


intensidade do estímulo.

Dessa forma, podemos sensorizar estímulos físicos e processar os resultados para atuar
ou predizer cenários em um determinado contexto de aplicação.

Um biossensor, por exemplo, permite realizar o monitoramento de moléculas em áreas


como medicina e meio ambiente.

Sensores possuem duas unidades fundamentais de funcionamento: o receptor e o


transdutor. O receptor é responsável por transformar a informação física, química ou
biológica em energia. O transdutor lê a energia gerada e a transforma em sinal analítico,
útil para as medições. A Figura 2 sintetiza este conceito.

Figura 2 – Processo de coleta de dados por meio de sensores

Fonte: Elaborada pelo autor.

Utilizamos sensores para diversos propósitos em nosso cotidiano. Com eles, podemos
prever o tempo, gerenciar o trânsito, controlar dispositivos domésticos, monitorar linhas
de produção industriais e até monitorar nosso corpo.

Apresentamos, no Quadro 2, uma lista de tipos de sensores e suas finalidades.

8
Trilha de Aprendizagem 2 - Fontes e Recebimento de Dados

Quadro 2

Sensores são utilizados para coletar dados que apoiarão nossas tarefas analíticas. Mas
também podem servir como fonte de dados para definir a ação de atuadores na automação
de processos industriais.

Além dos sensores físicos, químicos e biológicos, também podemos classificar os sensores
lógicos. Estes sensores coletam dados sem depender de dispositivos de hardware. São
implementados como drive de sensor para auxiliar na ação de atuadores, gerando estados
como True/False, On/Off.

Voltando aos dados, podemos classificar sensores lógicos como aqueles gerados a partir
de software. Eles são capazes de coletar aspectos de funcionamento de um sistema ou
comportamentos humanos de interação com o sistema. Por exemplo a navegação em um

9
Trilha de Aprendizagem 2 - Fontes e Recebimento de Dados

site ou os tempos de interação em um aplicativo.

Desta forma, podemos sintetizar, na Figura 3, o espectro de sensoriamento, cobrindo


a coleta de dados, desde as entidades físicas, da natureza, até entidades lógicas do
mundo artificial – dados gerados em processos e aplicações.

Figura 3 – Espectro de Sensoriamento

Fonte: Elaborada pelo autor.

Outro aspecto que podemos explorar sobre os sensores e a coleta de dados está na
origem dos dados, considerando as aplicações diversas que temos.

Podemos receber dados de aplicações de provedores de dados, chamadas de Aplicações


Third-Party, conectados por API, que recebemos dados de sensores ou gerados por
aplicações em broadcast, como os dados da bolsa de valores.

Muitas vezes, criamos nossas próprias aplicações de coleta de dados por meio de web
scraping ou web spiders.

Web scraping é uma técnica de coleta, por meio de acesso a uma URL, que copia os
dados da página de modo automático, a fim de extrair conteúdos específicos de lá.
Esse processo pode ser automatizado para gerar um dataset específico. Por exemplo,
monitoramento de preços ou clima, entre outros.

Web spiders ou crawlers são robôs que atuam de modo similar aos scrapers, porém, agem
em diversas páginas, de modo metódico e automatizado. Eles são iniciados com uma lista
de endereços web, mas esta pode ser ampliada a partir dos hiperlinks disponíveis nas
URLs dos endereços originais.

10
Trilha de Aprendizagem 2 - Fontes e Recebimento de Dados

Ao mesmo tempo, as aplicações intraorganizacionais também demandam carga de


dados, como os ERPs e as aplicações que automatizam as transações corporativas.

Dessa forma, podemos compor um cenário de várias fontes de coleta, as quais podem
alimentar tarefas analíticas em tempo real ou não, mixando dados das fontes e entregando
para o BI ou para descoberta de conhecimento por meio de Ciência de Dados. A
Figura 4 sintetiza esse conceito.

Figura 4 – Hadoop e Data Warehouse em uma infraestrutura conectada

Fonte: STACKOWIAK et al. (2015).

Observe, na Figura 4, que as diversas fontes de dados (ERP, CRM, Third-Party, Mobile
etc.) são recebidas, inicialmente, em um cluster Hadoop (início do pipeline). Depois de um
pré-processamento, os dados são transferidos para o Data Warehouse via ETL (Extract/
Transform/ Loading). Essa é uma pequena variação do processo tradicional, pois o ETL
normalmente é realizado diretamente das bases de dados de aplicações ERP. A ideia
aqui é enriquecer dados a partir de várias fontes.

11
Trilha de Aprendizagem 2 - Fontes e Recebimento de Dados

As coletas são tratadas na camada de ingestão de dados em uma arquitetura de Big


Data. Tal camada deve prover ferramentas capazes de absorver essas demandas, seja
de dados estruturados ou não, em lote ou fluxo.

Vejamos alguns exemplos de ferramentas de coleta de dados.

Apache Flink

É um framework e um engine de processamento distribuído para cálculos em fluxos


de dados. Foi projetado para ser executado em ambientes de cluster. Performa com
velocidade e utiliza armazenamento in-Memory, com facilidade para scale-out. A Figura 5
apresenta as etapas de coleta do Flink.

Figura 5 – Etapas de coleta do Apache Flink

Fonte: <https://flink.apache.org/>.

Os dados são coletados de diversas fontes e podem ser em fluxo ou batch. O Flink utiliza
os recursos do cluster para preparação dos dados e futura disponibilização para as
aplicações analíticas.

Apache Flume

É um sistema distribuído, confiável e disponível para coletar, agregar e mover grandes


quantidades de dados de logs, de fontes diferentes para um armazenamento centralizado.
A Figura 6 apresenta o processo de atuação do Flume.

12
Trilha de Aprendizagem 2 - Fontes e Recebimento de Dados

Figura 6 – Etapas do Apache Flume

Fonte: <https://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html>.

Como as fontes de dados são personalizáveis, o Flume pode ser usado para transportar
dados de eventos, atuando como agente, coletando não somente os dados de tráfego
de rede, como também dados de mídias sociais, mensagens de e-mail ou qualquer outra
fonte.

Apache Kafka

Este produto é um Event Streaming. Na prática, isso significa capturar, em tempo real,
dados das fontes de eventos, como banco de dados, sensores, dispositivos móveis,
serviços em nuvem e aplicativos de software. Ele armazena de modo centralizado, para
manipular, processar e reagir a eventos em tempo real ou retrospectivamente. A Figura 7
apresenta seu esquema de funcionamento.

13
Trilha de Aprendizagem 2 - Fontes e Recebimento de Dados

Figura 7 – Esquema de funcionamento do Apache Kafka

Fonte: ALTMANN (2018).

Como podemos observar na Figura 7, o Cluster Kafka é o elemento central da aplicação.


Ele é responsável por conectar, receber e armazenar as mensagens dos produtores de
dados, para, depois, responder às requisições dos consumidores. Ele trabalha com o
conceito de message queue (fila de mensagens, atuando como uma camada que
desacopla as partes, evitando chamadas síncronas entre produtores e consumidores.
Isso evita a conexão direta entre as partes.

3) ETL versus ELT

Estas duas siglas estão diretamente relacionadas com pipelines de dados. Remetem à
prática de coletar processar e entregar dados para as aplicações analíticas. Portanto,
esses padrões precisam ser dominados por profissionais que trabalham com dados.

• ETL – Extract / Transform / Load

• ETL – Extract / Load / Transform

14
Trilha de Aprendizagem 2 - Fontes e Recebimento de Dados

Contudo, isso não significa uma simples troca na ordem das letras dos acrônimos. Que tal
entendermos melhor esta questão?

Como já dissemos anteriormente, o acrônimo ETL refere-se à prática tradicional do BI,


de carregar dados de fontes transacionais para o Data Warehouse, onde estabelecemos
uma conexão para extração de dados de um banco de dados OLTP (Online Transaction
Process), passamos por transformações de dados para adequação de formato (Transform)
e entregamos o resultado desse processo como carga para o Warehouse (Load).

No caso do ELT, o processo é mais aderente ao mundo Big Data e à descoberta do


conhecimento. Os dados brutos (raw data) são coletados de diversas fontes em processos
de ingestão (Extract), utilizando ferramentas como aquelas citados no tópico anterior.

Em seguida, os dados são armazenados em Repositórios massivos de dados, no caso,


um Cluster Hadoop (Load), no formato original.

Quando houver demanda para esses dados, eles serão preparados conforme as
necessidades (transform). Assim, um conjunto de dados pode ser utilizado em várias
aplicações analíticas, preparados em formatos diferentes, conforme a demanda.

Ou seja, os dois procedimentos coexistem, de modo a atender a demandas específicas


de Data Warehouse e Data Science.

Se olharmos melhor esses procedimentos, conseguiremos observar que o ETL apresenta


algumas desvantagens como:

• Inflexibilidade – existe uma rigidez no processo, mudanças geram custo e podem


afetar os consumidores do processo.

• Falta de visibilidade – as transformações realizadas podem obscurecer algumas


informações originais. Por exemplo, em uma mudança de granularidade, podemos
perder alguns dados importantes.

• Falta de autonomia – a estruturação de um ETL depende diretamente das


habilidades de quem executa e poderá incorporar limitações. Além disso, os dados
já estarão disponíveis no formato alterado, sem a possibilidade de fazer engenharia
reversa.

15
Trilha de Aprendizagem 2 - Fontes e Recebimento de Dados

Dessa forma, os processos de Data Science podem ser impactados por não dispor dos
dados originais.

O processo ELT, por sua vez, traz vantagens ao conjunto, pois disponibiliza o dado bruto,
o que permitirá dispor outros formatos, conforme a demanda analítica, apoiando também
os casos de tarefas que originalmente dependiam do ETL.

Este é um contexto no qual observamos a evolução constantemente. Talvez, no futuro,


tenhamos o ET(L), mas consolidado em nossas aplicações (LAFLEUR, 2020).

4) Arquitetura Lambda

Um último aspecto que estudaremos nesta trilha diz respeito à coleta e ao uso de dados
em tempo real. Os dados coletados em fluxo podem ser utilizados em tarefas analíticas
executadas posteriormente ao evento da coleta ou podem ser utilizados no momento
da coleta, em tempo real. Ainda temos a situação em que os dados em tempo real
são analisados conjuntamente com a série histórica de dados coletado para análises
específicas.

Assim, o entendimento dessas necessidades converge para uma arquitetura capaz de


atendê-las, que ficou conhecida no mercado como Arquitetura Lambda.

A Figura 8 apresenta detalhes dessa arquitetura.

Figura 8 – Elementos da Arquitetura Lambda

Fonte: <https://databricks.com/glossary/lambda-architecture>.

16
Trilha de Aprendizagem 2 - Fontes e Recebimento de Dados

Conforme observamos na Figura 8, novos dados (1) chegam para a plataforma, coletados
por ferramentas como Kafka, Flume, Airflow, entre outras. A ferramenta de coleta
disponibiliza os dados coletados em duas frentes de processamento. A primeira é a Batch
Layer (2), na qual armazenaremos os dados como raw data em um Master Dataset (esta
notação é utilizada pela plataforma Databricks, mas cabe dizer que é o repositório de raw
data de um Data Lake).

Os dados armazenados no Batch Layer são os mesmos que vimos anteriormente, os


quais seguem o pipeline para transformações e disponibilização em tarefas analíticas.
Essas tarefas serão processadas no Serving layer (3), como faríamos em uma aplicação
analítica convencional.

A diferença surge no Speed Layer (4). Aqui, analisaremos os dados em tempo real,
utilizando ferramentas apropriadas para essa tarefa. A disponibilidade é imediata para as
queries de aplicações consumidoras do pipeline (5).

Por fim, observe que as queries podem consumir dados da Serving Layer e da Speed
Layer simultaneamente, dando mais flexibilidade à plataforma.

Este assunto será complementado quando discutirmos o tema Datamesh, na trilha 8 deste
curso.

17
Trilha de Aprendizagem 2 - Fontes e Recebimento de Dados

3. Sintese

Encerramos nosso segundo e-book com muitos assuntos interessantes no contexto da


coleta e do armazenamento de dados analíticos.

Vimos a taxonomia dos dados para coleta, a qual é importante para sabermos classificar
os conjuntos de dados que coletaremos, considerando fontes primárias e secundárias,
dados estruturados (ou não) e aspectos como acurácia, completude e compartilhamento,
como visto na taxonomia de Zrenner et al. (2017).

Estudamos sensores, diversos modelos, transdutores e atuadores. Vimos que sensores


podem ser físicos ou lógicos e que eles coletam dados da natureza ou do meio artificial,
em outras palavras, os contextos que criamos nas empresas ou nas redes sociais.

Depois, conhecemos algumas ferramentas de coleta de dados e suas características.


Discutimos diferenças entre ETL e ELT. E fechamos com a arquitetura Lambda.

Como disse, trabalhamos com muitos assuntos interessantes nesta semana. Espero quer
você tenha gostado deste conteúdo.

Bons estudos!

18
Trilha de Aprendizagem 2 - Fontes e Recebimento de Dados

4. Referências

ALTMANN, C. Introdução ao Apache Kafka. Medium, 1º maio 2018. Disponível em:


<https://medium.com/@crisaltmann/introdu%C3%A7%C3%A3o-ao-apache-kafka-
b34917eba323>. Acesso em: 7 out. 2021.

LAFLEUR, J. Why the Future of ETL is not ELT, but EL(T). Airbyte, 3 nov. 2020. Disponível
em: <https://airbyte.io/blog/why-the-future-of-etl-is-not-elt-but-el>. Acesso em: 7 out. 2021.

STACKOWIAK, R. et al. Big Data and the internet of Things: enterprise information
architecture for a new age. New York: Apress, 2015.

ZRENNER, J. et al. Data Source Taxonomy for Supply Network Structure Visibility.
HICL, p. 117-137, out. 2017, Disponível em: <https://www.researchgate.net/
publication/321035890_Data_Source_Taxonomy_for_Supply_Network_Structure_Visibility/
link/5a09c3290f7e9b7b4168e128/download>. Acesso em: 6 out. 2021.

19

Você também pode gostar