Prévia do material em texto
Pipeline de Dados_
Ricardo Brito Alves
2023
2
SUMÁRIO
Capítulo 1. Por que um Pipeline de Dados? ........................................................... 7
Inteligência Empresarial ou de Negócios ........................................................................ 7
DIKW – Data Information Knowledge Wisdom .......................................................... 10
Big Data e Analytics ................................................................................................................. 14
Ferramentas usadas em Big Data e Data Analytics .................................................. 16
Razões para usar o Big Data ................................................................................................ 17
Os 7 V’s do Big Data ................................................................................................................. 18
Transformação Digital pelo uso da Tecnologia ........................................................... 27
Transformação Digital ............................................................................................................ 30
O que é ser Data Driven? ....................................................................................................... 31
Data Driven Decision Making – DDDM ............................................................................ 33
Dados x Dataset x Databases .............................................................................................. 39
Tipos de Datasets ..................................................................................................................... 41
Conceitos de Pipeline de Dados ......................................................................................... 41
Conceitos-Chave ....................................................................................................................... 43
Passos na Criação de um Pipeline de Dados ................................................................ 44
Componentes de um Pipeline de Dados ........................................................................ 45
Elementos de um Pipeline de Dados ............................................................................... 46
Importância de um Pipeline de Dados ............................................................................ 48
Desafio de Pipelines de Dados ........................................................................................... 48
Migração de dados .................................................................................................................... 48
Auto Scaling de Processamento e Armazenamento de Dados ........................... 49
Leituras e gravações otimizadas de dados no processo de pipeline ................ 50
Capítulo 2. Processamento de Dados .................................................................... 52
O que é Processamento de Dados? .................................................................................. 52
Como os dados devem ser processados? ...................................................................... 54
3
Conceitos em Processamento de Dados ........................................................................ 55
Modelos de Processamento de Dados ............................................................................ 57
Ferramentas e Tecnologias de Processamento de Dados ..................................... 63
Boas Práticas para Processamento de Dados ............................................................. 67
Capítulo 3. Coleta de Dados ....................................................................................... 72
Conceitos de Coleta de Dados ............................................................................................ 72
Fontes de Dados ........................................................................................................................ 74
Dados Abertos – Ciência ........................................................................................................ 76
Projeto Genoma ......................................................................................................................... 76
Kaggle ............................................................................................................................................. 76
Dados Abertos – Governo ..................................................................................................... 77
Dados Abertos – Sidra ............................................................................................................ 77
Métodos de Coleta de Dados ............................................................................................... 78
Importância de Métodos na Coleta de Dados ............................................................. 80
Dados Primários e Secundários .......................................................................................... 82
Características Dados Primários ........................................................................................ 86
Características Dados Secundários .................................................................................. 87
Coleta de Dados Coorporativa............................................................................................. 88
Escolha das Ferramentas ...................................................................................................... 89
Coleta x Ingestão de Dados ................................................................................................. 91
Boas Práticas na Coleta de Dados ..................................................................................... 91
Capítulo 4. Ingestão de Dados ................................................................................. 98
Coleta ou Ingestão de Dados .............................................................................................. 98
Ingestão de Dados ................................................................................................................... 99
Ingestão de Dados X ETL .................................................................................................... 100
Ingestão de Dados X Integração de Dados ................................................................ 100
Tipos de Ingestão de Dados .............................................................................................. 101
4
CDC – Change Data Capture .............................................................................................. 103
Ferramentas de Ingestão de Dados – Streaming.................................................... 105
Benefícios da Ingestão de Dados .................................................................................... 108
Boas Práticas na Ingestão de Dados ............................................................................. 108
Práticas Recomendadas....................................................................................................... 109
Capítulo 5. Extração de Dados ............................................................................... 112
Extração de Dados x Ingestão de Dados ..................................................................... 112
ETL ................................................................................................................................................. 113
Extração ....................................................................................................................................... 114
Conceitos-chave ...................................................................................................................... 117
Crawling ....................................................................................................................................... 120
Crawler– Características e Funções .............................................................................. 121
Scrapping .................................................................................................................................... 123
Web Scraping – Formas de se Fazer .............................................................................. 124
Web Scraping – HTTP ........................................................................................................... 126
WeB Scraping – Parsing ...................................................................................................... 127
Web Scraping – JSON........................................................................................................... 129
Web Scraping – API ............................................................................................................... 130
Web Scraping – Ética ............................................................................................................ 132
Capítulo 6. Transformação de Dados .................................................................. 136
Conceitos de Transformação de Dados ........................................................................ 136
Entender Formato de Dados .............................................................................................. 138
Tipos de Dados ......................................................................................................................... 138
Estrutura dos Dados .............................................................................................................. 140
Limpeza e Organização dos Dados ................................................................................. 143
Detecção de Fraudes Cartão de Crédito ....................................................................... 144
Data Wrangling – Organizando Dados .......................................................................... 147
5
Capítulo 7. Soluções de ETL e ELT ....................................................................... 151
ETL ................................................................................................................................................. 151
ELT ................................................................................................................................................. 154
Capítulo 8. Orquestração de Dados ..................................................................... 156
Conceitos de Orquestração de Dados ........................................................................... 156
Azure Data Factory ................................................................................................................. 159
Google DataFlow ..................................................................................................................... 162
Prefect .......................................................................................................................................... 167
Containers .................................................................................................................................. 169
KubeFlow .................................................................................................................................... 170
Apache Airflow ......................................................................................................................... 173
Capítulo 9. Orquestração de Dados ..................................................................... 179
Instalação do Apache Airflow ........................................................................................... 179
Programando Execuções de Pipeline ............................................................................ 196
Condicionais .............................................................................................................................. 196
Paralelismo................................................................................................................................. 197
Integrações para Entregas ................................................................................................. 198
Capítulo 10.Telemetria para Pipeline de Dados .............................................. 201
Conceitos de Telemetria em Pipeline de Dados ....................................................... 201
Coleta de Métricas – Prometheus ................................................................................... 203
Passos para usar o Prometheus ....................................................................................... 205
Dashboards – Grafana .......................................................................................................... 209
Monitoramento de Pipelines.............................................................................................. 211
Referências. ............................................................................................ .........................213
1
7
Capítulo 1. Por que um Pipeline de Dados?
Inteligência Empresarial ou de Negócios
Business Intelligence (BI) é um processo orientado por tecnologia
para analisar dados e fornecer informações acionáveis que ajudam
executivos, gerentes e funcionários a tomar decisões de negócios
informadas. Como parte do processo de BI, as organizações coletam dados
de sistemas de TI internos e fontes externas, preparam-nos para análise,
executam consultas nos dados e criam visualizações de dados, painéis de BI
e relatórios para disponibilizar os resultados analíticos aos usuários de
negócios para decisões operacionais, elaboração e planejamento
estratégico.
O objetivo final das iniciativas de BI é conduzir melhores decisões
de negócios que permitam às organizações aumentarem a receita, melhorar
a eficiência operacional e obter vantagens competitivas sobre os rivais de
negócios. Para atingir esse objetivo, o BI incorpora uma combinação de
análise, gerenciamento de dados e ferramentas de relatórios, além de várias
metodologias para gerenciamento e análise de dados.
Como funciona o processo de inteligência de negócios?
Uma arquitetura de business intelligence inclui mais do que apenas
software de BI. Os dados de inteligência de negócios geralmente são
armazenados em um Data Warehouse criado para uma organização inteira
ou em data marts menores que contêm subconjuntos de informações de
negócios para departamentos e unidades de negócios individuais,
geralmente vinculados a um Data Warehouse corporativo. Além disso, os
Data Lakes baseados em clusters Hadoop ou outros sistemas de Big Data
são cada vez mais usados como repositórios ou plataformas de aterrissagem
para dados de BI e analíticos, especialmente para arquivos de log, dados de
8
sensores, texto e outros tipos de dados não estruturados ou
semiestruturados.
Os dados de BI podem incluir informações históricas e dados em
tempo real coletados de sistemas de origem à medida que são gerados,
permitindo que as ferramentas de BI suportem os processos de tomada de
decisões estratégicas e táticas. Antes de serem usados em aplicativos de BI,
os dados brutos de diferentes sistemas de origem geralmente devem ser
integrados, consolidados e limpos usando integração de dados e
ferramentas de gerenciamento de qualidade de dados para garantir que as
equipes de BI e os usuários de negócios estejam analisando informações
precisas e consistentes. A partir de então, as etapas do processo de BI
incluem o seguinte:
• Preparação de dados, na qual conjuntos de dados são
organizados e modelados para análise.
• Consulta analítica dos dados preparados.
• Distribuição de indicadores-chave de desempenho (KPIs) e
outras descobertas para usuários de negócios.
• Uso da informação paraajudar a influenciar e conduzir
decisões de negócios.
Inicialmente, as ferramentas de BI eram usadas principalmente por
profissionais de BI e TI que executavam consultas e produziam painéis e
relatórios para usuários corporativos. Cada vez mais, no entanto, analistas
de negócios, executivos e trabalhadores estão usando plataformas de
inteligência de negócios, graças ao desenvolvimento de BI de
autoatendimento e ferramentas de descoberta de dados. Os ambientes de
inteligência de negócios de autoatendimento permitem que os usuários de
negócios consultem dados de BI, criem visualizações de dados e criem
painéis por conta própria.
9
Os programas de BI geralmente incorporam formas de análise
avançada, como mineração de dados, análise preditiva, mineração de texto,
análise estatística e análise de Big Data. Um exemplo comum é a modelagem
preditiva que permite a análise hipotética de diferentes cenários de
negócios. Na maioria dos casos, porém, os projetos de análise avançada são
conduzidos por equipes separadas de cientistas de dados, estatísticos,
modeladores preditivos e outros profissionais de análise qualificados,
enquanto as equipes de BI supervisionam consultas e análises mais diretas
de dados de negócios.
Por que a inteligência de negócios é importante?
No geral, o papel da inteligência de negócios é melhorar as
operações de negócios de uma organização por meio do uso de dados
relevantes. As empresas que empregam efetivamente ferramentas e
técnicas de BI podem traduzir seus dados coletados em informações
valiosas sobre seus processos e estratégias de negócios. Esses insights
podem então ser usados para tomar melhores decisões de negócios que
aumentam a produtividade e a receita, levando a um crescimento acelerado
dos negócios e maiores lucros.
Sem BI, as organizações não podem aproveitar prontamente a
tomada de decisões baseada em dados. Em vez disso, os executivos e
trabalhadores são deixados para basear decisões importantes de negócios
em outros fatores, como conhecimento acumulado, experiências anteriores
e intuição. Embora esses métodos possam resultar em boas decisões, eles
também estão repletos de erros, erros devido à falta de dados que os
sustentem.
Normalmente, as organizações trazem dados de diferentes fontes
de dados e bancos de dados para um Data Warehouse ou Data Lake usando
o processo de extração, transformação e carga (ETL). As três partes do ETL
envolvem:
10
• Extrair: replicar dados de sistemas de origem.
• Transformar: padronize os dados replicados dos vários
formatos usados em várias fontes de dados no modelo de
dados comum usado pelo Data Warehouse de destino.
• Carregar: encaminhe os dados recém-formatados para o Data
Warehouse ou Data Lake de destino.
Nos primeiros dias do ETL, quando os Data Warehouses tinham
recursos limitados, a transformação dos dados antes que eles chegassem ao
Data Warehouse permitia que as organizações limitassem o uso de recursos
valiosos de armazenamento, computação e largura de banda em todo o fluxo
de trabalho.
Hoje, Data Warehouses e Data Lakes modernos de alta velocidade e
baseados em nuvem podem armazenar volumes de dados praticamente
ilimitados e oferecer poder de processamento escalável. Esses
desenvolvimentos de tecnologia permitiram uma nova arquitetura de
integração de dados chamada extrair, carregar, transformar (ELT), na qual os
dados são carregados imediatamente no Data Warehouse ou Data Lake após
a extração e transformados somente quando os usuários estão prontos para
empregar os dados para análise.
DIKW – Data Information Knowledge Wisdom
O DIKW diz respeito à pirâmide do conhecimento, utilizado
principalmente para ações de Inteligência de Dados, por meio de uma
hierarquização das estruturas de informação, utilizado tanto nas Ciências da
Informação como na Gestão do Conhecimento.
Como é composto o DIKW?
O DIKW tem uma composição hierárquica segundo o seu acrônimo,
na seguinte forma:
11
• Data (dados).
• Information (informação).
• Knowledge (conhecimento).
• Wisdom (sabedoria).
12
Figura 1 – Pirâmide DIKW.
Fonte: Wikimedia Commons.
A base da pirâmide são os dados. Esse é o ponto inicial para começar
o processo. A partir dele, é possível obter os demais pontos, fundamentais
para prosseguir na gestão de conhecimento da empresa. Lembramos que
dados sozinhos não geram conhecimento. É a partir da sua relação com
outras questões (como outros dados e contextos) que pode avançar nessas
questões.
A partir dos dados é possível gerar informações, ou seja, quando se
junta esses fragmentos iniciais (dados), acrescentando sentido e totalidade
a eles. Por meio disso, gera-se uma descrição ou perspectiva de um contexto.
Assim, é possível ter uma compreensão mais abrangente da situação.
O uso adequado das informações gera o conhecimento, ou seja,
passa-se para a compreensão daquilo que está sendo apresentado. Por fim,
a sabedoria diz respeito a como trabalhar o uso dessas informações na
empresa, segundo o contexto interno.
Como o DIKW é utilizado na prática?
O DIKW é utilizado na prática como uma forma de gerar uma espécie
de “higienização dos dados” e suas respectivas interpretações. Assim,
analisar a pirâmide de conhecimento permite hierarquizar quais são os
dados que, de fato, podem conduzir a sabedoria no futuro, permitindo ações
13
mais estratégias e mais bem embasadas, bem como garantir maior
conhecimento para os gestores sobre o negócio.
Por exemplo, um volume de R$ 20 mil em vendas naquele dia é um
dado. Sozinho, ele não diz nada além de um fato objetivo. Contudo, ao
analisar a variação no volume de vendas ao longo de uma semana, é possível
avaliar se ocorreu aumento ou diminuição, ou seja, cria-se informação.
Ao pensar em como isso pode representar cenários positivos ou,
então, situações de crise (se, por exemplo, esse valor é uma redução
significativa no padrão da empresa), há o conhecimento sobre a situação. A
partir do diagnóstico do cenário e da possibilidade de criar um plano de ação
para esse fim é que temos a sabedoria sendo implementada.
Diante disso, podemos compreender como o DIKW pode ser
utilizado de forma estratégica nas empresas. Afinal, é possível compreender
quais conjuntos de dados podem ser analisados a fim de priorizar o que deve
ser coletado e, principalmente, tratado. Nem todo conjunto de dados vai,
necessariamente, conduzir à informação. Da mesma forma, não são todas as
informações que geram conhecimento de fato.
Você pode perceber, portanto, que o DIKW é utilizado
essencialmente para as decisões. Por isso, ele tem uma função estratégica
para os negócios, pois fornece conhecimentos essenciais para o
crescimento da organização, bem como indicar o melhor momento para agir
em determinadas circunstâncias.
Diante de tudo que listamos é possível perceber que o DIKW é um
dos principais aliados de uma Ciência de Dados bem-aplicada no ambiente
organizacional.
14
Figura 2 – DIKW.
Fonte: Wikimedia Commons.
Big Data e Analytics
Acredita-se que as empresas estejam priorizando Big Data e análise
de dados em sua agenda corporativa. Juntos, ambos prometem transformar
o negócio em um empreendimento lucrativo. Eles estão automatizando
processos e induzindo inovação e eficiência na organização.
Especialistas definem Big Data como um fenômeno com os três V’s
– Variedade, Volume e Velocidade. Big Data é simplesmente dados maiores,
complexos e volumosos. Esses conjuntos de dados são gerados com grande
velocidade em uma organização de negócios e em grande volume,
dificultando o uso de segregação de dados tradicional e técnicas analíticas
para extrair insights deles.
As empresas usam técnicas modernas de Ciência de Dados, como
Inteligência Artificial, Aprendizado de Máquina e Aprendizado Profundo,
para lidar com oBig Data que uma empresa gera regularmente. O uso de
métodos científicos torna a extração e segregação de dados eficaz e livre de
erros. A análise de dados é um processo científico que usa fórmulas
matemáticas e métodos científicos para extrair insights de dados coletados
15
por aplicativos de Ciência de Dados advindos dessas técnicas modernas. As
empresas podem usar insights derivados da análise de dados para
impulsionar mudanças e inovações. Curiosamente, esses insights também
podem ajudar a afirmar indicadores-chave de desempenho (KPI) ou métricas
para avaliar o desempenho da empresa e seus produtos ou serviços.
Portanto, nesta Era Digital, uma quantidade insignificante de
empresas de negócios não tem conhecimento e é desprovida de Big Data e
análises. Portanto, vamos traçar uma clara diferença entre Big Data e análise
de dados para simplificar o processo de entender esses dois conceitos e
implementá-los nos negócios. Mas antes disso, vejamos a aplicação de Big
Data e análise de dados.
Figura 3 – Businnes Intelligence x Business Analytics.
Fonte: Gartner Group.
Qual é a diferença entre Big Data e análise de dados?
Ferramentas usadas em Big Data vs Data Analytics
Como Big Data é um processo mais abrangente e extenso, suas
ferramentas são complexas e sofisticadas. Ferramentas como ferramentas
de automação e computação paralela são usadas para converter dados não
estruturados em conjuntos de dados significativos.
16
Enquanto isso, ferramentas simples, como modelagem estatística e
modelagem preditiva, são usadas na análise de dados. Além disso, muitas
fórmulas estatísticas e matemáticas são usadas ao analisar e interpretar
dados.
Tipos de indústrias que usam Big Data e análise de dados
Muitas indústrias estão acomodando processos científicos
modernos, como ciência de dados, Big Data e análise de dados para
estimular o crescimento e a inovação. Setores de serviços como turismo,
saúde e tecnologia da informação (TI) usam a análise de dados para
transformar e melhorar sua administração. Por exemplo, os hospitais usam
análises para trazer eficiência às suas funções administrativas, como
gerenciamento de pacientes, tratamento e gerenciamento de equipamentos
etc.
No entanto, Big Data é usado em setores bancários, de varejo e
similares, que se comunicam diretamente com dados. As indústrias
orientadas para o cliente usam Big Data principalmente porque a tecnologia
moderna instila um processo sistemático de rastreamento da demanda e
dos requisitos do cliente e ajuda a descobrir padrões muitas vezes
negligenciados.
Tipo de dados em Big Data vs Data Analytics
Em Big Data, encontramos dados não estruturados e brutos. O
principal objetivo do Big Data é converter os dados brutos em conjuntos de
dados significativos, que podem ser usados para obter insights
significativos ou resolver problemas de negócios complexos.
Enquanto isso, a análise de dados é principalmente dados
estruturados. Ele analisa os dados estruturados para responder a consultas
de negócios complexas, encontrar soluções para desafios de negócios etc.
Ferramentas usadas em Big Data e Data Analytics
17
O Data Analytics é totalmente tratado com programação R,
codificação Python, Tableau, Rapid Miner, MS Excel e Google Fusion Tables.
Big Data é algo que lida com Hadoop, Hive, HBase, Spark e Scala. Um
conhecimento básico de Java é sempre necessário para a programação
MapReduce, clustering e conectores do Tableau-Hadoop.
O Data Analytics pode ser usado em vários segmentos de mercado.
Os bancos usam essa estratégia para evitar possíveis fraudes. Na educação,
você pode medir o progresso dos alunos e avaliar a eficácia do sistema. No
varejo, o principal uso é rastrear as características sociais e
comportamentais dos clientes, de modo a prever tendências e hábitos.
Geralmente, o processo de análise do fluxo de dados segue as
seguintes etapas:
• Coleta.
• Ingestão e transformação.
• Armazenamento.
• Análise.
• Desenvolvimento de algoritmos.
• Visualização.
É importante avaliar quais são os principais insights desejados na
etapa de visualização, ou até mesmo o levantamento de quais problemas de
negócio você gostaria de resolver.
Razões para usar o Big Data
• Entender padrões.
• Prever situações.
• Criar fronteiras.
18
• Informar coleções de dados.
• Estimar parâmetros escondidos.
• Calibrar.
O Big Data traz novos desafios na gestão de dados, como a
manutenção de uma linearidade dos dados, sua integridade e qualidade, a
fim de que eles possam ser transformados em informação útil.
Soluções de Inteligência Operacional podem correlacionar e analisar
dados de fontes variadas em várias latências (desde o batch até o tempo
real), para revelar informações importantes.
Os 7 V’s do Big Data
“O objetivo é transformar dados em informações e informações em
insights.” – Por Carly Fiorina, ex-CEO da Hewlett-Packard.
Big Data é um campo relativamente moderno da Ciência de Dados
que geralmente explora grandes conjuntos de dados. Esses conjuntos de
dados são complexos para processamento por métodos tradicionais.
Portanto, grandes conjuntos de dados são divididos em conjuntos menores
para análise posterior. A análise profunda é feita para obter insights e
informações desses dados.
Antigamente eram utilizadas soluções convencionais de
processamento de dados. Essas soluções não eram muito eficientes na
captura, armazenamento e análise de Big Data. Assim, as empresas que
utilizam soluções tradicionais de BI não são capazes de maximizar
totalmente o valor delas. Hoje estamos usando Big Data para ele, o que é
muito melhor do que as formas tradicionais de manipulação de dados.
Agora, para entender com sucesso como o Big Data trata e mantém
os dados, precisamos entender os 7 V's do Big Data.
19
No ano de 2001, o MetaGroup (agora conhecido como Gartner), que
é uma empresa de análise, apresentou cientistas e analistas de dados aos
3V’s de dados. Os 3 V’s são: Volume, Velocidade e Variedade, mas ao longo
de um período, a análise de dados viu uma mudança na forma como os dados
eram capturados e processados. A observação inclui que os dados estavam
crescendo tão rapidamente em tamanho, que mais tarde esses dados
passaram a ser conhecidos como Big Data.
Desta forma, com o crescimento astronômico dos dados, dois novos
V’s foram adicionados: Valor e Veracidade. Esses 2 V’s foram adicionados
pelo Gartner aos conceitos de processamento de dados. Hoje temos os 7V’s.
Figura 4 – 7 V’s Big Data
Fonte: https://impact.com/marketing-intelligence/7-vs-big-data.
1. Volume
O volume de Big Data pode ser definido como a quantidade de dados
que é produzida. O volume de dados produzidos também depende do
tamanho dos dados.
No mundo tecnológico atual os dados são gerados a partir de várias
fontes e diferentes formatos. Os formatos de dados estão na forma da
palavra, documentos excel, PDFs, conteúdo de mídia – como imagens, vídeos
etc. – e são produzidos em grande ritmo.
https://impact.com/marketing-intelligence/7-vs-big-data
20
Está se tornando um desafio para as empresas armazenarem e
processar dados usando os métodos convencionais de inteligência e análise
de negócios. As empresas precisam implementar ferramentas modernas de
inteligência de negócios para capturar, armazenar e processar de forma
eficaz essas enormes quantidades de dados na vida real.
21
Alguns fatos interessantes:
• Hoje, existem cerca de 2,7 Zettabytes de dados no mundo
digital.
• O Walmart lida com mais de 1 milhão de transações de
clientes a cada hora, que são importadas para bancos de
dados estimados em aproximadamente 2,5 petabytes de
dados.
2. Valor
Hoje os dados estão sendo produzidos em grandes volumes e
apenas coletar os dados produzidos não adianta. Em vez disso, temos que
procurar dadosa partir dos quais possam ser gerados insights de negócios
que agreguem “valor” à empresa. Então podemos dizer que o Valor é o V mais
importante de todos os 5 V's.
É aqui que a análise de Big Data entra em cena. Existem empresas
que investiram no estabelecimento de dados e infraestrutura de
armazenamento de dados, mas não entendem que a agregação de dados
não significa agregação de valor. O que você faz com esses dados coletados
é o que realmente importa. A análise de dados ajuda a obter informações
úteis a partir dos dados coletados. Esses insights, por sua vez, agregam valor
ao processo de tomada de decisão.
Agora, como ter certeza de que o valor do Big Data é considerável e
vale a pena investir tempo e esforço? Isso pode ser feito através da
realização de uma análise de custo versus benefício. Ao calcular o custo total
de processamento de Big Data e compará-lo com o ROI, espera-se que os
insights de negócios sejam gerados. O uso dessas empresas pode decidir
efetivamente se a análise de Big Data agrega algum valor aos seus negócios
ou não.
22
Alguns fatos interessantes:
• O Facebook armazena, acessa e analisa cerca de 30 petabytes
de dados gerados pelo usuário.
• De acordo com a McKinsey, um varejista pode aumentar sua
margem operacional em mais de 60% ao usar o Big Data em
todo o seu potencial.
3. Velocidade
A velocidade pode ser denominada como a velocidade com que os
dados são gerados, coletados e analisados. Hoje, os dados fluem
continuamente por vários canais, como sistemas de computador, redes,
mídias sociais, telefones celulares etc., e no ambiente de negócios atual
orientado a dados, o ritmo em que os dados crescem pode ser descrito como
“torrencial” e “sem precedentes”.
Agora, esses dados precisam ser capturados o mais próximo possível
do tempo real, para que os dados certos possam estar disponíveis no
momento certo.
Para tomar decisões de negócios oportunas e precisas, a velocidade
com que os dados podem ser acessados é o que mais importa. Uma
quantidade limitada de dados que está disponível em tempo real pode gerar
resultados de negócios melhores. Esses resultados são ainda melhores do
que um grande volume de dados que precisa de muito tempo para capturar
e analisar.
Hoje, existem várias tecnologias de Big Data que nos permitem
capturar e analisar os dados à medida que são gerados em tempo real.
“Estamos caminhando lentamente para uma era em que Big Data é
o ponto de partida, não o fim.” – Por Pearl Zhu, Mestre Digital.
23
4. Variedade
O volume e a velocidade dos dados agregam valor a uma organização
ou negócio, mas os diversos tipos de dados coletados de diversas fontes de
dados também são um fator importante do Big Data. O Big Data é
geralmente classificado como dados estruturados, semiestruturados ou não
estruturados.
24
• Dados estruturados:
Dados estruturados são aqueles cujo formato, comprimento e
volume são claramente definidos.
• Dados semiestruturados:
Dados semiestruturados são aqueles que podem estar parcialmente
em conformidade com um formato de dados específico.
• Dados não estruturados:
Dados não estruturados são dados não organizados que não estão
em conformidade com os formatos de dados tradicionais. Dados gerados por
meio de mídias digitais e sociais, como imagens, vídeos etc., são dados não
estruturados.
Cerca de 80% dos dados produzidos globalmente, incluindo vídeos,
fotos, dados móveis, conteúdo de mídia social, são de natureza não
estruturada.
Alguns fatos interessantes:
• 94% dos usuários do Hadoop realizam análises em grandes
volumes de dados, 88% analisam dados com mais detalhes,
enquanto 82% agora podem reter mais dados.
• Decodificar o genoma humano originalmente levou 10 anos
para ser processado, mas agora com a ajuda do Big Data pode
ser alcançado em uma semana.
• Um aumento de 10% na acessibilidade de dados por uma
empresa da Fortune 1000 daria a essa empresa
aproximadamente US$ 65 milhões a mais em receita líquida
anual.
25
26
5. Validade / Veracidade
A Validade e Veracidade do Big Data pode ser descrita como a
garantia da qualidade ou credibilidade dos dados coletados. Como o Big Data
é vasto e envolve tantas fontes de dados, é possível que nem todos os dados
coletados sejam precisos e de boa qualidade.
Portanto, ao processar grandes conjuntos de dados é importante
verificar a validade dos dados antes de prosseguir com análises adicionais.
Perguntas como: Você pode confiar nos dados que coletou? Os
dados são confiáveis o suficiente? etc., precisam ser entretidos. Portanto,
antes de processar os dados para análise posterior, é importante verificar a
validade dos dados.
Alguns fatos interessantes:
• Mais de 5 bilhões de pessoas estão ligando, enviando
mensagens de texto, navegando e twittando em telefones
celulares em todo o mundo.
• Dados ruins ou dados de baixa qualidade custam às
organizações de 10 a 20% de sua receita.
• Dados ruins entre empresas e o governo custam à economia
dos EUA US$ 3,1 trilhões por ano.
6. Variabilidade
Variabilidade é diferente de variedade. Uma cafeteria pode oferecer
seis blends diferentes de café, mas se você recebe a mesma mistura todos
os dias e tem um sabor diferente todos os dias, isso é variabilidade. O mesmo
acontece com os dados. Se o significado muda constantemente, isso pode
afetar significativamente a homogeneização dos dados.
27
7. Visualização
A visualização é fundamental no mundo de hoje. Usar tabelas e
gráficos para visualizar grandes quantidades de dados complexos é muito
mais eficaz para transmitir significado do que planilhas e relatórios repletos
de números e fórmulas.
Transformação Digital pelo uso da Tecnologia
A transformação digital não se aplica apenas a empresas ou
varejistas, mas também a saúde, bancos, educação, instituições de caridade,
serviços financeiros e muito mais. A transformação digital refere-se ao
processo de adoção e integração de tecnologias digitais em todos os
aspectos de uma organização, o que pode incluir suas operações, processos
de negócios, modelos de negócios e interações com clientes e
colaboradores.
A transformação digital envolve a aplicação de tecnologias como
Inteligência Artificial, Análise de Dados, Computação em Nuvem, Internet
das Coisas (IoT), automação de processos, realidade virtual e aumentada,
entre outras, para melhorar a eficiência, a produtividade e a experiência do
cliente.
Os projetos e iniciativas de transformação digital podem ser
divididos em quatro categorias:
1. Revolucione a cultura da sua empresa
A primeira coisa a entender é que a transformação digital não é
apenas sobre tecnologia. Trata-se de toda a atitude e ética da organização
voltada para o digital.
Você pode ter todos os gadgets mais sofisticados, a tecnologia mais
poderosa e as inovações mais recentes do mundo, mas isso não significará
nada se as pessoas em sua organização ainda tiverem uma maneira de
pensar antiquada.
28
Os serviços gerenciados em nuvem não podem ser gerenciados sem
uma nova perspectiva que leve a tecnologia em consideração em tudo o que
faz, e o headless commerce não levará a lugar nenhum se os funcionários
não mudarem sua mentalidade para incorporar recursos digitais em seus
processos de trabalho diários.
Então, como você introduz uma abordagem que prioriza a tecnologia
nas mentes e comportamentos de sua empresa? Pode ser complicado para
corporações grandes e estabelecidas que têm muitos departamentos
isolados, centenas de funcionários e anos de experiência arraigada fazendo
as coisas à moda antiga. Isso é parte do motivo pelo qual a transformação
digital às vezes é mais fácil para startups e pequenas e médias empresas
(PMEs).
Assim como as mudanças de estilo de vida ecologicamente corretas,
a transformação digital não podeser imposta de cima para baixo. Enviar e-
mails ameaçadores para toda a força de trabalho para “pensar no digital ou
então” não funcionará. Em vez disso, a melhor maneira de marcas e
empresas promoverem o pensamento digital em seus funcionários é
começar primeiro com um dos outros tipos de transformação digital.
Portanto, não é necessário começar transformando a cultura da
empresa para ser mais digital, nem é necessariamente o ponto final. Em vez
disso, anda de mãos dadas com os outros tipos de transformação digital.
Engana-se quem diz que a transformação digital não tem nada a ver com
tecnologia, porque o resto dos itens da nossa lista estão firmemente
ancorados em inovações tecnológicas.
2. Aproveite a Internet das Coisas
A Internet das Coisas (IoT) é a totalidade de objetos físicos
conectados sem fio à Internet. Os exemplos podem incluir, entre outras
coisas, dispositivos móveis de smartphone, alto-falantes de voz inteligentes,
29
leitores de código de barras em lojas, cartões de fidelidade e chaves de
armários conectados à rede mundial de computadores.
Adotar a Internet das Coisas é uma excelente maneira de a
transformação digital transformar o seu negócio.
Esse tipo de transformação digital é firmemente centrado no cliente
e projetado para impulsionar a experiência do cliente (CX). Mas a IoT não
precisa se limitar apenas a impactar os clientes, também pode ser usado
pelos trabalhadores para tornar seus processos de trabalho mais ágeis.
3. Substitua sua TI monolítica herdada por uma nova tecnologia
Se o tipo anterior de transformação digital era principalmente
centrado no cliente, ou pelo menos baseado na alteração dos processos da
empresa e do comportamento das pessoas, este é decididamente centrado
na tecnologia. Na verdade, quando a maioria dos CEOs e CIOs fala sobre
transformação digital, eles normalmente estão pensando nisso.
Muitas grandes empresas têm sistemas de TI antigos que usam há
anos ou décadas. Essas grandes máquinas gigantescas são construídas em
um modelo multifuncional desatualizado da época em que pensávamos que
era melhor para uma empresa ter toda a sua tecnologia reunida em uma sala
de servidores com um piso pesado.
Atualmente, a maioria das iniciativas de transformação digital se
concentra na migração dos serviços de uma empresa de um desses
monólitos para uma tecnologia mais nova e ágil. Isso pode ser feito de uma
só vez ou um pouco de cada vez. As empresas menores e mais novas não
têm tantos sistemas de TI antiquados para substituir, o que é outro motivo
pelo qual a transformação digital é mais fácil para as startups.
Existem quatro inovações tecnológicas que são melhores para as
empresas instalarem para a transformação digital:
30
• Serviços gerenciados em nuvem.
• Headless commerce.
• Microsserviços.
• Application Programming Interface (API).
4. Mude seu modelo de negócios
Você pode transformar seu negócio para competir no ambiente
digital moderno, alterando o modelo de negócios. Podemos ver exemplos
disso na maneira como a Netflix passou os primeiros 10 anos de sua vida
enviando DVDs para clientes pelo correio antes de reimaginar o que a mídia
poderia ser com seu serviço de streaming.
A Amazon é outro exemplo de empresa que se expandiu para um
mercado totalmente novo, de mercado de comércio a serviços da Web
gerenciados em nuvem, com o lançamento da AWS. Este foi um exemplo de
transformação digital no atacado, com a empresa mudando completamente
para uma nova esfera digital e não apenas fazendo as mesmas coisas de
sempre, mas de uma forma mais digital.
Transformação Digital
A transformação digital é um termo amplo que pode significar coisas
diferentes para diferentes tipos de negócios. Mas, em sua essência, a
transformação digital refere-se a uma mudança drástica na forma como uma
empresa opera e fornece informações vitais. O Enterprisers Project – um
esforço conjunto entre a Harvard Business Review e a empresa de software
Red Hat, que se concentra em ajudar os líderes de TI no mundo dos negócios
– define a transformação digital como “a integração da tecnologia digital em
todas as áreas de um negócio, mudando fundamentalmente a forma como
você opera e entregar valor aos clientes. É também uma mudança cultural
31
que exige que as organizações desafiem continuamente o status quo,
experimentem e se sintam confortáveis com o fracasso”.
Tesla
A empresa de carros elétricos e energia limpa, Tesla, ajudou a
desencadear a transformação digital ao disponibilizar ao público todas as
suas patentes de veículos elétricos. O Board of Innovation, uma empresa de
design de negócios e estratégia de inovação que auxilia grandes
organizações com mudanças fundamentais, explica que a Tesla tornou
essas informações públicas por dois motivos: “para acelerar o mercado e
para tornar sua tecnologia o padrão. Ford (elétrica), BMW (elétrica) e Toyota
(hidrogênio) seguiram seu exemplo.”
Microsoft
A Microsoft iniciou sua transformação digital quando o CEO Satya
Nadella assumiu em 2014. Um artigo recente da Forbes descreve o maior
sucesso da empresa, escrevendo, “a empresa começou uma mudança para
seus sistemas de rede em nuvem. Ele mudou o foco do software tradicional
para um sistema de nuvem mais fluido para uso pessoal e empresarial. Em
vez de evitar parcerias como no passado, a Microsoft mudou de rumo para
construir relacionamentos com outras empresas de software e tecnologia. A
visão pública também mudou, pois, a Microsoft deixou de ser vista como uma
empresa desatualizada ou estagnada para uma solução de nuvem com visão
de futuro. À medida que se comprova com mais negócios e crescimento, a
estrela da Microsoft continua a crescer”. A Forbes constatou que os preços
das ações e a receita da Microsoft dispararam após sua transformação
digital: “No início de 2014, pouco antes do início da transformação da
Microsoft, as ações estavam sendo vendidas em torno de US$ 38 por ação.
Hoje, eles valem cerca de US$ 136.
O que é ser Data Driven?
Qual é o significado de Data-driven?
32
• Data Driven é um conceito estratégico que pode ser aplicado
a qualquer negócio.
• Na prática, significa tomar decisões baseada em análise e
interpretação de dados.
• Em tradução livre, podemos dizer que é a gestão orientada por
dados.
Em uma cultura orientada a dados, podemos evidenciar as seguintes
características:
Coleta de Dados: ser data-driven começa com a coleta adequada de
dados relevantes. Isso pode envolver a utilização de sistemas de coleta de
dados, como formulários online, ferramentas de rastreamento, sensores ou
integração de dados de diferentes fontes.
Análise de Dados: os dados coletados são analisados para identificar
padrões, tendências e relações significativas. Isso pode ser feito por meio
de técnicas estatísticas, algoritmos de aprendizado de máquina,
visualização de dados e outras ferramentas analíticas.
Tomada de decisão embasada em dados: os insights derivados da
análise dos dados são utilizados para informar e embasar as decisões. As
decisões são baseadas em fatos e evidências, permitindo uma abordagem
mais objetiva e precisa.
Monitoramento contínuo: ser data-driven implica em um processo
contínuo de coleta, análise e interpretação dos dados. Os resultados das
ações tomadas são monitorados e avaliados para verificar se estão alinhados
com os objetivos desejados e, se necessário, ajustes podem ser feitos com
base nas conclusões extraídas dos dados.
33
Cultura e mentalidade: ser data-driven requer uma cultura
organizacional e uma mentalidade que valorizem a utilização de dados e
análises para embasar as decisões. Isso envolve promover a alfabetização
em dados, incentivar a coleta e compartilhamento de dados relevantes e
desenvolver habilidades analíticas entre os membros da equipe.
Data Driven Decision Making– DDDM
A tomada de decisões embasadas em dados é o processo de coletar
dados de acordo com os indicadores-chave de desempenho (KPIs) da sua
empresa, e de transformar tais dados em percepções que podem ser
colocadas em prática. Esse processo é um componente essencial das
estratégias de negócios modernas.
Você pode usar ferramentas de relatórios de inteligência
empresarial neste processo, pois tornam a coleta de Big Data rápida e
proveitosa. Tais ferramentas simplificam a visualização de dados e permitem
que pessoas sem conhecimentos técnicos avançados possam analisá-los.
A tomada de decisões embasadas em dados é importante porque
nos ajuda a fazer escolhas considerando fatos e com imparcialidade. Se você
exerce liderança no trabalho, tomar decisões objetivas é a melhor forma de
manter a justeza e o equilíbrio.
As decisões mais bem fundamentadas apoiam-se em dados que
mensuram metas empresariais e se atualizam em tempo real. Você pode
reunir os dados necessários para identificar padrões e fazer previsões com
softwares que geram relatórios.
Algumas decisões que podem ser amparadas por dados:
• Como impulsionar os lucros e as vendas.
• Como definir boas práticas de gestão.
34
• Como otimizar operações.
• Como melhorar o desempenho da equipe.
Nem todas as escolhas poderão ser fundamentadas em dados, mas
a maioria das decisões importantes pode sim.
35
Cinco passos para tomar decisões embasadas em dados
É necessário ter prática para tomar decisões embasadas em dados.
Se você deseja aprimorar as suas habilidades de liderança, terá de saber
como transformar dados brutos em ações práticas que beneficiem as
iniciativas da sua empresa. Os passos abaixo podem ajudar a fazer escolhas
melhores durante a análise de dados.
1. Entenda qual é a sua visão.
Antes de tomar decisões bem fundamentadas, você precisa saber
qual é a visão de futuro da sua empresa. Isso ajuda a combinar dados e
estratégia para amparar as suas escolhas. Gráficos e números não
significam muita coisa sem um contexto que lhe dê perspectiva.
2. Encontre fontes de dados.
As ferramentas e fontes de dados usadas dependerão do tipo dos
dados que você deseja coletar. Se o objetivo é analisar conjuntos de dados
relativos aos processos internos da empresa, use uma ferramenta de
geração de relatórios globais. As ferramentas de relatórios servem como
ponto de referência central para monitorar o progresso do trabalho em toda
a sua organização. Certas ferramentas, como o Power BI da Microsoft,
permitem coletar dados de diversas fontes externas. Se você deseja analisar
tendências de marketing ou métricas de concorrentes, tais ferramentas
podem ser úteis.
Algumas das métricas gerais de sucesso que você pode mensurar
são:
Margem bruta de lucro: a margem bruta de lucro é medida pela
subtração entre os custos dos bens vendidos e o valor líquido de vendas da
empresa.
36
Retorno sobre o investimento: é a razão entre a receita e o
investimento. O retorno sobre o investimento (ROI, na sigla inglesa) é
geralmente usado para decidir se uma iniciativa deve receber ou não
investimento de tempo e recursos. Quando usada como métrica de negócio,
ela frequentemente monitora o desempenho de um investimento.
Produtividade: esta é a medida da eficiência da empresa na
produção de bens ou serviços. É possível calculá-la dividindo o total da
produção pelo total dos custos.
Número total de clientes: é uma métrica eficaz e simples de
acompanhar. Quanto mais clientes pagos, maiores serão as receitas do
negócio.
Receita recorrente: geralmente usada pelas empresas que usam o
modelo de negócios de software como um serviço (SaaS), ela representa o
montante de receita gerada por todos os assinantes ativos durante um
período, geralmente um mês ou um ano.
É possível mensurar diversos outros conjuntos de dados,
dependendo do seu cargo e da visão da empresa. Com o aprendizado de
máquina, nunca foi tão fácil agregar dados em tempo real.
3. Organize os dados.
Para tomar decisões de negócios eficazes, é essencial organizar os
dados de forma a aprimorar a sua visualização. Se você não conseguir
examinar os dados relevantes num só lugar e compreender suas
interconexões, será mais difícil assegurar que as decisões estejam bem
fundamentadas.
4. Analise os dados.
37
Depois de organizar os dados, você poderá iniciar uma análise
embasada. É neste momento que as percepções práticas serão extraídas dos
dados para ajudar no processo de tomada de decisões.
Dependendo das suas metas, talvez você prefira analisar os dados
no painel executivo em conjunto com pesquisas de usuários, tais como
estudos de caso, questionários ou depoimentos, para que as conclusões
levem em conta a experiência do cliente.
38
A sua equipe deseja aprimorar as ferramentas de SEO para aumentar
a competitividade em relação a outras alternativas no mercado? Então
considere estes conjuntos de dados:
• Dados do desempenho dos concorrentes.
• Dados desempenho de atuais do software de SEO.
• Dados atuais da satisfação dos clientes.
• Pesquisas de usuários sobre diversas ferramentas de SEO e
marketing.
Parte dessas informações pode ser obtida da sua própria
organização, mas talvez seja necessário recorrer a fontes externas para
buscar outros dados. Ao analisar esses conjuntos de informações como um
todo, você chegará a conclusões diferentes daquelas que conseguiria caso
examinasse cada conjunto separadamente.
5. Tire conclusões.
Durante a análise de dados, você provavelmente chegará a diversas
conclusões sobre o que observou. Entretanto, a conclusão merece ter uma
etapa dedicada e específica porque é importante identificar o que se observa
nos dados ao compartilhar tais deduções com os demais.
Ao tirar conclusões, estas são as principais perguntas a responder:
• O que eu já sabia a respeito dos dados que estou analisando?
• Quais foram as novas informações que descobri com estes
dados?
• De que forma posso usar as informações que obtive para
atingir as metas da empresa?
39
Quando essas perguntas tiverem sido respondidas, você terá
concluído a análise dos dados e poderá tomar decisões embasadas em
dados para o seu negócio.
Dados x Dataset x Databases
1. Dados: se refere a fatos, informações ou estatísticas coletadas,
registradas ou representadas de alguma forma. Pode ser qualquer
forma de representação simbólica de informações, como números,
palavras, imagens, sons etc. Dados podem ser brutos ou processados
e têm o potencial de serem transformados em informações
significativas por meio de análise e interpretação.
2. Datasets: (conjuntos de dados) são coleções organizadas de dados
que compartilham uma característica comum ou que foram coletados
para um propósito específico. Um conjunto de dados pode ser
estruturado (com tabelas e relacionamentos definidos, como em um
banco de dados relacional) ou não estruturado (como um conjunto de
documentos de texto, imagens ou áudio). Datasets são
frequentemente usados para análise, pesquisa, treinamento de
modelos de aprendizado de máquina e outros fins.
3. Databases: (bancos de dados) são sistemas organizados para
armazenar, gerenciar e recuperar dados de forma eficiente e segura.
Eles fornecem uma estrutura para criar, manipular e consultar dados,
garantindo a integridade, segurança e disponibilidade deles. Bancos
de dados podem ser usados para armazenar informações
estruturadas em tabelas (como em bancos de dados relacionais) ou
informações não estruturadas (como em bancos de dados NoSQL).
Eles são amplamente utilizados em aplicações de software para lidar
com grandes volumes de dados e garantir o acesso rápido e confiável
aos dados necessários.
40
Em resumo, “Dados” é a informação em sua forma bruta ou
processada, “Datasets” são coleções organizadas de dadose “Databases”
são sistemas que gerenciam e armazenam dados de forma estruturada para
fácil acesso e recuperação.
41
Tipos de Datasets
1. Numerical Dataset: os dados são expressos em forma de números –
peso, altura etc.
2. Bivariate Dataset: duas variáveis relacionadas – vendas de sorvete
x temperatura do dia.
3. Multivariate Dataset: conjunto de variáveis – Se temos que medir o
comprimento, largura, altura, volume de uma caixa retangular,
temos que usar múltiplas variáveis para distinguir entre essas
entidades.
4. Categorical Dataset: representam características – estado civil
(casado, solteiro, divorciado etc.).
5. Correlation Dataset: o conjunto de valores que demonstram algum
relacionamento entre si indica conjuntos de dados de correlação.
Aqui os valores são encontrados como dependentes uns dos outros
– sorvete x temperatura do dia.
Conceitos de Pipeline de Dados
Um pipeline de dados é um conjunto de processos interconectados
que permitem a coleta, transformação e análise de dados de forma
automatizada e eficiente.
Esse conceito é amplamente utilizado em ciência de dados,
engenharia de dados e análise de dados para facilitar o fluxo de informações
de uma etapa para a próxima.
No mundo de hoje, as organizações estão se movendo em direção à
tomada de decisões baseadas em dados. Eles estão usando dados para criar
aplicativos que podem ajudá-los a tomar decisões. Os dados os ajudam a
melhorar sua produtividade e receita trabalhando nos desafios de negócios.
42
Por meio de dados, as organizações conhecem as tendências de mercado, a
experiência do cliente e podem tomar ações nesse sentido.
Mas nem sempre é possível ter os dados que eles precisam em
apenas um local. Os dados de que necessitam podem ser colocados em
vários locais, portanto eles precisam se aproximar de várias fontes para
coletar dados. Esse é um processo demorado, bem como uma tarefa
complicada à medida que o volume de dados aumenta.
Para resolver esses problemas, eles exigem que o Data Pipeline
tenha dados disponíveis que possam ser usados para obter insights e tomar
decisões. O Data Pipeline ajuda a extrair dados de várias fontes e
transformá-los para usá-los. Os pipelines de dados podem ser usados para
transferir dados de um lugar para outro, ETL (Extract-Transform-Load), ELT
(Extract-Load-Transform), enriquecimento de dados e análise de dados em
tempo real.
Portanto, o pipeline de dados é uma série de etapas que coletam
dados brutos de várias fontes, transformam, combinam, validam e os
transferem para um destino. Ele elimina a tarefa manual e permite que os
dados se movam sem problemas. Assim, também elimina erros manuais. Ele
divide os dados em pequenos pedaços e os processa paralelamente,
reduzindo assim o poder de computação.
Figura 5 – Importância do Pipeline de Dados.
43
Fonte: https://www.xenonstack.com/insights/data-pipeline-benefits-
importance.
Conceitos-Chave
Coleta de Dados: esta é a primeira etapa do pipeline, onde os dados
são obtidos a partir de várias fontes, como bancos de dados, APIs, sensores,
arquivos de registro, redes sociais, entre outros.
• Limpeza de Dados: nesta etapa, os dados coletados são
processados para remover valores ausentes, duplicados,
incorretos ou irrelevantes. Isso garante que os dados estejam
de alta qualidade antes de prosseguir para análises
posteriores.
• Transformação de Dados: os dados geralmente precisam ser
transformados para que estejam em um formato adequado
para análise. Isso pode incluir a padronização de formatos, a
conversão de tipos de dados e a criação de novas variáveis
derivadas.
• Armazenamento de Dados: os dados transformados são
armazenados em um local centralizado, como um banco de
dados ou um sistema de armazenamento distribuído. Isso
permite o acesso fácil e rápido aos dados para análises
futuras.
• Processamento de Dados em Lote e em Tempo Real:
dependendo dos requisitos, os pipelines de dados podem ser
projetados para processar dados em lote (em lotes periódicos)
ou em tempo real (à medida que os dados chegam).
• Análise de Dados: uma vez que os dados estejam
armazenados e prontos, podem ser aplicadas técnicas de
análise de dados, como estatísticas descritivas, aprendizado
https://www.xenonstack.com/insights/data-pipeline-benefits-importance
https://www.xenonstack.com/insights/data-pipeline-benefits-importance
44
de máquina, mineração de dados ou qualquer outra
abordagem relevante para o problema em questão.
• Visualização de Dados: as informações extraídas dos dados
podem ser comunicadas de forma eficaz por meio de
visualizações, como gráficos e relatórios, para ajudar na
tomada de decisões.
• Monitoramento e Gerenciamento: é importante monitorar o
pipeline de dados para garantir que ele esteja funcionando de
forma confiável e eficiente. Isso envolve a detecção e o
tratamento de erros, bem como a otimização do desempenho.
• Segurança e Privacidade: a segurança dos dados é
fundamental em um pipeline de dados. Medidas de segurança
devem ser implementadas para proteger os dados contra
acesso não autorizado e garantir a conformidade com
regulamentos de privacidade.
• Escalabilidade: os pipelines de dados devem ser projetados de
forma escalável para lidar com grandes volumes de dados à
medida que a empresa cresce.
• Automação: a automação é essencial para garantir a eficiência
do pipeline, reduzindo a necessidade de intervenção manual
em tarefas rotineiras.
• Feedback e Melhoria Contínua: é importante coletar feedback
sobre o desempenho do pipeline e fazer melhorias constantes
para garantir que ele atenda às necessidades em constante
evolução da organização.
Passos na Criação de um Pipeline de Dados
45
De acordo com o propósito, existem diferentes tipos de soluções de
pipeline de dados.
Tempo real – Real Time: Isso é valioso para processar dados em
tempo real. O tempo real é útil quando os dados são processados de uma
fonte de streaming, como os mercados financeiros.
Lote – Batch: em vez de dados em tempo real, quando as
organizações desejam mover um grande volume de dados após um intervalo
regular, o processo em lote é otimizado. Tal como monitorar oportunamente
os dados de marketing para análise em outros sistemas.
Nativo da nuvem – Cloud Native: ele pode ser usado quando eles
trabalham com dados da nuvem, como dados do bucket da AWS. Isso pode
ser hospedado na nuvem, permitindo assim economizar dinheiro em
infraestrutura, pois, caso contrário, as organizações dependeriam da
infraestrutura para hospedar o pipeline.
Código aberto – Open Source: pipelines de dados de código aberto
são alternativas aos fornecedores comerciais. Estes são mais baratos do que
seus homólogos comerciais (peer). Mas para usar essas ferramentas e
experiência é necessário verificar se as organizações têm a experiência para
desenvolver e estender sua funcionalidade.
Componentes de um Pipeline de Dados
Source – Fonte: o pipeline de dados coleta os dados da fonte de
dados. Pode ser uma fonte de geração ou qualquer sistema de
armazenamento de dados.
Destination – Destino: este é o ponto onde os dados devem ser
transferidos. O ponto de destino depende do aplicativo para o qual os dados
são extraídos. Pode ser uma ferramenta de análise ou um local de
armazenamento.
46
Data Flow – Fluxo de dados: quando os dados são movidos da origem
para o destino, esse processo é conhecido como fluxo de dados. ETL (Extract,
Transform, and Load) é um de seus exemplos.
Processing – Processamento: esta é uma implementação de fluxo de
dados que determina como os dados devem ser extraídos, transformados e
armazenados, pois temos vários métodos para implementá-los.
Workflow – Fluxo de trabalho: decide a sequência de processos e
monitora sua dependência. Certifica-se de que o upstream (ingestãode
dados) deve ser concluído antes de downstream (transferência de dados).
Monitoring – Monitoramento: o monitoramento consistente é
necessário para a integridade, consistência e perda de dados. Ele também
monitora a velocidade e a eficiência do pipeline, dependendo do volume de
dados.
Figura 6 – Processo do Pipeline de Dados.
Fonte: https://www.xenonstack.com/insights/data-pipeline-benefits-
importance.
Elementos de um Pipeline de Dados
https://www.xenonstack.com/insights/data-pipeline-benefits-importance
https://www.xenonstack.com/insights/data-pipeline-benefits-importance
47
A origem – um pipeline extrai dados desses locais. Sistemas de
gerenciamento de banco de dados relacional (RDBMS), sistemas de
gerenciamento de relacionamento com o cliente (CRMs), sistemas de
planejamento de recursos empresariais (ERPs), ferramentas de
gerenciamento de mídias sociais e até sensores de dispositivos IoT são
exemplos.
Destino – esse é o ponto de extremidade do pipeline de dados, onde
todos os dados extraídos são despejados. O destino final de um pipeline de
dados é frequentemente um Data Lake ou um Data Warehouse, que é
mantido para análise. Mas nem sempre é assim, os dados podem ser
fornecidos diretamente em ferramentas de visualização de dados para
análise.
Fluxo de Informações – à medida que os dados se movem da origem
para o destino, eles mudam. Dataflow é o termo para a movimentação de
dados. ETL, ou Extrair, Transformar e Carregar, é uma das metodologias de
fluxo de dados mais prevalentes.
Preparação – etapas envolvidas na extração de dados de várias
fontes, alterá-los e transportá-los para um local específico. O componente
de processamento de um pipeline de dados determina como o fluxo de
dados deve ser implementado. Qual procedimento de extração deve ser
utilizado para a ingestão de dados, por exemplo. O processamento em lote e
o processamento de fluxo são duas maneiras típicas de extrair dados de
fontes.
Processos – o fluxo de trabalho se preocupa com a forma como os
trabalhos em um pipeline de dados são executados e sua interdependência.
Quando um pipeline de dados é executado, ele é determinado por suas
dependências e sequenciamento. Na maioria dos pipelines de dados, as
atividades upstream devem ser concluídas com êxito antes que os trabalhos
downstream possam começar.
48
Monitorização – para garantir a correção dos dados e evitar a perda
de dados, um pipeline de dados deve ser monitorado regularmente. A
velocidade e a eficiência de um pipeline também são verificadas,
especialmente à medida que a maior parte dos dados aumenta.
Importância de um Pipeline de Dados
O Data Pipeline é importante quando os dados são armazenados em
locais diferentes, sua análise combinada é necessária. Por exemplo, existe
um sistema para e-commerce que exige os dados pessoais e de compra de
produtos do usuário para segmentar os clientes. Portanto, ele precisa de um
pipeline de dados para coletar dados do CRM (onde os dados do usuário são
salvos) e dados do site sobre seus dados de compra, pedido e visita.
Pode ser possível que haja um grande volume de dados e os
aplicativos de análise também são muito grandes e complexos. É possível
que o uso do mesmo sistema para análise onde os dados são gerados ou
estão presentes, retarde o processo de análise. Como resultado, é necessário
reduzir o efeito sobre o desempenho do pipeline de dados de serviço.
Quando as equipes de análise e produção são diferentes, as
organizações usuárias não querem que a equipe de análise acesse o sistema
de produção. Nesse caso, não é necessário compartilhar todos os dados com
o analista de dados, para reduzir as interrupções e automatizar o processo
para que cada vez não tenha que coletar dados manualmente sempre que
for necessário.
Desafio de Pipelines de Dados
Migração de dados
Dependendo do consumo de dados, as empresas podem precisar
migrar seus dados de um lugar para outro. Muitas empresas executam
trabalhos em lote no período noturno para aproveitar os recursos de
49
computação fora do horário de pico. Portanto, você vê os dados de ontem a
partir dos dados de hoje, impossibilitando decisões em tempo real.
O Apache Kafka tende a ser preferido para ingestão de dados em
larga escala. Ele particiona dados para que produtores, corretores e
consumidores possam escalar automaticamente à medida que a carga de
trabalho e a taxa de transferência se expandem.
Auto Scaling de Processamento e Armazenamento de Dados
O volume e a velocidade de dados atuais podem renderizar sua
abordagem para importar dados em lotes atômicos isolados de tudo ou
nada. A melhor solução é um sistema gerenciado que fornece
dimensionamento automático de armazenamento de dados e nós de
trabalho. Ele proporcionará facilidade no gerenciamento de cargas de
trabalho imprevisíveis, de diferentes padrões de tráfego.
Por exemplo, no caso do Kinesis Data Stream, um alarme do
CloudWatch observa as métricas de estilhaço do Kinesis Data Stream e um
limite personalizado do alarme é configurado. O limite de alarme é atingido
à medida que o número de solicitações cresce e o alarme é disparado. Esse
disparo envia uma notificação para uma política de Auto Scaling de
aplicativo que aumentará o número de fragmentos de fluxo de dados do
kinesis.
Outro exemplo é o dimensionamento automático do processamento
de dados. No caso de ETL leve, como o Lambda Pipeline, o AWS Lambda
criará uma instância da função na primeira vez que você invocar uma função
lambda e executar seu método de manipulador. Agora, se a função for
invocada novamente enquanto o primeiro evento estiver sendo processado,
o Lambda inicializará outra instância e a função lambda processará dois
eventos simultaneamente. À medida que mais eventos chegam, a função
lambda cria novas instâncias conforme necessário, e à medida que as
50
solicitações diminuem, o Lambda libera a capacidade de dimensionamento
para outras funções.
No caso de ETL pesado como o Spark, o cluster pode aumentar e
diminuir a escala da unidade de processamento (nós de trabalho),
dependendo da carga de trabalho.
Leituras e gravações otimizadas de dados no processo de pipeline
O desempenho do pipeline pode ser aprimorado reduzindo o
tamanho dos dados que você está ingerindo, ou seja, ingerindo apenas os
dados brutos necessários e mantendo os quadros de dados intermediários
compactos. Ler apenas dados úteis na memória pode acelerar seu aplicativo.
É igualmente importante otimizar as gravações de dados que você
executa no pipeline. Gravar menos saída na origem de destino também
melhora o desempenho facilmente. Essa etapa costuma receber menos
atenção. Os dados gravados em Data Warehouses na maioria das vezes não
são compactos. Isso não só ajudará a reduzir o custo de armazenamento de
dados, mas também o custo de processos downstream para lidar com linhas
desnecessárias. Assim, arrumar a produção do seu pipeline distribui
benefícios de desempenho para todo o sistema e empresa.
Cache de dados e configurações para o bom funcionamento de
execuções de pipeline
Através do cache de dados, as saídas ou dependências baixadas de
uma execução podem ser reutilizadas em execuções posteriores,
melhorando assim o tempo de compilação. Isso ajudará a reduzir o custo
para recriar ou baixar novamente os mesmos arquivos. É útil em situações
em que, no início de cada execução, as mesmas dependências são baixadas
repetidamente. Este é um processo demorado que envolve um grande
número de chamadas de rede.
2
52
Capítulo 2. Processamento de Dados
O que é Processamento de Dados?
Também denominado Processamento automático de dados (PAD),
ou Processamento Eletrônico de Dados (PED) as atividades que utilizam a
computação em seu processo. No entanto, foi justamente o advento dos
computadores quedinamizou de tal forma o tratamento das informações
que, a partir daí é que se vulgarizou a terminologia Processamento de Dados,
de modo que essa denominação se associa, no presente, a ideia do emprego
de computadores.
É o tratamento sistemático de dados, através de computadores e
outros dispositivos eletrônicos, com o objetivo de ordenar, classificar ou
efetuar quaisquer transformações nos dados, segundo um plano
previamente programado, visando a obtenção de um determinado resultado.
De modo geral, um processamento se realiza de acordo com o
esquema abaixo:
A entrada (input): se refere a algum dado de entrada do
processamento, são valores onde o processo irá atuar. Por exemplo, um
arquivo enviado para um compressor de dados.
O processamento: é onde os dados de entrada serão processados
para gerar um determinado resultado. O computador executa o arquivo.
(Outros exemplos: o cálculo salarial, uma complexa expressão matemática
ou até mesmo uma simples movimentação de dados ou comparação entre
eles). No caso do processamento computadorizado, esta tarefa é realizada
por meio de um algoritmo escrito numa linguagem de programação que é
compilado e gera o código de um programa responsável pelo
processamento.
53
A saída (output): é simplesmente o resultado de todo o
processamento, em todo processamento temos dados gerados como
resultado, essas saídas podem ser impressas na tela, em papel, armazenadas
em um arquivo ou até mesmo servir como entrada para um outro processo.
O computador exibe os resultados obtidos na tela.
Figura 7 – Processamento de Dados.
Fonte: https://www.educba.com/what-is-data-processing/.
O processamento de dados é coletar e manipular dados na forma
utilizável e desejada. Os dados podem ser manipulados manual ou
automaticamente, dependendo da sequência predefinida de operações.
No passado, era feito manualmente, o que era demorado e com
possibilidade de erros ao processar. Hoje os computadores executam a
maioria das tarefas de processamento automaticamente, permitindo um
processamento rápido e resultados precisos.
O próximo ponto é converter para a forma desejada. A ferramenta
processa e converte o coletado no formulário desejado com base em seus
requisitos. Essa transformação muta os dados em informações úteis, que o
aplicativo pode utilizar para realizar tarefas específicas.
A entrada do processamento é a coleta de dados de diferentes
fontes, como dados de arquivos de texto, dados de arquivos excel, bancos
https://www.educba.com/what-is-data-processing/
54
de dados e até mesmo dados não estruturados, como imagens, clipes de
áudio, clipes de vídeo, dados GPRS, etc. As ferramentas de processamento
de dados comumente disponíveis são Hadoop, Storm, HPCC, Qubole,
Statwing, CouchDB etc.
E a saída do processamento de dados é uma informação significativa
que pode estar em diferentes formas, como uma tabela, imagem, gráfico,
arquivo vetorial, áudio e todos os formatos obtidos dependendo do
aplicativo ou software necessário.
Como os dados devem ser processados?
O processamento de dados começa com a coleta de dados. Para o
formato desejado, ele deve ser processado passo a passo. Isso inclui
armazenamento, classificação, processamento, análise e apresentação dos
dados.
As seis etapas básicas envolvidas no processamento de dados para
garantir um processamento eficiente, são:
Figura 8 – Etapas do Processamento de Dados.
Fonte: https://www.educba.com/what-is-data-processing/.
1. Coleta de dado: é como coletamos dados logicamente
relacionados de várias fontes, formatos e tipos, como XML, arquivos CSV,
mídias sociais e imagens, que podem ser estruturados ou não.
https://www.educba.com/what-is-data-processing/
55
2. Armazenamento de Dados: a coleta de dados agora deve ser
armazenada em formas físicas, essa coleta de dados é enorme porque pers,
notebooks ou qualquer outra mineração de dados e Big Data, a coleta de
dados é enorme, mesmo em formatos estruturados ou não estruturados. O
aplicativo armazenará digitalmente os dados para análise e apresentação
significativas de acordo com seus requisitos.
3. Classificação de dados: após a etapa de armazenamento, a etapa
imediata será a classificação e filtragem. A classificação e a filtragem são
necessárias para organizar os dados em uma ordem significativa e extrair
apenas as informações necessárias. Isso permite uma melhor compreensão,
visualização e análise dos dados.
4. Tratamento de Dados: uma série de processamento ou uso
contínuo e processamento executado para verificar, transformar, organizar,
integrar e extrair dados em um formulário de saída útil para uso posterior.
5. Análise dos dados: durante a análise dos dados, os analistas
aplicam ou avaliam sistematicamente o raciocínio analítico e lógico para
ilustrar cada componente dos dados fornecidos, resultando em uma decisão
ou resultado conclusivo.
6. Apresentação dos Dados e Conclusões: uma vez que chegamos ao
resultado da análise, ele pode ser representado em diferentes formas, como
um gráfico, arquivo de texto, arquivo excel, gráfico etc.
Conceitos em Processamento de Dados
Aqui estão alguns conceitos-chave relacionados ao processamento
de dados:
Coleta de Dados: o primeiro passo no processamento de dados é a
coleta de informações relevantes a partir de fontes diversas, como sensores,
formulários, sistemas de informação, redes sociais, entre outros.
56
Validação de Dados: após a coleta, os dados passam por um processo
de validação para garantir que estejam completos, precisos e consistentes.
Isso pode envolver a verificação de formatos, a detecção de valores ausentes
ou inválidos e a correção de erros.
Limpeza de Dados: a limpeza de dados é o processo de remoção de
dados duplicados, inconsistentes ou irrelevantes. Isso ajuda a melhorar a
qualidade dos dados e reduzir problemas durante o processamento.
Transformação de Dados: a transformação de dados envolve a
modificação dos dados de várias maneiras, como conversão de formatos,
normalização de valores, agregação, filtragem, entre outros. Essas
transformações visam preparar os dados para análise ou uso em aplicativos.
Integração de Dados: A integração de dados é a combinação de
informações de diferentes fontes em um único conjunto de dados coeso.
Isso é importante quando os dados estão espalhados em sistemas
heterogêneos.
Armazenamento de Dados: os dados processados são armazenados
em sistemas de gerenciamento de dados, como bancos de dados, Data Lakes
ou Data Warehouses, para acesso e consulta posteriores.
Análise de Dados: após o processamento e armazenamento, os
dados estão prontos para análise. A análise de dados envolve a exploração,
modelagem e interpretação das informações para obter insights e tomar
decisões informadas.
Segurança de Dados: a segurança de dados é crucial durante todo o
processo de processamento de dados. Isso inclui medidas para proteger
dados sensíveis contra acesso não autorizado, perda de dados e garantir
conformidade com regulamentações de privacidade.
57
Automatização: muitos processos de processamento de dados são
automatizados usando software e scripts para melhorar a eficiência e
reduzir erros humanos.
Visualização de Dados: a visualização de dados é a representação
gráfica dos resultados da análise para facilitar a compreensão e a
comunicação de informações complexas.
Manutenção e Monitoramento: os sistemas de processamento de
dados requerem manutenção regular para garantir que continuem
funcionando de maneira eficaz. Isso inclui monitorar o desempenho,
solucionar problemas e fazer atualizações conforme necessário.
Escalabilidade: a capacidade de escalabilidade é importante para
lidar com volumes crescentes de dados à medida que uma organização
cresce.
O processamento de dados desempenha um papel fundamental emvárias áreas, desde análise de negócios e pesquisa científica, até automação
de processos e tomada de decisões em tempo real. É uma disciplina
essencial para aproveitar o valor dos dados em um mundo cada vez mais
orientado por informações.
Modelos de Processamento de Dados
Existem vários modelos de processamento de dados que são usados
em diferentes contextos e para atender a várias necessidades de
processamento de informações. Alguns dos modelos mais comuns incluem:
Processamento em Lote (Batch Processing)
Descrição: este é um modelo em que os dados são coletados,
processados e armazenados em lotes, geralmente em intervalos
programados.
58
Aplicações: é comumente utilizado para tarefas que não exigem
processamento em tempo real, como geração de relatórios, atualização de
bancos de dados e processamento de grandes volumes de dados históricos.
Processamento em Tempo Real (Real-Time Processing)
Descrição: neste modelo, os dados são processados assim que são
gerados ou recebidos, com baixa latência entre a entrada e a saída.
Aplicações: é adequado para cenários que exigem respostas
imediatas, como sistemas de monitoramento de tempo real, detecção de
fraudes e aplicações de streaming de dados.
Processamento em Memória (In-Memory Processing)
Descrição: neste modelo os dados são mantidos em memória
principal (RAM) para acesso e processamento extremamente rápidos.
Aplicações: é usado quando a velocidade de acesso aos dados é
crítica, como em bancos de dados em memória, sistemas de análise de alto
desempenho e cache em memória.
Processamento Distribuído (Distributed Processing)
Descrição: neste modelo o processamento de dados é distribuído em
vários nós de computação em um cluster ou rede, permitindo o
processamento paralelo e escalabilidade.
Aplicações: é útil para processar grandes volumes de dados de
maneira eficiente, como em sistemas de Big Data, processamento de dados
na nuvem e clusters de processamento.
Processamento por Lote e Streaming
Descrição: combina o processamento em lote e em tempo real,
permitindo que os dados sejam processados em lotes e em streaming,
dependendo das necessidades.
59
Aplicações: é útil quando uma aplicação requer tanto análise em
tempo real quanto análise de dados históricos, como em aplicações de IoT
e análise de eventos em tempo real.
Processamento ETL (Extração, Transformação e Carga)
Descrição: este modelo envolve a extração de dados de várias fontes,
a transformação dos dados para atender a requisitos específicos e a carga
dos dados em um destino, como um Data Warehouse.
Aplicações: é amplamente utilizado na integração de dados,
preparação de dados para análise e migração de dados entre sistemas.
Processamento de Gráfico (Graph Processing)
Descrição: esse modelo se concentra na análise de relações
complexas entre os dados, usando estruturas de grafo para representar
conexões.
Aplicações: é usado em redes sociais, análise de redes, roteamento
de tráfego e detecção de padrões em conjuntos de dados conectados.
Cada um desses modelos de processamento de dados é adequado
para situações diferentes, dependendo dos requisitos de latência,
escalabilidade, complexidade de análise e volume de dados. A escolha do
modelo certo depende das necessidades específicas do seu projeto e dos
recursos disponíveis. Existem vários modelos de processamento de dados
que são usados em diferentes contextos e para atender a várias
necessidades de processamento de informações.
Processamento Distribuído
O processamento distribuído é um processo de computação em que
as operações são particionadas em vários computadores conectados através
de uma rede. O objetivo do processamento distribuído é fornecer um serviço
mais rápido e confiável do que pode ser alcançado por uma única máquina.
60
Muitas vezes, os conjuntos de dados são grandes demais para caber
em uma máquina. O processamento distribuído de dados divide esses
grandes conjuntos de dados e os armazena em várias máquinas ou
servidores, melhorando o gerenciamento de dados. Ele repousa no Hadoop
Distributed File System (HDFS). Um sistema de processamento de dados
distribuído tem uma alta tolerância a falhas. Se um servidor na rede falhar,
você poderá realocar tarefas de processamento de dados para outros
servidores disponíveis, o que não é um trabalho muito demorado.
O processamento distribuído também pode economizar custos.
Empresas como a sua não precisam mais construir computadores
mainframe caros com CPUs e investir em sua manutenção e manutenção.
61
Figura 9 –Processamento Distribuído.
Fonte: https://www.geeksforgeeks.org/introduction-to-hadoop-distributed-file-
systemhdfs/.
Processamento em Tempo Real
O processamento em tempo real é o processo de computação de
dados assim que eles são gerados ou recebidos. É uma forma de
processamento distribuído que permite capturar e analisar fluxos de dados
recebidos em tempo real, permitindo que você aja rapidamente sobre os
insights fornecidos pela análise.
O processamento em tempo real é semelhante ao processamento de
transações, pois você o usa em situações em que espera a saída em tempo
real. No entanto, os dois diferem em como lidam com a perda de dados. O
processamento em tempo real calcula os dados recebidos o mais rápido
possível. Se ele encontrar um erro nos dados de entrada, ele ignorará o erro
e passará para a próxima parte da entrada de dados que chega. Os
aplicativos de rastreamento por GPS são o exemplo mais comum de
processamento de dados em tempo real.
https://www.geeksforgeeks.org/introduction-to-hadoop-distributed-file-systemhdfs/
https://www.geeksforgeeks.org/introduction-to-hadoop-distributed-file-systemhdfs/
62
Compare isso com o processamento de transações. Em caso de erro,
como uma falha do sistema, o processamento de transações aborta o
processamento contínuo e é reinicializado. Você pode preferir o
processamento em tempo real ao processamento de transações nos casos
em que as respostas aproximadas são suficientes.
No mundo da análise de dados, o processamento de fluxo é uma
aplicação comum de processamento de dados em tempo real. Popularizado
pela primeira vez pelo Apache Storm, o processamento de fluxo analisa os
dados à medida que eles chegam. Pense em dados de sensores IoT ou
rastreie a atividade do consumidor em tempo real. Google BigQuery e
Snowflake são exemplos de plataformas de dados em nuvem que empregam
processamento em tempo real. Você pode então executar dados por meio de
ferramentas de business intelligence, que usam inteligência artificial e
aprendizado de máquina para gerar insights valiosos que influenciam a
tomada de decisões.
Figura 10 –Processamento em Tempo Real.
Fonte: https://k21academy.com/microsoft-azure/data-engineer/batch-
processing-vs-stream-processing/.
Processamento em Lote
O processamento em lote é quando pedaços de dados, armazenados
durante um período de tempo, são analisados juntos ou em lotes. O
processamento em lote é necessário quando proprietários de empresas e
https://k21academy.com/microsoft-azure/data-engineer/batch-processing-vs-stream-processing/
https://k21academy.com/microsoft-azure/data-engineer/batch-processing-vs-stream-processing/
63
cientistas de dados exigem um grande volume de dados para analisar para
obter insights detalhados. Por exemplo, os números de vendas normalmente
passam por processamento em lote, permitindo que as empresas usem
recursos de visualização de dados, como gráficos, gráficos e relatórios, para
derivar valor dos dados. Como um grande volume de dados está envolvido, o
sistema levará tempo para processá-los. O processamento dos dados em
lotes economiza recursos computacionais.
Você pode preferir o processamento em lote ao processamento em
tempo real quando a precisão é mais importante do que a velocidade.Além
disso, você pode medir a eficiência do processamento em lote em termos de
taxa de transferência. Taxa de transferência é a quantidade de dados
processados por unidade de tempo.
Figura 11 – Processamento em Lote.
Fonte: https://k21academy.com/microsoft-azure/data-engineer/batch-
processing-vs-stream-processing/.
Ferramentas e Tecnologias de Processamento de Dados
Existem muitas ferramentas disponíveis para o processamento de
dados em várias etapas do ciclo de vida de dados, desde a coleta até a análise
e a visualização. A escolha das ferramentas depende dos requisitos
específicos do seu projeto e das tecnologias com as quais você está
trabalhando.
Ferramentas para Coleta de Dados
https://k21academy.com/microsoft-azure/data-engineer/batch-processing-vs-stream-processing/
https://k21academy.com/microsoft-azure/data-engineer/batch-processing-vs-stream-processing/
64
Flume: uma ferramenta de coleta de dados que permite a ingestão
de dados de várias fontes para sistemas de armazenamento, como Hadoop
HDFS.
Kafka Connect: parte do ecossistema Apache Kafka, o Kafka Connect
é uma estrutura para conectar fontes e destinos de dados, permitindo a
captura de dados em tempo real e a replicação para várias fontes de destino.
Logstash: uma ferramenta de coleta de dados da Elastic Stack (ELK),
que é especialmente adequada para processar logs e eventos de várias
fontes e enviá-los para sistemas de armazenamento e análise, como o
Elasticsearch.
Filebeat: outra ferramenta da Elastic Stack, o Filebeat, é projetado
especificamente para coletar e enviar logs e arquivos de registro para o
Elasticsearch ou outros destinos.
Fluentd: uma plataforma de coleta de logs e eventos que pode
coletar dados de várias fontes e enviá-los para diferentes destinos, como
bancos de dados, armazenamento em nuvem e sistemas de análise.
AWS Data Pipeline: um serviço da Amazon Web Services (AWS) que
permite a coleta, transformação e movimentação de dados entre diferentes
serviços da AWS e fontes externas.
Google Cloud Dataflow: uma plataforma de processamento de dados
gerenciada na Google Cloud que oferece recursos de ingestão,
transformação e movimentação de dados em tempo real e em lote.
Microsoft Azure Data Factory: um serviço na Microsoft Azure que
permite a criação de pipelines de dados para coleta, transformação e
movimentação de dados em várias fontes e destinos.
Splunk: uma plataforma de análise de dados que também oferece
recursos de coleta de dados para logs, eventos e métricas de várias fontes.
65
Rsyslog: um sistema de log open source que pode coletar, processar
e encaminhar logs de várias fontes para destinos diferentes.
Flume-ng (Flume Next Generation): uma versão mais recente e em
desenvolvimento do Apache Flume, que oferece recursos aprimorados de
coleta de dados em comparação com a versão anterior.
66
Ferramentas para Validação e Limpeza de Dados
OpenRefine: uma ferramenta de código aberto para limpeza e
transformação de dados.
Trifacta: uma plataforma de preparação de dados que ajuda na
limpeza e na transformação de dados de forma visual.
Ferramentas para Transformação de Dados
Apache NiFi: uma ferramenta de integração de dados que permite a
criação de pipelines de dados para transformação e movimentação de dados
em tempo real.
Talend: uma plataforma de integração de dados que oferece
recursos de transformação de dados e ETL.
Ferramentas para Armazenamento de Dados
Apache Hadoop: um ecossistema de armazenamento e
processamento de Big Data que inclui o HDFS (Hadoop Distributed File
System).
Amazon S3: um serviço de armazenamento em nuvem escalável da
Amazon Web Services.
Ferramentas para Processamento em Lote
Apache Spark: uma plataforma de processamento de dados em
cluster que suporta processamento em lote e em tempo real.
Apache Flink: uma plataforma de processamento de dados em
streaming e em lote.
Ferramentas para Processamento em Tempo Real
Apache Kafka: uma plataforma de streaming de alto desempenho
para processamento em tempo real de eventos.
67
Apache Storm: um sistema de computação em tempo real para
processamento de fluxos contínuos de dados.
Ferramentas para Integração de Dados
Apache Camel: uma estrutura de integração de código aberto que
facilita a integração de sistemas e aplicativos.
MuleSoft: uma plataforma de integração de aplicativos que facilita a
integração de sistemas empresariais.
Ferramentas para Processamento Gráfico
Apache Giraph: uma plataforma para processamento de gráficos em
larga escala.
Neo4j: um banco de dados de grafo que permite a análise e a
consulta de dados de grafo.
Ferramentas para Análise de Dados e Visualização
Tableau: uma ferramenta de visualização de dados que permite criar
painéis interativos.
Power BI: uma plataforma de análise de negócios da Microsoft que
oferece recursos de visualização de dados.
Boas Práticas para Processamento de Dados
O processamento de dados é uma parte fundamental da gestão de
informações em muitas organizações. Para garantir a qualidade, a segurança
e a eficiência do processamento de dados, é importante seguir boas práticas.
Aqui estão algumas boas práticas a serem consideradas:
• Coleta de Dados Precisos e Relevantes: certifique-se de coletar
apenas os dados necessários para o seu objetivo e que eles
sejam precisos e confiáveis desde o início.
68
• Padronização de Dados: mantenha padrões claros para a
estrutura e o formato dos dados coletados para facilitar o
processamento e a análise.
• Validação de Dados: implemente verificações de validação de
dados para identificar e corrigir erros ou inconsistências durante
a coleta.
• Limpeza de Dados: regularmente, limpe e atualize os dados para
remover duplicatas, valores ausentes e informações obsoletas.
• Armazenamento Seguro: armazene os dados em sistemas
seguros e protegidos contra acesso não autorizado, garantindo
conformidade com regulamentações de privacidade.
• Backup e Recuperação: mantenha cópias de backup dos dados
críticos e implemente um plano de recuperação de desastres
para evitar perdas de dados.
• Documentação Adequada: mantenha documentação detalhada
dos processos de coleta, transformação e armazenamento de
dados para facilitar a compreensão e a manutenção futura.
• Privacidade e Conformidade: esteja ciente das
regulamentações de privacidade de dados (como o GDPR na
União Europeia) e garanta que os dados sejam tratados de
acordo com essas leis.
• Segurança de Dados: implemente medidas de segurança, como
criptografia e autenticação, para proteger os dados contra
ameaças cibernéticas.
69
• Processamento em Tempo Real ou em Lote: escolha o modelo
de processamento adequado com base nos requisitos de
negócios e nas necessidades de latência.
• Transformação de Dados Adequada: realize transformações de
dados de maneira adequada e eficiente, mantendo a qualidade e
a integridade dos dados.
• Monitoramento de Desempenho: implemente sistemas de
monitoramento para rastrear o desempenho dos processos de
processamento de dados e identificar problemas rapidamente.
• Backup de Metadados: faça backup de metadados importantes,
como esquemas de banco de dados, para facilitar a recuperação
em caso de falha.
• Acesso Controlado: controle o acesso aos dados, garantindo que
apenas pessoas autorizadas tenham permissão para visualizar
ou modificar informações sensíveis.
• Testes e Validação: realize testes regulares nos processos de
processamento de dados para garantir que eles funcionem
conforme o esperado e que os resultados sejam precisos.
• Treinamento da Equipe: certifique-se de que a equipe envolvida
no processamento de dados esteja devidamente treinada em
boas práticas e ciente das políticas de segurança de dados.
• Revisão de Políticas: revise regularmente as políticas eprocedimentos relacionados ao processamento de dados para
garantir que eles estejam atualizados e eficazes.
70
• Auditorias e Conformidade: realize auditorias regulares para
garantir a conformidade com regulamentações e padrões
relevantes.
Seguir essas boas práticas ajudará a garantir que os dados sejam
processados de forma eficiente, segura e confiável, contribuindo para a
tomada de decisões informadas e para a integridade das informações da
organização.
3
72
Capítulo 3. Coleta de Dados
Conceitos de Coleta de Dados
A coleta de dados é um processo fundamental em diversas áreas,
incluindo pesquisa, ciência de dados, negócios e tomada de decisões.
Envolve a obtenção de informações de fontes relevantes para análise,
estudo ou resolução de problemas específicos.
Conhecimento é poder, informação é conhecimento e dados são
informações em formato digitalizado, pelo menos como definido em TI.
Portanto, dados são poder. Mas antes de aproveitar esses dados em uma
estratégia bem-sucedida para sua organização ou negócio, você precisa
recolhê-los. Esse é o seu primeiro passo.
A coleta de dados é o processo de coletar e avaliar informações ou
dados de múltiplas fontes para encontrar respostas para problemas de
pesquisa, responder perguntas, avaliar resultados e prever tendências e
probabilidades.
É uma fase essencial em todos os tipos de pesquisa, análise e
tomada de decisão, incluindo a feita nas ciências sociais, negócios e saúde.
A coleta acurada de dados é necessária para tomar decisões de
negócios informadas, garantir a garantia de qualidade e manter a
integridade da pesquisa.
Durante a coleta de dados, os pesquisadores devem identificar os
tipos de dados, as fontes de dados e quais métodos estão sendo utilizados.
Existem muitos métodos diferentes de coleta de dados.
Antes de um analista começar a coletar dados, ele deve responder a
três perguntas primeiro:
73
74
• Qual é o objetivo ou finalidade desta pesquisa?
• Que tipos de dados eles planejam coletar?
• Quais métodos e procedimentos serão usados para coletar,
armazenar e processar as informações?
Além disso, podemos dividir os dados em tipos qualitativos e
quantitativos. Os dados qualitativos abrangem descrições como cor,
tamanho, qualidade e aparência. Dados quantitativos, sem surpresa, lidam
com números, como estatísticas, números de pesquisas, porcentagens etc.
Fontes de Dados
Refere-se ao local ou à origem de onde os dados são obtidos. As
fontes de dados podem incluir bancos de dados, pesquisas de campo,
sensores, registros de transações, fontes públicas na web, redes sociais,
entre outros.
1. Fonte de Dados Primárias.
2. Fonte de Dados Secundárias.
3. Fonte de Dados Internos.
4. Fonte de Dados de Sensores e Dispositivos.
5. Fonte de Dados de Terceiros e Parceiros.
6. Fonte de Pesquisas de Mercado e Opinião Pública.
7. Fonte de Dados de Fontes Governamentais.
Fontes de Dados Primárias:
• Entrevistas: conversas diretas com indivíduos, especialistas
ou partes interessadas para obter informações específicas.
75
• Questionários: formulários estruturados usados para coletar
informações de participantes por meio de respostas escritas.
• Observação: coleta de dados por meio da observação direta de
eventos, comportamentos ou processos.
• Experimentos: coleta de dados por meio de testes controlados
que manipulam variáveis independentes.
• Grupos Focais: discussões em grupo estruturadas com
participantes para explorar ideias ou opiniões.
• Amostras de Campo: coleta de amostras de substâncias, como
solo, água, ar ou produtos, para análise laboratorial.
Fontes de Dados Secundárias:
• Bancos de Dados Públicos: dados disponibilizados por órgãos
governamentais, organizações internacionais, instituições
acadêmicas e outras fontes públicas.
• Relatórios de Empresas: informações financeiras, relatórios
anuais, dados de vendas e marketing fornecidos por
empresas.
• Pesquisas Anteriores: dados coletados em pesquisas ou
estudos anteriores que estão disponíveis para referência ou
reanálise.
• Fontes de Mídia: notícias, artigos, relatórios e outros
conteúdos publicados em mídia impressa ou online.
• Literatura Científica: artigos de revistas acadêmicas, livros e
publicações acadêmicas que contêm informações relevantes
para pesquisa.
76
• Dados de Mercado: informações de pesquisa de mercado,
análises de consumidores e estudos de setores específicos.
• Redes Sociais e Dados da Web: dados gerados por interações
online, como mídias sociais, blogs e fóruns.
Dados Abertos – Ciência
O conceito de acesso aberto a dados científicos foi estabelecido
institucionalmente com a formação do sistema World Data Center, em
preparação para o Ano Geofísico Internacional de 1957-1958.
O Conselho Internacional de Sindicatos Científicos (agora o
Conselho Internacional para a Ciência) supervisiona vários Centros de
Dados Mundiais com o mandato de minimizar o risco de perda de dados e
maximizar a acessibilidade dos dados.
Embora o movimento de dados de ciência aberta seja muito anterior
à Internet, a disponibilidade de redes rápidas e onipresentes mudou
significativamente o contexto dos dados de ciência aberta, uma vez que
publicar ou obter dados tornou-se muito menos caro e demorado.
Projeto Genoma
O Projeto Genoma Humano foi uma grande iniciativa que
exemplificou o poder dos dados abertos. Foi construído sobre os chamados
Princípios das Bermudas, estipulando que: “Todas as informações sobre a
sequência genômica humana, devem estar disponíveis gratuitamente e em
domínio público para incentivar a pesquisa e o desenvolvimento e maximizar
seus benefícios para a sociedade”.
Mais iniciativas recentes, como o Structural Genomics Consortium,
mostraram que a abordagem de dados abertos também pode ser usada
produtivamente no contexto de P&D industrial.
Kaggle
77
O Kaggle é uma das mais conhecidas plataformas para competições
de Data Science. A plataforma foi fundada em 2010 por Anthony Goldbloom
e em 2017 foi adquirida pelo Google (Alphabet).
O Kaggle dentro da sua plataforma pode hospedar competições de
Data Science públicas, privadas e acadêmicas. As competições patrocinadas
por empresas oferecem prêmios em dinheiro pela melhor solução. Também
existem competições de aprendizado (disponibilizadas pelo próprio Kaggle
ou por empresas para treinamento de habilidades). A plataforma também
armazena e disponibiliza dados sobre assuntos diversos (chamados
datasets) e possui fóruns para troca de conhecimentos entre seus usuários.
Outras Fontes
• UC Irvine Machine Learning Repository.
• Stanford Large Network Dataset Collection.
• Time Series Data Library.
• KDnuggets Dataset List.
• KDD Cup Datasets.
Dados Abertos – Governo
Uma das formas mais importantes de dados abertos são os dados
abertos do governo (OGD), que é uma forma de dados abertos criados por
instituições governamentais governantes. A importância dos dados
governamentais abertos nasce do fato de serem parte da vida cotidiana dos
cidadãos, até as tarefas mais rotineiras, que aparentemente estão muito
distantes do governo.
Dados Abertos – Sidra
Incremente sua aplicação com a API de dados agregados do IBGE, a
API que alimenta o SIDRA, Sistema IBGE de Recuperação Automática,
https://archive.ics.uci.edu/
http://snap.stanford.edu/data/
http://robjhyndman.com/TSDL/
http://www.kdnuggets.com/datasets/index.html
http://www.sigkdd.org/kddcup/index.php
78
ferramenta que disponibiliza os dados das pesquisas e censos realizados
pelo IBGE.
• https://servicodados.ibge.gov.br/api/docs/agregados?versao=3
Fonte de Dados Públicos
• 𝐈𝐍𝐄𝐏.
• 𝐏𝐨𝐫𝐭𝐚𝐥 𝐝𝐚 𝐓𝐫𝐚𝐧𝐬𝐩𝐚𝐫ê𝐧𝐜𝐢𝐚 𝐝𝐨 𝐆𝐨𝐯𝐞𝐫𝐧𝐨 𝐅𝐞𝐝𝐞𝐫𝐚𝐥.
• 𝐎𝐩𝐞𝐧 𝐃𝐚𝐭𝐚 𝐒𝐔𝐒.
• 𝐁𝐚𝐬𝐞 𝐝𝐨𝐬 𝐃𝐚𝐝𝐨𝐬 𝐏ú𝐛𝐥𝐢𝐜𝐨𝐬𝐝𝐨 𝐆𝐨𝐯𝐞𝐫𝐧𝐨 𝐅𝐞𝐝𝐞𝐫𝐚𝐥.
• 𝐃𝐚𝐝𝐨𝐬 𝐏ú𝐛𝐥𝐢𝐜𝐨𝐬 𝐝𝐚 𝐂𝐢𝐝𝐚𝐝𝐞 𝐝𝐨 𝐑𝐢𝐨 𝐝𝐞 𝐉𝐚𝐧𝐞𝐢𝐫𝐨.
• 𝐏𝐨𝐫𝐭𝐚𝐥 𝐝𝐚 𝐓𝐫𝐚𝐧𝐬𝐩𝐚𝐫ê𝐧𝐜𝐢𝐚 𝐝𝐨 𝐄𝐬𝐭𝐚𝐝𝐨 𝐝𝐞 𝐒𝐏.
Métodos de Coleta de Dados
Os métodos de coleta de dados são técnicas e procedimentos
utilizados para a coleta de informações para fins de pesquisa.
Esses métodos podem variar de simples pesquisas auto-relatadas
até experimentos mais complexos, e podem envolver abordagens
quantitativas ou qualitativas para a coleta de dados.
Alguns métodos comuns de coleta de dados incluem pesquisas,
entrevistas, observações, grupos focais, experimentos e análise de dados
secundários. Os dados coletados por meio desses métodos podem então ser
analisados e usados para apoiar ou refutar hipóteses de pesquisa e tirar
conclusões sobre o assunto do estudo.
Figura 12 – Métodos de Coleta de Dados.
https://servicodados.ibge.gov.br/api/docs/agregados?versao=3
https://lnkd.in/da68Mws
https://lnkd.in/dB2XeDd5
https://lnkd.in/dugFpDAA
https://basedosdados.org/
https://www.data.rio/
https://lnkd.in/dRxMnnBZ
79
Fonte: https://karinacarrasqueira.wordpress.com/2019/05/27/metodos-de-
coletas-de-dados/.
https://karinacarrasqueira.wordpress.com/2019/05/27/metodos-de-coletas-de-dados/
https://karinacarrasqueira.wordpress.com/2019/05/27/metodos-de-coletas-de-dados/
80
Importância de Métodos na Coleta de Dados
Os métodos de coleta de dados desempenham um papel crucial no
processo de pesquisa, pois determinam a qualidade e a precisão dos dados
coletados. Aqui estão algumas importâncias importantes dos métodos de
coleta de dados:
• Determina a qualidade e a precisão dos dados coletados.
• Garante que os dados sejam relevantes, válidos e confiáveis.
• Ajuda a reduzir vieses e aumentar a representatividade da
amostra.
• Essencial para a tomada de decisões informadas e conclusões
precisas.
• Facilita o alcance dos objetivos da pesquisa, fornecendo
dados precisos.
• Apoia a validade e confiabilidade dos resultados da pesquisa.
Com a coleta de dados, a empresa pode estabelecer os indicadores
estratégicos (Key Performance Indicators) mais importantes para os
negócios. Por meio deles, é possível avaliar métricas valiosas, como os leads
alcançados em determinado período e o ticket médio da empresa.
Existem várias maneiras de coletar dados, incluindo:
• Coleta Primária: os dados são obtidos diretamente da fonte
original, por meio de pesquisas, observações, entrevistas,
experimentos etc.
• Coleta Secundária: os dados são obtidos de fontes existentes,
como literatura, bancos de dados, relatórios de empresas ou
dados disponíveis publicamente.
81
82
Figura 13 – Coleta Primária e Secundária.
Fonte: https://www.questionpro.com/blog/data-collection-methods/.
Dados Primários e Secundários
Dados primários e dados secundários são dois tipos distintos de
informações usadas em pesquisa e análise de dados. Eles diferem na forma
como são coletados, sua origem e seu propósito.
Coleta Primária
A coleta primária de dados refere-se ao processo de obtenção de
informações diretamente de fontes originais, por meio de métodos
específicos de pesquisa, observação ou interação direta com os
participantes do estudo. Esse tipo de coleta de dados é frequentemente
usado em pesquisas acadêmicas, estudos de mercado, projetos de pesquisa
científica, levantamentos e outras iniciativas que requerem informações
específicas e personalizadas. Aqui estão os principais métodos de coleta
primária de dados:
Entrevistas:
• Entrevistas estruturadas: perguntas predefinidas são feitas a
todos os participantes da pesquisa, garantindo uniformidade
nas respostas.
https://www.questionpro.com/blog/data-collection-methods/
83
• Entrevistas não estruturadas: as perguntas não são fixas,
permitindo uma abordagem mais flexível e uma compreensão
mais profunda das respostas.
• Questionários: questionários são formulários escritos ou
eletrônicos que contêm uma série de perguntas fechadas ou
abertas. Eles são distribuídos aos participantes para serem
preenchidos.
• Observação Direta: os pesquisadores observam diretamente o
comportamento, eventos ou fenômenos de interesse e
registram suas observações. Isso pode ser feito de forma não
participativa (os observadores não interagem com os
participantes) ou participativa (os observadores interagem
com os participantes).
• Experimentos: os experimentos envolvem a manipulação
controlada de variáveis independentes para observar os
efeitos nas variáveis dependentes. Eles são usados
principalmente em pesquisas científicas.
• Pesquisas Online: utilização de formulários online, como os
oferecidos por ferramentas como o Google Forms, para coletar
dados de participantes remotamente.
• Grupos Focais: os grupos focais são sessões de discussão em
grupo nas quais um moderador guia a conversa para obter
insights sobre um tópico específico. São frequentemente
usados em pesquisas qualitativas.
• Diários ou Registros: participantes mantêm diários ou
registros pessoais para registrar eventos, experiências ou
informações específicas ao longo do tempo.
84
• Medições Biométricas e de Sensores: utilização de sensores,
como dispositivos de monitoramento de frequência cardíaca,
dispositivos de rastreamento de movimento ou outros
dispositivos biométricos para coletar dados em tempo real.
• Amostragem de Áudio ou Vídeo: gravação de áudio ou vídeo
de interações, entrevistas ou eventos para análise posterior.
• Coleta de Amostras de Campo: coleta de amostras de solo,
água, ar, alimentos etc., para análise em laboratório.
• Métodos Etnográficos: imersão em um ambiente cultural ou
social para observar e interagir com os participantes para
obter uma compreensão profunda da cultura ou do contexto.
• Testes de Usabilidade: avaliação da facilidade de uso e
eficácia de produtos, sites ou aplicativos por meio da
observação direta dos usuários durante o uso.
É importante selecionar o método de coleta de dados primária que
melhor se adapte aos objetivos da pesquisa, à natureza dos dados e ao
contexto do estudo. Além disso, deve-se considerar a ética na coleta de
dados, incluindo a obtenção de consentimento informado quando aplicável
e seguir práticas de pesquisa rigorosas para garantir a qualidade e a
confiabilidade dos dados coletados.
Coleta Secundária
A coleta secundária de dados envolve a obtenção de informações a
partir de fontes já existentes, em oposição à coleta primária, na qual os
dados são obtidos diretamente das fontes originais. Essa abordagem é
frequentemente usada quando os dados necessários já foram coletados por
outras organizações, pesquisadores ou fontes confiáveis. Aqui estão os
principais aspectos da coleta secundária de dados:
85
Fontes de Dados Secundários: podem incluir literatura acadêmica,
relatórios de pesquisa, bancos de dados públicos, registros governamentais,
documentos de empresas, dados históricos, fontes de mídia e muito mais.
Vantagens:
• Economia de tempo e recursos: a coleta secundária muitas
vezes é mais rápida e econômica do que a coleta primária.
• Dados históricos: permite analisar tendências ao longo do
tempo.
• Dados de larga escala: dados secundários frequentemente
cobrem grandes populações ou áreas geográficas.
• Variedade de fontes: diversas fontes oferecem diferentes
perspectivas e tipos de dados.
Desvantagens:
• Limitações de disponibilidade: dados específicos podem não
estar disponíveis ou podem ser difíceis de encontrar.
• Qualidade e confiabilidade: a qualidade dos dados
secundários pode variar e nem sempre atender às
necessidades do projeto.
• Falta de controle: você não tem controle sobre como os dados
foram coletados originalmente.
Funcionabilidades:
Validação e Verificação: ao usar dados secundários, é importantevalidar e verificar a qualidade dos dados sempre que possível. Isso pode
envolver a revisão das metodologias de coleta original e a identificação de
eventuais problemas.
86
Combinação de Dados: em muitos casos, é possível combinar dados
de várias fontes secundárias para obter uma visão mais abrangente do
tópico em estudo.
Ética e Consentimento: certifique-se de que a utilização dos dados
secundários esteja em conformidade com regulamentações de privacidade
e ética. Em alguns casos, pode ser necessário obter permissão ou
consentimento para usar os dados.
Documentação: mantenha registros detalhados sobre a origem dos
dados, as datas de coleta e quaisquer transformações ou manipulações
realizadas durante a análise.
Citações e Referências: dê crédito adequado às fontes originais ao
utilizar dados secundários em seu trabalho. Isso é importante para a
integridade acadêmica e a ética de pesquisa.
A coleta secundária de dados é valiosa em muitos contextos,
especialmente quando os dados necessários já existem ou quando a coleta
primária seria impraticável ou muito dispendiosa. No entanto, é essencial
avaliar a qualidade e a relevância dos dados secundários para garantir que
eles atendam aos objetivos de pesquisa e análise.
Características Dados Primários
Origem: dados primários são informações coletadas diretamente de
fontes originais e específicas para a finalidade da pesquisa em questão. Isso
significa que os dados não existiam antes da pesquisa e são obtidos pela
primeira vez.
Processo de Coleta: a coleta de dados primários envolve a realização
de pesquisas, entrevistas, questionários, experimentos, observações ou
outras técnicas de coleta direta de informações.
87
Controle: os pesquisadores têm controle total sobre o processo de
coleta, incluindo a escolha das perguntas, métodos de coleta e as condições
em que os dados são coletados.
Tempo e Custo: coletar dados primários pode ser demorado e
custoso, pois envolve a criação de instrumentos de coleta, a realização de
entrevistas ou pesquisas de campo e o processamento dos dados.
Exemplos: respostas de um questionário feito especificamente para
um estudo, resultados de experimentos de laboratório, dados de pesquisa
de mercado conduzidos internamente.
Características Dados Secundários
Origem: dados secundários são informações que já foram coletadas,
registradas e publicadas por outras fontes, não para um propósito específico
de pesquisa, mas para outros fins, como relatórios, estatísticas, registros
governamentais, pesquisas acadêmicas anteriores etc.
Processo de Coleta: os dados secundários são coletados por
terceiros para suas próprias finalidades, não sob controle direto dos
pesquisadores que os estão usando.
Controle: os pesquisadores têm menos controle sobre a qualidade e
a precisão dos dados secundários, uma vez que eles não participaram
diretamente do processo de coleta.
Tempo e Custo: usar dados secundários geralmente é mais rápido e
econômico do que coletar dados primários, pois os dados já estão
disponíveis.
Exemplos: relatórios governamentais, bancos de dados acadêmicos,
estatísticas de vendas de empresas, registros históricos e literatura
científica existente.
88
Em resumo, os dados primários são aqueles que você coleta
diretamente para uma pesquisa específica, enquanto os dados secundários
são informações já coletadas por outras fontes e disponíveis para uso em
uma variedade de contextos. A escolha entre usar dados primários ou
secundários depende dos objetivos da pesquisa, dos recursos disponíveis e
da qualidade e disponibilidade dos dados.
Coleta de Dados Coorporativa
A coleta de dados em uma empresa pode ser tanto primária quanto
secundária, dependendo do contexto e dos métodos utilizados. Vejam as
diferenças:
Coleta Primária de Dados em uma Empresa
A coleta primária de dados envolve a obtenção de informações
diretamente da fonte original por meio de métodos específicos de pesquisa,
observação ou interação direta com os funcionários, clientes, processos
internos ou outros elementos da empresa.
Exemplos de coleta primária de dados em uma empresa podem
incluir entrevistas com funcionários, pesquisas de satisfação do cliente
realizadas pela empresa, observações diretas de processos de produção ou
vendas, testes de produtos em desenvolvimento, entre outros.
Esse tipo de coleta de dados é geralmente personalizado para
atender às necessidades específicas da empresa e é frequentemente usado
para obter informações específicas para tomada de decisões internas.
Coleta Secundária de Dados em uma Empresa
A coleta secundária de dados envolve a obtenção de informações a
partir de fontes já existentes, que podem incluir dados internos ou externos
à empresa.
89
Exemplos de coleta secundária de dados em uma empresa podem
incluir o uso de relatórios financeiros ou de vendas da própria empresa, a
análise de dados de mercado disponíveis publicamente, o uso de
informações de pesquisa de mercado já coletadas por terceiros, entre
outros.
A coleta secundária é muitas vezes usada para complementar
informações internas ou para contextualizar os dados internos com dados
externos.
Portanto, a coleta de dados em uma empresa pode incluir tanto a
coleta primária quanto a secundária, dependendo dos objetivos da pesquisa
ou análise, e dos recursos disponíveis. A escolha entre coleta primária e
secundária dependerá das necessidades específicas da empresa e das
fontes de dados relevantes para a pesquisa ou tomada de decisões. Em
muitos casos, uma combinação de ambas as abordagens pode ser utilizada
para obter uma visão completa e precisa.
Escolha das Ferramentas
A escolha das ferramentas para a coleta de dados depende do tipo
de dados que você está coletando, do contexto do projeto e das preferências
pessoais. Existem várias ferramentas disponíveis, desde soluções
específicas para pesquisas online até aplicativos móveis e programas de
coleta de dados em campo. Aqui estão algumas ferramentas indicadas para
diferentes cenários de coleta de dados:
Planilhas Eletrônicas (Excel, Google Sheets): são úteis para coletar
dados tabulares e organizá-los. Elas podem ser usadas para criar formulários
personalizados e registrar dados manualmente.
Google Forms: é uma ferramenta gratuita que permite criar
questionários online. É útil para pesquisas, feedback de clientes e coleta de
dados estruturados.
90
SurveyMonkey: é uma plataforma popular para criação de pesquisas
online. Oferece recursos avançados de criação de questionários e análise de
dados.
Redcap (Research Electronic Data Capture): é um sistema de coleta
de dados voltado para pesquisas clínicas e epidemiológicas. É
especialmente útil para projetos que requerem conformidade com
regulamentações rigorosas.
Qualtrics: é uma plataforma de pesquisa online que oferece uma
ampla gama de recursos para coleta e análise de dados, incluindo pesquisas
personalizáveis e análises avançadas.
Open Data Kit (ODK): é uma plataforma de código aberto para coleta
de dados em dispositivos móveis. É amplamente utilizado em pesquisas de
campo e coleta de dados offline.
Epi Info: é um software gratuito desenvolvido pelos centros de
Controle e Prevenção de Doenças (CDC) dos EUA, voltado para a coleta e
análise de dados em saúde pública.
Mobile Data Collection Apps (e.g., Fulcrum, SurveyCTO): existem
várias ferramentas de coleta de dados móveis, como Fulcrum e SurveyCTO,
que permitem criar formulários personalizados e coletar dados em
dispositivos móveis.
Ferramentas de Anotação de Dados (e.g., Evernote, OneNote): para
coleta de dados qualitativos ou anotações, aplicativos como Evernote e
Microsoft OneNote podem ser úteis para registrar observações e
informações em texto, áudio ou imagem.
APIs e Integrações: em alguns casos, você pode usar APIs paraautomatizar a coleta de dados de fontes externas, como redes sociais,
sensores ou sistemas de informação.
91
Programação Personalizada: em projetos mais complexos, pode ser
necessário desenvolver um sistema personalizado de coleta de dados
usando linguagens de programação como Python, R ou JavaScript.
A escolha da ferramenta depende dos requisitos específicos do seu
projeto, incluindo o tipo de dados que você está coletando, o público-alvo, a
escalabilidade necessária e os recursos de análise de dados que você planeja
utilizar. É importante considerar fatores como facilidade de uso, custo e
suporte técnico ao selecionar a ferramenta mais adequada para a sua
situação.
Coleta x Ingestão de Dados
A coleta de dados é o processo de coletar dados brutos de várias
fontes e compilá-los em um local central para análise. Normalmente é a
primeira etapa no processo de análise de dados.
Principais diferenças:
A coleta de dados envolve a coleta de dados brutos de várias fontes,
enquanto a ingestão de dados envolve o processamento e a preparação de
dados para análise. É tipicamente um processo único, enquanto a ingestão
de dados pode ser um processo contínuo.
A coleta de dados pode envolver a entrada manual de dados,
enquanto a ingestão de dados é tipicamente um processo automatizado.
Pode ser um processo demorado e que consome muitos recursos, enquanto
a ingestão de dados pode ser mais rápida e eficiente.
A coleta de dados geralmente é feita de forma descentralizada,
enquanto a ingestão de dados é tipicamente centralizada.
Boas Práticas na Coleta de Dados
A coleta de dados é um estágio crítico no processo de análise e
pesquisa, pois a qualidade dos dados coletados afeta diretamente a validade
92
e a confiabilidade das conclusões e decisões posteriores. Portanto, é
importante planejar, executar e documentar o processo de coleta de dados
de forma cuidadosa e ética.
Fonte de Dados: refere-se ao local ou à origem de onde os dados são
obtidos. As fontes de dados podem incluir bancos de dados, pesquisas de
campo, sensores, registros de transações, fontes públicas na web, redes
sociais, entre outros.
Métodos de Coleta de Dados
Existem várias maneiras de coletar dados, incluindo:
• Coleta Primária: os dados são obtidos diretamente da fonte
original, por meio de pesquisas, observações, entrevistas,
experimentos etc.
• Coleta Secundária: os dados são obtidos de fontes existentes,
como literatura, bancos de dados, relatórios de empresas ou
dados disponíveis publicamente.
Amostragem: quando é inviável ou impraticável coletar dados de
toda a população, é comum usar amostragem. Isso envolve a seleção de uma
parte representativa da população para análise. Os métodos de amostragem
incluem amostragem aleatória simples, estratificada, por conglomerados,
entre outros.
Protocolos de Coleta de Dados: são procedimentos e diretrizes
definidos para garantir que a coleta de dados seja consistente, confiável e
precisa. Isso inclui a padronização de questionários, métodos de registro e
treinamento de pesquisadores.
Instrumentos de Coleta de Dados: são as ferramentas ou
questionários usados para coletar informações. Esses instrumentos são
93
projetados com cuidado para garantir que as perguntas sejam claras e
relevantes para os objetivos da coleta de dados.
Validação de Dados: é o processo de verificação da qualidade e
integridade dos dados coletados. Isso envolve a detecção e correção de
erros, a identificação de outliers e a garantia de que os dados estejam
completos e consistentes.
Ética na Coleta de Dados: é fundamental respeitar a privacidade e os
direitos das pessoas envolvidas na coleta de dados. Isso inclui obter
consentimento quando necessário e garantir que os dados sejam usados de
maneira ética e de acordo com regulamentações e leis aplicáveis.
Gerenciamento de Dados: envolve a organização, armazenamento e
documentação adequados dos dados coletados para garantir sua
acessibilidade e rastreabilidade ao longo do tempo.
Segurança de Dados: a proteção dos dados coletados contra acesso
não autorizado ou perda é crucial. Medidas de segurança, como criptografia
e controle de acesso, são implementadas para proteger a integridade e a
confidencialidade dos dados.
Documentação e Metadados: a documentação detalhada sobre a
coleta de dados, incluindo metadados que descrevem a estrutura e o
significado dos dados, é fundamental para garantir a compreensão e o uso
adequado dos dados.
Validação de Dados: implemente procedimentos de validação para
verificar a qualidade e a precisão dos dados coletados. Isso inclui a detecção
de erros e outliers.
Anonimização e Privacidade: proteja a privacidade dos participantes,
especialmente quando se trata de dados pessoais. Anonimize os dados, se
possível, e siga regulamentações de privacidade.
94
Segurança de Dados: mantenha a segurança dos dados coletados,
garantindo que apenas pessoas autorizadas tenham acesso a eles. Isso
pode incluir medidas como criptografia e armazenamento seguro.
Documentação Adequada: mantenha registros detalhados de todo o
processo de coleta, incluindo datas, locais, procedimentos e quaisquer
desafios ou problemas encontrados.
Metadados: documente metadados que descrevam a estrutura e o
significado dos dados, facilitando a interpretação e o uso futuro.
Consistência Temporal: mantenha a consistência temporal na coleta
de dados, garantindo que os dados sejam coletados em momentos
relevantes e consistentes ao longo do tempo.
Backup de Dados: faça cópias de segurança regulares dos dados
coletados para evitar perda acidental.
Comunicação Transparente: comunique-se de forma transparente
sobre o progresso da coleta de dados e qualquer problema que possa surgir
com as partes interessadas.
Ética: garanta que a coleta de dados seja realizada de maneira ética
e em conformidade com as leis e regulamentações aplicáveis.
Revisão Ética: se necessário, submeta o projeto de coleta de dados a
uma revisão ética por um comitê de ética, especialmente em pesquisas
envolvendo seres humanos.
Reavaliação Regular: avalie periodicamente o processo de coleta de
dados para garantir que ele continue alinhado com os objetivos e
necessidades do projeto.
Para garantir que os dados sejam coletados de maneira eficaz,
confiável e ética, é importante seguir boas práticas:
95
1. Defina Objetivos Claros: tenha uma compreensão clara dos
objetivos da coleta de dados e do que você deseja alcançar. Isso
orientará o processo de coleta.
2. Planejamento Adequado: planeje detalhadamente a coleta de
dados, incluindo a seleção de métodos, amostragem, protocolos
de coleta e cronograma.
3. Obtenha Consentimento e Autorização: se a coleta de dados
envolver pessoas, obtenha o consentimento informado e
autorização quando necessário. Explique claramente o propósito
da coleta e como os dados serão usados.
4. Padronização: Utilize instrumentos de coleta de dados
padronizados, como questionários e formulários, para garantir
que as informações sejam consistentes e comparáveis.
5. Treinamento: certifique-se de que as pessoas envolvidas na
coleta de dados estejam devidamente treinadas para entender os
procedimentos, registrar dados corretamente e seguir
protocolos.
6. Piloto: realize um piloto da coleta de dados em uma pequena
escala antes de coletar os dados completos para identificar
possíveis problemas e fazer ajustes.
Dados Anonimizados
É o dado relativo ao titular que não possa ser identificado,
considerando a utilização de meios técnicos razoáveis e disponíveis na
ocasião de seu tratamento.
96
Dados Identificáveis e Pseudonimizados
Os dados identificáveis são aqueles que, sozinhos, não conseguem
identificar o titular, mas somados a outras informações torna a ação
possível.
Isso significa dizer que a soma de dadosidentificáveis, como o
número do seu cartão de crédito (que você adicionou em uma loja on-line),
seu CPF (usado, às vezes, em notas fiscais), o nome da empresa para a qual
você trabalha (que você adicionou na hora de um cadastro), entre outros, se
juntos, podem identificar você. Assim sendo, com a nova lei, também estão
sob sua proteção.
Por sua vez, segundo o descrito em lei, a pseudonimização é “o
tratamento por meio do qual um dado perde a possibilidade de associação,
direta ou indireta, a um indivíduo, senão pelo uso de informação adicional
mantida separadamente pelo controlador em ambiente controlado e
seguro”.
Tanto a anonimização quanto a pseudonimização são técnicas de
mascaramento de dados, no entanto, a diferença é que um pode ter seu
processo de reversão possível, oferecendo ao controlador informações
adicionais na hora do tratamento de dados.
4
98
Capítulo 4. Ingestão de Dados
A ingestão de dados é o processo de coletar, importar ou receber
dados de diversas fontes e convertê-los em um formato que possa ser
armazenado e processado em sistemas de gerenciamento de dados. Esse
processo é fundamental em muitas organizações, especialmente aquelas
que lidam com grandes volumes de informações de diferentes fontes, como
dados de clientes, registros de transações, sensores, mídia social, entre
outros.
A ingestão de dados é um dos primeiros passos na análise de dados
e na tomada de decisões baseada em dados. A ingestão de dados é o
processo de obtenção e importação de dados para uso imediato ou
armazenamento em um banco de dados. Ingerir algo é como absorver algo.
A ingestão de dados é um termo amplo que se refere às muitas
maneiras pelas quais os dados são originados e manipulados para uso ou
armazenamento. É o processo de coletar dados de uma variedade de fontes
e prepará-los para uma aplicação que exija que eles estejam em um
determinado formato ou de um certo nível de qualidade. Na ingestão de
dados, as fontes de dados normalmente não estão associadas ao destino.
Coleta ou Ingestão de Dados
Ingestão e coleta não são a mesma coisa, embora estejam
relacionadas no contexto da gestão de dados. Esses termos têm significados
ligeiramente diferentes:
Coleta de Dados (Data Collection): a coleta de dados refere-se ao
processo de obtenção de informações de fontes específicas, sejam elas
fontes primárias (dados obtidos diretamente de fontes originais, como
pesquisas ou observações) ou fontes secundárias (dados já existentes em
99
bancos de dados, documentos, relatórios etc.). A coleta de dados envolve a
obtenção inicial das informações.
Ingestão de Dados (Data Ingestion): a ingestão de dados é uma
etapa subsequente à coleta, mas pode envolver a coleta. Refere-se ao
processo de transferência e preparação dos dados coletados para serem
armazenados ou processados em um sistema de gerenciamento de dados
ou em um repositório de dados. Isso envolve a transformação dos dados
brutos em um formato adequado para análise, armazenamento ou
processamento posterior.
Ou seja, a coleta de dados está relacionada à obtenção inicial das
informações, enquanto a ingestão de dados envolve o processo de
preparação, limpeza, transformação e carga dos dados em um sistema ou
banco de dados para posterior análise ou uso. Ambos os processos são vitais
no gerenciamento de dados e na análise de dados, pois garantem que as
informações coletadas sejam utilizáveis e significativas.
Ingestão de Dados
A ingestão de dados é o processo de pegar dados de várias fontes e
prepará-los para análise. Isso pode envolver transformar os dados, limpá-los
e estruturá-los para que possam ser facilmente analisados.
A ingestão de dados envolve o processamento e a preparação dos
dados para análise, enquanto a coleta de dados envolve a coleta de dados
brutos.
A ingestão de dados é tipicamente um processo contínuo, enquanto
a coleta de dados é tipicamente um processo único.
A ingestão de dados é tipicamente automatizada, enquanto a coleta
de dados pode envolver a entrada manual de dados.
100
A ingestão de dados é tipicamente mais rápida e eficiente do que a
coleta de dados.
A ingestão de dados é tipicamente centralizada, enquanto a coleta
de dados pode ser feita de forma descentralizada.
Ingestão de Dados X ETL
A ingestão de dados e o ETL são dois processos muito diferentes. A
ingestão de dados está importando dados para um banco de dados ou outro
mecanismo de armazenamento, enquanto o ETL está extraindo,
transformando e carregando.
A diferença entre os dois pode ser confusa devido aos seus nomes
semelhantes e ao fato de que muitas vezes coincidem.
A principal diferença entre ingestão de dados e ETL é o que cada um
faz por você. A ingestão de dados é um processo que envolve a cópia de
dados de uma fonte externa (como um banco de dados) para outro local de
armazenamento (como um banco de dados). Nesse caso, normalmente é
feito sem alterações nos dados.
Por exemplo, se você tiver um bucket do Amazon S3 contendo
alguns arquivos que precisam ser importados para o banco de dados, a
ingestão de dados será necessária para mover esses arquivos para o local do
banco de dados.
ETL significa Extract - Transform – Load: é um processo que envolve
pegar dados de um sistema e transformá-los para que possam ser
carregados em outro sistema para uso lá. Nesse caso, em vez de apenas
copiar dados de um local para outro sem fazer alterações.
Ingestão de Dados X Integração de Dados
A ingestão e a integração de dados descrevem a movimentação de
dados de um sistema para outro. A ingestão de dados é o processo de colocar
101
dados em um banco de dados, enquanto a integração de dados é extrair
esses mesmos dados de um banco de dados e colocá-los de volta em outro
sistema.
A integração de dados geralmente é necessária quando você deseja
usar o produto de uma empresa com o produto de outra empresa ou se
deseja combinar seus processos de negócios internos com os de uma
organização externa.
A diferença entre os dois termos decorre de suas definições:
1) Ingestão de dados – O ato ou processo de introduzir dados em um
banco de dados ou outro repositório de armazenamento. Geralmente, isso
envolve o uso de uma ferramenta ETL para mover informações de um
sistema de origem (como o Salesforce) para outro repositório, como SQL
Server ou Oracle.
2) Integração de dados – O processo de combinar vários conjuntos
de dados em um conjunto de dados ou modelo de dados que pode ser usado
por aplicativos, particularmente aqueles de diferentes fornecedores, como
Salesforce e Microsoft Dynamics CRM.
Tipos de Ingestão de Dados
A ingestão de dados é coletar e preparar dados de várias fontes em
um Data Warehouse. Envolve coletar, limpar, transformar e integrar dados
de fontes diferentes em um único sistema de análise.
Existem dois tipos principais de ingestão de dados:
• Real-time ou Streaming de dados: a ingestão em tempo real
envolve o streaming de dados para um Data Lake ou Data
Warehouse em tempo real, muitas vezes usando sistemas
baseados em nuvem que podem ingerir os dados
102
rapidamente, armazená-los na nuvem e, em seguida, liberá-
los para os usuários quase imediatamente.
• Batch ou lote: a ingestão em lote envolve a coleta de grandes
quantidades de dados brutos de várias fontes em um só lugar
e, em seguida, processá-los mais tarde. Esse tipo de ingestão
é usado quando você precisa solicitar uma grande quantidade
de informações antes de processá-las de uma só vez.
103
Figura 14 –Tipos de Ingestão de Dados.
Fonte: https://firsteigen.com/blog/10-data-ingestion-tools-to-fortify-your-
data-strategy/.
CDC – Change Data Capture
CDC (Change Data Capture) é uma técnica que permite rastrear e
capturar as mudanças nos dados de um sistema de origem e replicá-las em
temporeal ou em lotes para um sistema de destino. Isso é útil para manter
os dados sincronizados entre sistemas, especialmente em cenários em que
a consistência e a atualização em tempo real são importantes. Veja as
diferenças entre CDC em streaming e CDC em lote.
A implementação do Change Data Capture (CDC) pode variar
dependendo do sistema de origem e destino que você está usando. No
entanto, aqui estão os passos gerais que você pode seguir para configurar o
CDC em um sistema típico:
Passo 1: Avaliação dos Requisitos
• Antes de começar, é importante entender os requisitos
específicos do seu cenário, como:
– Identificar o sistema de origem de onde você deseja capturar
as mudanças nos dados.
– Determinar o sistema de destino para onde você deseja
replicar as mudanças.
https://firsteigen.com/blog/10-data-ingestion-tools-to-fortify-your-data-strategy/
https://firsteigen.com/blog/10-data-ingestion-tools-to-fortify-your-data-strategy/
104
– Definir a frequência com que deseja capturar as mudanças
(tempo real ou em lote).
– Especificar quais tabelas ou fontes de dados você deseja
rastrear.
– Decidir se você precisa realizar transformações nos dados
antes de replicá-los.
Passo 2: Seleção de Ferramentas e Tecnologias
• Escolha as ferramentas e tecnologias apropriadas para
implementar o CDC com base nos requisitos do seu projeto.
Alguns sistemas de banco de dados e plataformas de
integração oferecem recursos nativos de CDC, enquanto
outros podem exigir ferramentas adicionais de terceiros.
Exemplos de tecnologias de CDC incluem:
– Apache Kafka: uma plataforma de streaming de alto
desempenho que é frequentemente usada para implementar
CDC em streaming.
– Change Data Capture em Bancos de Dados: muitos sistemas
de gerenciamento de bancos de dados, como Oracle, SQL
Server e PostgreSQL, oferecem recursos nativos de CDC.
– Ferramentas de ETL: muitas ferramentas de ETL (Extração,
Transformação e Carga), como Talend, Informatica e Apache
NiFi, incluem recursos de CDC.
Passo 3: Configuração do CDC
Configurar o CDC no sistema de origem, seguindo as orientações
específicas da tecnologia ou ferramenta que você escolheu. Isso pode
envolver a criação de logs de transações, a ativação de recursos de
105
rastreamento de mudanças e a configuração de pontos de extremidade de
destino para enviar as mudanças capturadas.
Passo 4: Processamento das Mudanças
Dependendo da tecnologia ou ferramenta que você está usando,
você pode precisar criar scripts ou processos para processar as mudanças
capturadas e transformá-las, se necessário, antes de enviá-las para o
sistema de destino.
Passo 5: Replicação para o Sistema de Destino
Configure o sistema de destino para receber as mudanças replicadas
do sistema de origem. Isso pode envolver a configuração de conexões de
rede, pontos de extremidade de destino e garantir que o sistema de destino
esteja pronto para processar as mudanças recebidas.
Passo 6: Monitoramento e Manutenção
Implemente monitoramento e manutenção contínua para garantir
que o CDC esteja funcionando conforme o esperado. Isso inclui o
acompanhamento de métricas de desempenho, detecção e tratamento de
erros e atualizações regulares conforme necessário.
Os detalhes específicos da implementação do CDC podem variar
significativamente com base nas tecnologias e sistemas específicos que
você está usando. Portanto, é importante consultar a documentação
relevante da tecnologia e, se possível, contar com o suporte de especialistas
em CDC ou integração de dados para garantir uma implementação bem-
sucedida.
Ferramentas de Ingestão de Dados – Streaming
A ingestão de dados em streaming é um processo de coleta e
processamento contínuo de dados à medida que são gerados, permitindo
que as organizações recebam e analisem informações em tempo real.
106
Esse tipo de ingestão é crucial em cenários onde a velocidade de
processamento e análise dos dados é fundamental, como em aplicações de
análise de tempo real, detecção de fraudes, monitoramento de sistemas e
redes, entre outros.
A ingestão de dados em streaming é fundamental em cenários onde
a tomada de decisões imediatas com base em dados em tempo real é
necessária. Essa abordagem é amplamente adotada em setores como
finanças, telecomunicações, Internet das Coisas (IoT), mídia social, entre
outros, onde a velocidade e a precisão dos dados são críticas.
As fontes de dados em streaming podem incluir feeds de sensores,
dispositivos IoT (Internet das Coisas), logs de servidores, redes sociais,
transações financeiras em tempo real e muito mais. Os dados são gerados e
transmitidos continuamente.
A principal característica da ingestão de dados em streaming é o
processamento em tempo real ou quase em tempo real. Isso significa que
os dados são consumidos e processados assim que são disponibilizados,
geralmente em milissegundos ou segundos.
Existem várias ferramentas e tecnologias desenvolvidas para
facilitar a ingestão de dados em streaming. Exemplos incluem Apache Kafka,
Apache Flink, Apache Storm, Apache Beam, AWS Kinesis, Google Cloud
Dataflow e Microsoft Azure Stream Analytics.
Além de simplesmente coletar dados em streaming, muitas vezes é
necessário realizar transformações e análises em tempo real. Isso pode
incluir agregações, filtragens, enriquecimento de dados e detecção de
padrões.
Uma das vantagens da ingestão de dados em streaming é a
capacidade de escalar horizontalmente para lidar com volumes crescentes
107
de dados em tempo real. Isso é especialmente importante para empresas
que têm picos de atividade.
Os sistemas de ingestão de dados em streaming devem ser
projetados para serem tolerantes a falhas, garantindo que os dados não
sejam perdidos mesmo em situações de falha de hardware ou software.
Embora a ingestão de dados em streaming seja focada em
processamento em tempo real, muitas vezes os dados também são
armazenados para análises posteriores. Isso pode ser feito em Data Lakes,
Data Warehouses ou outros sistemas de armazenamento de dados.
108
Benefícios da Ingestão de Dados
Em Big Data, a ingestão de dados é uma parte crítica. É o processo
pelo qual você obtém seus dados em seu cluster Hadoop e pode ser um
processo complicado e desafiador.
Mas há muitos benefícios a serem obtidos com a ingestão de seus
dados, incluindo:
• Precisão: você poderá garantir que todas as informações com
as quais está trabalhando sejam precisas e confiáveis.
• Flexibilidade: depois de ingerir os dados, será mais fácil
acessar, manipular e analisar do que se você estivesse apenas
usando-os em forma bruta.
• Velocidade: se você estiver usando o Hadoop para fins de
análise ou aprendizado de máquina, ter todos os seus dados
em um só lugar acelerará significativamente os tempos de
processamento.
Boas Práticas na Ingestão de Dados
Validação de Dados: implemente procedimentos de validação para
verificar a qualidade e a precisão dos dados coletados. Isso inclui a detecção
de erros e outliers.
Anonimização e Privacidade: proteja a privacidade dos participantes,
especialmente quando se trata de dados pessoais. Anonimize os dados, se
possível, e siga regulamentações de privacidade.
Segurança de Dados: mantenha a segurança dos dados coletados,
garantindo que apenas pessoas autorizadas tenham acesso a eles. Isso
pode incluir medidas como criptografia e armazenamento seguro.
109
Documentação Adequada: mantenha registros detalhados de todo o
processo de coleta, incluindo datas, locais, procedimentos e quaisquer
desafios ou problemas encontrados.
Metadados: documente metadados que descrevam a estrutura e o
significado dos dados, facilitando a interpretação e o uso futuro.
Consistência Temporal: mantenha a consistência temporal na coleta
de dados, garantindo que os dados sejam coletados em momentosrelevantes e consistentes ao longo do tempo.
Backup de Dados: faça cópias de segurança regulares dos dados
coletados para evitar perda acidental.
Comunicação Transparente: comunique-se de forma transparente
sobre o progresso da coleta de dados e qualquer problema que possa surgir
com as partes interessadas.
Ética: garanta que a coleta de dados seja realizada de maneira ética
e em conformidade com as leis e regulamentações aplicáveis.
Revisão Ética: se necessário, submeta o projeto de coleta de dados a
uma revisão ética por um comitê de ética, especialmente em pesquisas
envolvendo seres humanos.
Reavaliação Regular: avalie periodicamente o processo de coleta de
dados para garantir que ele continue alinhado com os objetivos e
necessidades do projeto.
Práticas Recomendadas
Um pipeline de dados bem projetado e implementado pode levar
tempo e esforço. É preciso mais para coletar dados. Você precisa garantir
que está coletando de uma maneira que facilite o uso para sua equipe mais
tarde. Aqui estão algumas práticas recomendadas para coletar dados:
110
Colete apenas os dados necessários em cada etapa do processo.
Isso economizará tempo e dinheiro, porque você não terá que reprocessar
nada mais tarde.
Certifique-se de que cada parte de dados coletados tenha um
carimbo de data/hora ou identificador exclusivo associado para que possa
ser correspondido com outras partes das informações posteriormente em
seu processo de análise. Isso também ajudará a garantir a precisão em seus
resultados finais.
Crie um formato bem estruturado para cada informação para que
qualquer pessoa que precise de acesso possa encontrar facilmente o que
está procurando mais tarde.
5
112
Capítulo 5. Extração de Dados
Extração de Dados x Ingestão de Dados
A extração de dados e a ingestão de dados são dois processos
fundamentais no campo da gestão de dados e análise de dados, e cada um
desempenha um papel importante em diferentes fases do ciclo de vida dos
dados.
A extração de dados refere-se ao processo de coletar dados de
diversas fontes, que podem ser estruturadas ou não estruturadas. Isso
envolve a obtenção de informações de sistemas de banco de dados,
arquivos, aplicativos, websites, sensores, redes sociais e muito mais.
Os dados extraídos podem ser brutos ou pré-processados,
dependendo das necessidades. É comum que a extração de dados envolva a
transformação inicial para limpar, formatar ou estruturar os dados de acordo
com os requisitos de análise.
Ferramentas de ETL (Extração, Transformação e Carregamento) são
frequentemente usadas para automatizar e facilitar o processo de extração
de dados.
A ingestão de dados é o processo de receber, validar e carregar os
dados extraídos em um sistema de armazenamento de dados, como um Data
Warehouse, Data Lake ou outra plataforma de análise.
Durante a ingestão de dados, os dados podem passar por várias
etapas de validação e transformação antes de serem armazenados. Isso
garante a qualidade e a consistência dos dados que serão usados para
análise posterior.
113
A ingestão de dados pode ser realizada em lote (batch) ou em tempo
real (streaming), dependendo da necessidade e da natureza dos dados.
A Ingestão de dados não é necessariamente uma transformação de
dados, mas sim o processo de recebimento e armazenamento de dados em
um sistema de armazenamento centralizado. A ingestão de dados lida
principalmente com a transferência e acomodação de dados brutos ou
semiprocessados em um local onde eles possam ser posteriormente
processados, analisados ou consultados.
A transformação de dados geralmente ocorre após a ingestão, como
parte do processo de preparação de dados para análise, e durante a mesma
podem ocorrer várias operações, como limpeza, normalização, agregação,
enriquecimento e estruturação dos dados para torná-los mais adequados
para análise ou relatórios.
Ingestão de dados é especialmente útil quando se trabalha com
grandes volumes de dados, dados de streaming em tempo real ou quando é
necessário armazenar dados para análises futuras. Portanto, a escolha entre
extração e ingestão de dados depende mais de onde os dados estão
localizados inicialmente e para onde você deseja movê-los.
Independentemente da estrutura dos dados, ambas as abordagens podem
ser aplicadas conforme necessário para atender aos objetivos de gestão e
análise de dados.
ETL
Na fase de integração dos dados executamos o ETL. Essa sigla
significa Extract, Transform and Load, ou seja, Extração, Transformação e
Carga.
Comumente utilizado para construir um Data Warehouse, nesse
processo os dados são retirados (extraídos) de um ou mais sistemas-fonte
114
ou origens, convertidos (transformados) em um formato que possa ser
analisado, e armazenados (carregados) em um armazém ou outro sistema.
Conforme Ralph Kimball, “Um sistema ETL projetado
adequadamente extrai dados dos sistemas de origem, aplica padrões de
qualidade e consistência de dados, alinha os dados para que fontes
separadas possam ser usadas em conjunto e, finalmente, entrega dados em
um formato pronto para apresentação, para que os desenvolvedores possam
criar aplicativos e os usuários finais possam tomar decisões”. A extração e
carga são obrigatórias para o processo, sendo a transformação/limpeza
opcional, mas que são boas práticas, tendo em vista que os dados já foram
encaminhados para o sistema de destino. É considerada uma das fases mais
críticas do Data Warehouse e/ou Data Mart.
Os projetos de Data Warehouse consolidam dados de diferentes
fontes. A maioria dessas fontes tende a ser bancos de dados relacionais ou
arquivo de texto (texto plano), mas podem existir outras fontes. Uma
aplicação ETL tem que ser capaz de se comunicar com as bases de dados e
ler diversos formatos de arquivos utilizados por toda a organização. Essa
pode ser uma tarefa não trivial, e muitas fontes de dados podem não ser
acessadas com facilidade.
Extração
A extração é a primeira etapa de um processo de ETL, sendo a coleta
de dados dos sistemas de origem (Data Sources ou sistemas operacionais)
extraindo-os e transferindo-os para o ambiente de DW, onde o sistema ETL
pode operar independente dos sistemas de origem. Um processo ETL precisa
ser capaz de se comunicar com bases de dados, visto que os projetos de Data
Warehouse consolidam dados de diferentes fontes, e ler diversos formatos
de arquivos utilizados por toda a organização.
O primeiro passo é definir as fontes de extração e os dados podem
vir das mais diversas fontes, por exemplo: Sistemas de gestão (SIG, ERP,
115
CRM etc.), SGBD's (Oracle, SQLSERVER, DB2 etc.), arquivos como planilhas
do Excel e documentos de texto.
A etapa de extração é a fase onde os dados são extraídos dos OLTPs
(Online Transaction Processing) e conduzidos para a staging area (área
temporária), onde são convertidos para um único formato. A conversão se
faz necessária devido a heterogeneidade existente nas informações
oriundas desses sistemas, sendo essencial a conformação prévia para o
tratamento adequado.
116
Figura 15 – Etapa de Extração de Dados
Fonte: https://canaltech.com.br/.
A coleta de dados é a primeira etapa em um pipeline de dados.
Envolve a obtenção de informações de diferentes fontes, sejam elas fontes
internas ou externas à organização. A coleta pode ser realizada de várias
maneiras, dependendo das fontes de dados, e pode incluir a utilização de
pesquisas, formulários, sensores, aplicativos, APIs, logs, entre outros.
Esta etapa é focada na obtenção inicial de dados a partir de suas
fontes originais. Os dados coletados podem ser não estruturados,
semiestruturados ou estruturados, e frequentemente estão em formatos
diferentes.
A extração de dados é a etapa subsequente à coleta de dados. Ela se
concentra na identificação, recuperaçãoe movimentação dos dados brutos
das fontes coletadas para um local centralizado, geralmente chamado de
repositório de dados. Essa etapa é importante para tornar os dados
disponíveis e prontos para análise e uso futuro.
A extração envolve, muitas vezes, processos técnicos, como
consultas a bancos de dados, uso de APIs para obter informações de
sistemas externos, raspagem da web para coletar dados de sites,
transformação de dados, conversão de formatos e muito mais.
https://canaltech.com.br/
117
Durante a extração, os dados podem ser limpos, formatados e
preparados para corresponder ao esquema de armazenamento ou à
estrutura desejada no repositório de dados.
A coleta de dados está relacionada à obtenção inicial das
informações de várias fontes, enquanto a extração de dados se concentra
em movimentar e preparar esses dados para o armazenamento e análise
posteriores. Ambas as etapas são essenciais em um pipeline de dados para
garantir que as informações coletadas estejam prontas e disponíveis para
serem utilizadas de forma eficaz em análises, relatórios ou outras atividades
de processamento de dados.
Conceitos-chave
A extração de dados é um processo no qual informações são
identificadas, recuperadas e movimentadas de fontes originais para um local
centralizado ou repositório, onde podem ser processadas, armazenadas e
analisadas. Aqui estão alguns conceitos-chave relacionados à extração de
dados:
– Fontes de Dados: são os locais ou sistemas de onde os dados
são obtidos. Isso pode incluir bancos de dados, sistemas de
registro, aplicativos, arquivos, APIs, logs, fontes da web e
muito mais.
– Dados Brutos: são as informações não processadas ou não
transformadas que são extraídas das fontes originais. Esses
dados podem ser não estruturados, semiestruturados ou
estruturados, dependendo da fonte.
– Extração de Dados ETL: (Extração, Transformação e Carga) é
um processo que inclui a extração de dados (E), a
transformação de dados (T) para limpeza e preparação, e a
carga (L) dos dados em um repositório central.
118
– Consultas SQL: Em muitos casos, a extração de dados de
bancos de dados envolve o uso de consultas SQL (Structured
Query Language) para recuperar informações específicas de
tabelas ou bancos de dados.
– Transformação de Dados: é uma etapa comum durante a
extração, onde os dados brutos podem ser limpos,
formatados, agregados, enriquecidos ou transformados de
outras maneiras para se adequarem aos requisitos do
projeto.
– Movimentação de Dados: envolve transferir os dados
extraídos de suas fontes originais para um local centralizado,
como um Data Lake, Data Warehouse ou outro repositório de
dados.
– Agendamento e Automatização: a extração de dados pode
ser agendada e automatizada para ocorrer em intervalos
regulares, garantindo que os dados estejam sempre
atualizados no repositório.
– Segurança e Privacidade: a segurança dos dados é crítica
durante a extração para proteger informações sensíveis.
Isso pode incluir criptografia, autenticação, autorização e
outras medidas de segurança.
– Monitoramento e Registro: o monitoramento contínuo do
processo de extração é importante para identificar
problemas, falhas ou anomalias. É útil registrar informações
sobre a extração para fins de auditoria e solução de
problemas.
– Integração com o Fluxo de Dados: os dados extraídos são
frequentemente integrados ao fluxo de dados, onde podem
119
ser transformados, enriquecidos e direcionados para fins
específicos, como análise ou geração de relatórios.
– Tratamento de Falhas: é importante considerar como lidar
com possíveis falhas durante o processo de extração, como
indisponibilidade de fontes de dados ou problemas de
conectividade.
120
Crawling
Em toda a história, nunca produzimos e compartilhamos tanta
informação. Na era Big Data, a cada segundo circulam milhões de dados em
rede que, em sua maioria, encontram-se não estruturados, isto é, sem uma
lógica de organização. Por si só, dados isolados apresentam pouca ou
nenhuma relevância, para que possam adquirir significado, um dos
principais e mais complexos desafios está relacionado à pesquisa,
organização e análise de dados em escala. Nesse cenário, surgem os
crawlers, robôs automatizados para fazer uma varredura e são capazes de
agregar, classificar e entregar dados já estruturados. Principal recurso para
os motores de busca na internet, esse tipo de automação também pode ser
aplicado a estratégias de data analysis em empresas.
Figura 16 – Web Crawler x Web Scraping.
Fonte: http://prowebscraping.com/web-scraping-vs-web-crawling/.
Crawlers, também conhecidos como web crawlers, spiders, bots ou
rastreadores da web, são programas de software que são usados para
navegar pela World Wide Web de forma automatizada e sistemática. A
principal função de um crawler é coletar informações de páginas da web,
http://prowebscraping.com/web-scraping-vs-web-crawling/
121
indexá-las e, muitas vezes, armazená-las para fins de pesquisa, análise,
classificação ou indexação em motores de busca.
Os mecanismos utilizados por buscadores como o Google são o
principal exemplo prático de como funciona um crawler: o algoritmo, por
meio de bots, faz a busca em tempo real de links na internet e promove a
varredura completa das páginas, a fim de entregá-las nos resultados de
pesquisa aos usuários, desde que tenham relevância para o tema de
interesse na busca.
Trata-se de uma operação completa de data mining ou mineração de
dados, que funciona em tempo real, sem interrupções e numa escala de
volume de dados gigantesca, sendo impossível reproduzi-la manualmente.
Para além da otimização para motores de busca e funcionamento
desses buscadores, os crawlers têm aplicações que estão sendo cada vez
mais exploradas pela inteligência de mercado e automação de processos em
empresas. A partir de robôs personalizados para coletas de dados, é possível
encontrar qualquer tipo de dado e transformá-lo em informação estratégica.
Esse tipo de robô é capaz de extrair dados de sites que não possuem
APIs, ou Interface de programação de aplicações, que permitem a
comunicação entre a plataforma ou software e a fonte de dados.
Crawler – Características e Funções
Navegação Automatizada: os crawlers percorrem a web de forma
automatizada, seguindo links de uma página para outra, a fim de descobrir
e acessar novas páginas e conteúdo.
Coleta de Dados: eles extraem informações de páginas da web,
incluindo texto, imagens, links, metadados e outros elementos relevantes.
122
Indexação: os dados coletados são organizados e indexados para
que possam ser pesquisados e recuperados de forma eficiente
posteriormente.
Atualização Regular: muitos crawlers operam em intervalos
regulares para garantir que os dados coletados estejam atualizados. Isso é
particularmente importante em motores de busca.
Utilização em Motores de Busca: os crawlers são usados por motores
de busca, como Google, Bing e Yahoo, para rastrear e indexar a web,
permitindo que os usuários pesquisem informações online.
Monitoramento de Mudanças: os crawlers também podem ser
usados para monitorar mudanças em páginas da web ao longo do tempo,
como notícias, preços de produtos, ou atualizações em sites.
Verificação de Links Quebrados: alguns crawlers são usados para
verificar links quebrados ou páginas não encontradas em um site.
Recuperação de Informações Específicas: em algumas aplicações, os
crawlers podem ser configurados para coletar informações específicas de
interesse, como preços de produtos em sites de comércio eletrônico.
Respeito às Diretrizes do Robô: muitos sites têm um arquivo
chamado "robots.txt" que especifica quais partes do site podem ou não ser
rastreadas por crawlers. Os crawlers normalmente respeitam essas
diretrizes.
Ética e Privacidade:a coleta de dados por meio de crawlers levanta
questões éticas e de privacidade, especialmente quando os dados envolvem
informações pessoais ou sensíveis.
Crawlers desempenham um papel fundamental na indexação da web
e na disponibilização de informações online. Eles são usados em uma
variedade de contextos, desde motores de busca até análise de
123
concorrência, monitoramento de preços, pesquisa acadêmica e muito mais.
No entanto, é importante usá-los de maneira ética e respeitar as políticas e
diretrizes de rastreamento de sites para evitar problemas legais ou éticos.
Scrapping
Scraping (ou raspagem de dados) é o processo de coleta
automatizada de informações de uma página da web, seja ela um site, fórum,
rede social, loja online ou qualquer outro recurso online.
O objetivo do scraping é extrair dados específicos, como texto,
imagens, links, preços de produtos, avaliações de clientes e outros tipos de
informações, de forma sistemática e automatizada.
Figura 17 – Web Scraping.
Propósito do Scraping
Scraping geralmente é usado para os seguintes propósitos:
Coleta de Dados para Análise: empresas e pesquisadores
frequentemente usam scraping para coletar dados da web para fins de
análise de mercado, pesquisa de concorrência, estudos de opinião pública e
análises de tendências.
Monitoramento de Preços: lojas online e consumidores podem usar
scraping para monitorar preços de produtos em diversos sites e receber
alertas quando os preços mudarem.
124
Acompanhamento de Notícias: plataformas de notícias e blogs
podem usar scraping para coletar e exibir notícias e artigos de diferentes
fontes em um único lugar.
Coleta de Avaliações de Clientes: empresas podem usar scraping
para coletar avaliações e comentários de clientes de diferentes fontes para
análise de feedback.
Geração de Conteúdo: alguns sites usam scraping para coletar
informações e gerar automaticamente conteúdo para seus próprios sites.
Pesquisa Acadêmica: pesquisadores podem usar scraping para
coletar dados de pesquisa de várias fontes na web para estudos acadêmicos.
Comparação de Preços e Produtos: consumidores podem usar
scraping para comparar preços e características de produtos de diferentes
lojas online.
É importante observar que o scraping de dados da web pode ser uma
área legalmente complexa e sensível. Nem todos os sites permitem a coleta
de dados por meio de scraping, e alguns podem considerá-lo uma violação
dos seus termos de serviço. Além disso, leis de proteção de dados e
privacidade podem ser aplicadas à coleta e ao uso de dados pessoais.
Portanto, ao realizar scraping, é fundamental considerar as
implicações éticas e legais, respeitar as políticas dos sites de destino e,
quando necessário, obter permissão para coletar dados. Existem também
ferramentas e bibliotecas específicas de scraping, como Beautiful Soup e
Scrapy em Python, que facilitam a automação desse processo.
Web Scraping – Formas de se Fazer
Usando ferramentas para coletar dados, você pode extrair dados de
uma página da Web.
125
Existe uma ampla variedade de técnicas e ferramentas de raspagem
da Web. Estas podem ser tão simples quanto copiar/colar e aumentar a
complexidade das ferramentas de automação, análise de HTML, APIs e
programação.
126
Figura 18 – Web Scraping.
Web Scraping – HTTP
Informações de intercâmbio de máquinas transportadas pela
Internet para permitir a troca de dados multimídia, também conhecida como
WWW. O protocolo define aspectos de autenticação, solicitações, códigos
de status, conexões persistentes, solicitação/resposta cliente/servidor etc.
Acesse um servidor na porta 80, a Definição de Tipo de Documento
declarativa (HTML, XML, JSON etc.).
Web scraping via HTTP refere-se à prática de extrair informações de
páginas da web fazendo solicitações HTTP para os servidores web que
hospedam essas páginas. É uma técnica comum para coletar dados de sites
e serviços online.
Visão geral de como o web scraping via HTTP funciona
Solicitação HTTP: o processo começa com a construção de uma
solicitação HTTP para a URL da página da web da qual você deseja coletar
dados. A solicitação HTTP inclui informações como o método de solicitação
(geralmente GET), cabeçalhos e, opcionalmente, parâmetros ou dados de
formulário.
127
Envio da Solicitação: a solicitação HTTP é enviada para o servidor
web que hospeda a página da web desejada.
Resposta do Servidor: o servidor web processa a solicitação e envia
uma resposta HTTP de volta ao cliente (você). A resposta geralmente contém
o conteúdo HTML da página da web solicitada.
Análise do Conteúdo HTML: você pode usar bibliotecas ou
ferramentas de análise de HTML, como Beautiful Soup em Python, para
analisar o conteúdo HTML da página e extrair informações específicas, como
texto, links, imagens e muito mais.
Armazenamento ou Processamento: após a extração dos dados, você
pode armazená-los em um formato desejado, processá-los para análise ou
exibi-los em um aplicativo ou site.
Iteração ou Automação: para coletar informações de várias páginas
ou em intervalos regulares, você pode automatizar o processo repetindo as
etapas acima para diferentes URLs ou programando um script para realizar
o scraping em intervalos predefinidos.
Figura 19 – Web Scraping – HTTP.
WeB Scraping – Parsing
128
Em web scraping, o termo "parsing" refere-se ao processo de
analisar o conteúdo HTML ou XML de uma página da web para extrair
informações específicas e estruturá-las de forma que possam ser facilmente
manipuladas ou armazenadas. O parsing é uma etapa essencial no processo
de web scraping, pois permite que você identifique e isole os dados
relevantes dentro do código-fonte da página da web. Aqui estão os
principais aspectos do parsing no web scraping:
Análise do Código Fonte: quando você faz uma solicitação HTTP para
uma página da web e recebe uma resposta, essa resposta geralmente inclui
o conteúdo da página em HTML ou XML. O parsing envolve a análise desse
código-fonte para identificar os elementos que contêm os dados desejados.
Seletores e Consultas: para localizar e extrair informações
específicas, você pode usar seletores CSS, consultas XPath ou métodos de
busca oferecidos por bibliotecas de scraping, como Beautiful Soup (em
Python). Esses seletores permitem que você encontre elementos HTML que
correspondem a critérios específicos, como tags, classes, IDs, atributos,
entre outros.
Extração de Dados: após identificar os elementos relevantes, você
pode extrair dados deles. Isso pode incluir a extração de texto, valores de
atributos, URLs de links, informações de tabelas, entre outros. A extração de
dados é frequentemente realizada por meio de métodos fornecidos pelas
bibliotecas de scraping.
Limpeza e Formatação: após a extração, os dados podem passar por
um processo de limpeza e formatação. Isso envolve a remoção de caracteres
indesejados, a conversão de tipos de dados e outras manipulações para
garantir que os dados estejam prontos para uso.
129
Estruturação dos Dados: os dados extraídos são frequentemente
estruturados em uma forma organizada, como listas, dicionários ou tabelas,
para facilitar sua manipulação e análise posterior.
Iteração em Múltiplas Páginas: em cenários em que você deseja
coletar dados de várias páginas da web (por exemplo, em um site de várias
páginas), o parsing pode ser repetido em cada página, e os dados extraídos
são acumulados em um único conjunto de dados.
Tratamento de Erros: durante o parsing, é importante considerar
cenários de erro, como elementos ausentes ou estruturas inesperadas no
código-fonte. O tratamento adequado de erros é essencial para garantir que
o scraping seja robusto.
O parsing é uma parte fundamental do processo de web scraping,
pois permite que você transforme o conteúdonão estruturado de páginas
da web em dados estruturados e utilizáveis. Bibliotecas e ferramentas de
web scraping, como Beautiful Soup, lxml e Scrapy em Python, oferecem
recursos e funcionalidades poderosas para ajudar na análise e no parsing
eficazes de páginas da web.
Web Scraping – JSON
O web scraping por JSON refere-se ao processo de coleta de dados
estruturados diretamente de APIs (Application Programming Interfaces)
que retornam informações no formato JSON (JavaScript Object Notation).
Diferentemente do web scraping tradicional, que envolve a análise do
conteúdo HTML ou XML de páginas da web, o web scraping por JSON
envolve a extração de dados de endpoints de API que fornecem informações
em um formato estruturado e fácil de processar.
Figura 20 – Web Scraping – JSON.
130
Web Scraping – API
API significa Application Programming Interface ou Interface de
programação de aplicativos é um conjunto de regras e protocolos usados
para construir um aplicativo de software.
No contexto do Web Scraping, uma API é um método usado para
coletar dados limpos de um site (ou seja, dados que não são encapsulados
em HTML, Javascript, vinculados a HTTP etc.).
131
Figura 21 – Web Scraping – API.
Identificação da API: primeiro, você precisa identificar a API da qual
deseja coletar dados. Isso pode ser uma API pública ou privada fornecida
por um serviço online, aplicativo ou plataforma.
Solicitação HTTP: você faz solicitações HTTP para os endpoints da
API usando um cliente HTTP, como o módulo “requests” em Python. Essas
solicitações geralmente são feitas com métodos HTTP, como GET ou POST,
e podem incluir parâmetros ou cabeçalhos para personalizar a solicitação.
Processamento da Resposta JSON: quando a API responde, ela
geralmente retorna os dados em formato JSON. Você pode usar bibliotecas
de análise JSON, como o módulo "json" em Python, para analisar a resposta
e transformá-la em objetos ou estruturas de dados utilizáveis na linguagem
de programação de sua escolha.
Extração de Dados: com os dados JSON estruturados, você pode
extrair as informações específicas que deseja da resposta da API. Isso pode
envolver a navegação por objetos JSON, listas e campos para acessar os
dados relevantes.
Armazenamento ou Processamento: após a extração, os dados
podem ser armazenados em um banco de dados, arquivo ou processados
conforme necessários para análise, relatórios ou outras atividades.
132
Web Scraping – Ética
É importante observar que, ao realizar web scraping via HTTP, é
fundamental respeitar as políticas do site que está sendo acessado. Alguns
sites podem proibir ou limitar a coleta de dados por meio de scraping em
seus termos de serviço. Portanto, é aconselhável verificar as políticas de uso
de um site antes de realizar qualquer scraping.
Além disso, os servidores web podem detectar atividades de
scraping e podem implementar medidas de segurança, como firewalls,
bloqueio de IP ou CAPTCHAs para protegerem-se contra scraping não
autorizado. Portanto, ao realizar scraping, é importante fazê-lo de maneira
ética e legal, respeitando as políticas do site e evitando sobrecarregar os
servidores com solicitações excessivas.
A ética desempenha um papel crucial no web scraping, pois essa
prática envolve a coleta de dados de fontes online e o uso inadequado ou
não autorizado desses dados pode resultar em problemas éticos e legais.
Aqui estão alguns princípios éticos importantes a serem considerados ao
realizar web scraping:
• Respeitar os Termos de Serviço: antes de realizar web scraping em
um site, leia e compreenda os termos de serviço daquele site.
Alguns sites proíbem explicitamente a coleta automatizada de
dados em seus termos de serviço. Respeite essas políticas.
• Obter Permissão, se Necessário: se o site ou a fonte de dados exigir
permissão ou autenticação para acessar suas informações,
certifique-se de obtê-la de forma apropriada. Não acesse dados sem
permissão.
• Limites de Taxa e Velocidade: ao realizar web scraping, respeite os
limites de taxa (taxa de solicitação) definidos pelo site de destino.
133
Não sobrecarregue o servidor com solicitações excessivas em um
curto período de tempo.
• Evitar sobrecarga: não sobrecarregue intencionalmente o servidor
da web de destino com solicitações excessivas. O scraping
agressivo pode prejudicar o desempenho do site e é antiético.
• Não Manipular Dados: não manipule ou altere dados em um site de
forma maliciosa ou enganosa. Mantenha a integridade dos dados.
• Não Compartilhar Dados Sensíveis: se você coletar dados sensíveis
ou privados, não os compartilhe ou divulgue sem o devido
consentimento ou autorização legal.
• Dar Crédito e Atribuição: se você planeja usar os dados coletados
publicamente em uma capacidade que exija atribuição, forneça
crédito ao site de origem ou à fonte dos dados sempre que
apropriado.
• Monitoramento Ético: mantenha um monitoramento ético das
atividades de scraping para garantir que você não esteja infringindo
os princípios éticos ou as políticas do site de origem.
• Segurança de Dados: certifique-se de que os dados coletados sejam
tratados com segurança e protegidos contra acesso não autorizado.
• Propósito Legítimo: use os dados coletados para propósitos
legítimos e éticos, como pesquisa, análise, criação de valor ou
outros usos que não violem os direitos ou a privacidade dos
usuários.
134
6
136
Capítulo 6. Transformação de Dados
Conceitos de Transformação de Dados
Após a extração, teremos subsídios para iniciar a etapa de
transformação e limpeza dos dados. Nessa fase são corrigidos, padronizados
e tratados os desvios e inconsistências, transformando os dados de acordo
com as regras do negócio.
É nesta etapa que realizamos os devidos ajustes, podendo assim,
melhorar a qualidade dos dados e consolidar dados de duas ou mais fontes.
O estágio de transformação aplica uma série de regras ou funções aos dados
extraídos para ajustar os dados a serem carregados.
O processo de transformação de dados é composto por vários
subprocessos:
• Limpeza de Dados: é o processo de identificar e corrigir erros,
inconsistências e valores ausentes nos dados. Isso pode incluir a
remoção de duplicatas, correção de erros de digitação e
preenchimento de valores em falta.
• Normalização de Dados: envolve a padronização de dados para que
eles sigam um formato consistente. Isso pode incluir a conversão
de unidades de medida, datas e moedas para um padrão comum.
• Agregação de Dados: é o processo de resumir dados em níveis mais
altos de granularidade. Por exemplo, transformar dados diários em
dados mensais ou anuais.
• Filtragem de Dados: consiste em remover ou reter apenas os dados
que são relevantes para uma análise específica. Isso ajuda a reduzir
o volume de dados sem perder informações importantes.
137
• Concatenação de Dados: combina conjuntos de dados diferentes,
geralmente empilhando linhas ou mesclando colunas, para criar um
único conjunto de dados. Isso é útil quando você tem fontes de
dados separadas que precisam ser combinadas.
• Derivação de Dados: criação de novos dados com base nos dados
existentes por meio de cálculos ou transformações. Isso pode
incluir a criação de índices, categorias, métricas ou variáveis
derivadas.
• Mapeamento de Dados: envolve a correspondência de valores de
uma fonte de dados a valores equivalentes em outra fonte,
normalmente usando tabelas de mapeamento.
• Padronização de Dados: garante que os dados sigam as convenções
e os formatos especificados, o que é importante para facilitar a
integração e a interoperabilidade entre sistemas.
• Enriquecimento de Dados: adiciona informações adicionais aos
dados a partir de fontes externas para torná-los mais informativos.
Por exemplo,enriquecer dados de clientes com informações
demográficas de terceiros.
• Agregação de Dados Não Estruturados: transformação de dados
não estruturados, como texto ou imagens, em um formato
estruturado que pode ser analisado.
• Redução de Dimensionalidade: reduz o número de variáveis em um
conjunto de dados, mantendo as informações mais importantes.
Isso é comum em análises de machine learning.
• Remoção de Outliers: identifica e remove valores atípicos ou
discrepantes que podem distorcer análises estatísticas.
138
• Segmentação de Dados: divide um conjunto de dados em grupos ou
segmentos com base em critérios específicos, como segmentação
de clientes com base em comportamento de compra.
• Codificação de Dados Categóricos: transformação de variáveis
categóricas em um formato numérico que pode ser usado em
algoritmos de machine learning.
A transformação de dados desempenha um papel fundamental em
todos os aspectos do gerenciamento de dados, desde a preparação de dados
para análises até a integração de fontes de dados heterogêneas. É uma
etapa crítica para garantir que os dados estejam em um estado adequado
para uso em aplicativos, análises e tomada de decisões.
Entender Formato de Dados
No contexto da transformação de dados, entender o formato dos
dados significa compreender a estrutura, organização e representação dos
dados dentro de um conjunto de dados ou de um arquivo.
Isso envolve a análise dos tipos de dados, da disposição dos dados e
das características específicas que definem como os dados estão
armazenados.
Compreender o formato dos dados é fundamental para realizar com
sucesso operações de transformação de dados, como limpeza, agregação,
análise ou qualquer outra manipulação.
Tipos de Dados
Devemos identificar quais tipos de dados estão presentes no
conjunto de dados, como números inteiros, números de ponto flutuante,
datas, strings, entre outros.
Variáveis Qualitativas (ou categóricas): são as características que
não possuem valores quantitativos, mas, ao contrário, são definidas por
139
várias categorias, ou seja, representam uma classificação dos indivíduos.
Podem ser nominais ou ordinais.
Variáveis nominais: não existe ordenação dentre as categorias.
Exemplos: sexo, cor dos olhos, fumante/não fumante, doente/sadio.
Variáveis ordinais: existe uma ordenação entre as categorias.
Exemplos: escolaridade (1o, 2o, 3o graus), estágio da doença (inicial,
intermediário, terminal), mês de observação (janeiro, fevereiro,..., dezembro).
Variáveis Quantitativas: são as características que podem ser
medidas em uma escala quantitativa, ou seja, apresentam valores numéricos
que fazem sentido. Podem ser contínuas ou discretas.
• Variáveis discretas: características mensuráveis que podem
assumir apenas um número finito ou infinito contável de valores e,
assim, somente fazem sentido valores inteiros. Geralmente são o
resultado de contagens. Exemplos: número de filhos, número de
bactérias por litro de leite, número de cigarros fumados por dia.
• Variáveis contínuas: características mensuráveis que assumem
valores em uma escala contínua (na reta real), para as quais valores
fracionais fazem sentido. Usualmente devem ser medidas através
de algum instrumento. Exemplos: peso (balança), altura (régua),
tempo (relógio), pressão arterial e idade.
Figura 22 – Tipos de Variáveis.
140
Estrutura dos Dados
Compreender a estrutura dos dados, incluindo se eles estão
organizados em formato tabular (linhas e colunas), hierárquico (como XML
ou JSON), ou de outra forma.
Texto (Texto Simples ou CSV – Comma-Separated Values): os dados
são armazenados como texto simples em que cada linha representa um
registro e os campos são separados por vírgulas (ou outro delimitador). É um
formato amplamente usado para armazenar dados tabulares.
JSON (JavaScript Object Notation): é um formato leve de troca de
dados que usa uma estrutura de pares chave-valor. É amplamente utilizado
em aplicativos da web e APIs para transmitir dados entre um servidor e um
cliente.
XML (eXtensible Markup Language): é um formato de marcação que
organiza os dados em árvores hierárquicas usando tags. É frequentemente
usado para representar dados estruturados e é comum em documentos e
configurações.
Banco de Dados Relacional (SQL): os dados são armazenados em
tabelas com relações definidas. O SQL (Structured Query Language) é usado
para gerenciar e consultar esses bancos de dados.
141
Banco de Dados NoSQL: estes incluem diversos formatos, como
documentos (por exemplo, MongoDB), colunas (por exemplo, Cassandra),
grafos (por exemplo, Neo4j) e chave-valor (por exemplo, Redis). Eles são
usados para diferentes tipos de dados e casos de uso.
Arquivos Binários: são formatos de dados que armazenam
informações de forma binária, o que significa que não são facilmente legíveis
por humanos. Exemplos incluem formatos de imagem (JPEG, PNG),
formatos de áudio (MP3, WAV) e formatos de vídeo (MP4, AVI).
Parquet e Avro: são formatos de dados otimizados para análise de
Big Data. Eles são usados em ecossistemas como Hadoop e Spark para
armazenar e processar grandes volumes de dados.
HDF5 (Hierarchical Data Format 5): é um formato de dados utilizado
para armazenar grandes conjuntos de dados científicos e dados
multidimensionais. É comumente usado em ciência e engenharia.
ARFF (Attribute-Relation File Format): é um formato de dados usado
em aprendizado de máquina e mineração de dados. Ele descreve conjuntos
de dados em que os atributos e as classes são especificados.
Formato de Log: registra informações de eventos em sistemas e
aplicativos. Exemplos incluem logs de servidores da web (como formato
Apache) e logs de sistemas (como formato syslog).
Formato de Imagem Médica (DICOM): é usado para armazenar e
trocar informações médicas, como imagens de raios-X, tomografias e
ressonâncias magnéticas.
Formato de Geodados (Shapefile, GeoJSON): são formatos
específicos para armazenar dados geoespaciais, como mapas e informações
de localização.
142
Formato GTFS: os dados no formato GTFS são organizados em uma
série de arquivos CSV (Comma-Separated Values) que descrevem diferentes
aspectos dos serviços de transporte público. O GTFS é um formato de
arquivo estruturado que permite que as agências de transporte público
forneçam dados sobre seus serviços de uma maneira padronizada e
interoperável, facilitando o desenvolvimento de aplicativos e serviços
relacionados ao transporte público.
Os dados no formato GTFS são organizados em uma série de
arquivos CSV (Comma-Separated Values) que descrevem diferentes
aspectos dos serviços de transporte público. Cada arquivo CSV representa
um tipo específico de informação. Aqui estão alguns dos arquivos principais
que fazem parte de um feed GTFS típico:
• agency.txt: este arquivo descreve a agência ou operador do serviço
de transporte público, incluindo informações como nome, site e
informações de contato.
• stops.txt: descreve as paradas ou estações do sistema de
transporte público, incluindo nomes, coordenadas geográficas
(latitude e longitude) e outras informações relevantes.
• routes.txt: fornece informações sobre as rotas de viagem, incluindo
o nome da rota, o tipo de veículo (ônibus, metrô etc.) e outros
detalhes.
• trips.txt: descreve as viagens ou serviços específicos ao longo de
uma rota, indicando a programação horária e outras informações
relacionadas.
• stop_times.txt: define os horários de partida e chegada em cada
parada ou estação ao longo de uma viagem.
143
• calendar.txt: especifica o calendário de operação do serviço de
transporte público, incluindo datas de início e término da operação,
dias da semana em que o serviço é oferecido e exceções.
• calendar_dates.txt: fornece datas de exceção ao calendário regular,
como feriadosou alterações temporárias no serviço.
Limpeza e Organização dos Dados
No contexto de transformação de dados, o processo de limpeza e
organização de dados é uma etapa fundamental para garantir que os dados
estejam em um estado adequado para análises, processamento ou uso em
aplicativos.
Esse processo envolve a detecção, correção e organização de dados
de modo a eliminar erros, inconsistências e garantir que eles estejam em
conformidade com os padrões e requisitos definidos.
Detecção de Dados Ausentes: identificação e tratamento de valores
ausentes (missing values) nos dados. Isso pode envolver o preenchimento
de valores ausentes com estimativas apropriadas ou a exclusão de registros
com dados ausentes, dependendo do impacto nos resultados.
Eliminação de Duplicatas: identificação e remoção de registros
duplicados nos dados, garantindo que cada registro seja exclusivo. Isso é
importante para evitar contagens ou análises distorcidas.
Padronização de Dados: garantir que os dados sigam convenções de
formatação consistentes. Isso pode incluir a padronização de datas,
moedas, códigos postais, unidades de medida e outros formatos.
Correção de Erros de Digitação: identificação e correção de erros de
digitação, ortografia ou formatação nos dados, garantindo que eles sejam
precisos e consistentes.
144
Validação de Dados: verificação de dados em relação a regras de
negócios ou validações específicas para garantir que eles estejam em
conformidade com requisitos estabelecidos.
Normalização de Dados: transformação de dados em um formato
normalizado, quando necessário, para que sejam comparáveis e
interoperáveis entre diferentes fontes.
Remoção de Outliers: identificação e tratamento de valores atípicos
que podem distorcer análises estatísticas ou modelos de machine learning.
Mapeamento de Valores: substituição de valores codificados ou
abreviados por valores mais descritivos ou significativos. Isso pode envolver
a utilização de tabelas de mapeamento.
Agregação de Dados: agregação de dados em níveis de granularidade
diferentes, como resumir dados diários em dados mensais ou anuais.
Ordenação e Indexação: organização dos dados em uma ordem
específica e criação de índices para facilitar consultas e pesquisas
eficientes.
Segmentação de Dados: divisão dos dados em grupos ou segmentos
com base em critérios específicos, como segmentação de clientes por
comportamento de compra.
Normalização de Nomes e Entidades: padronização de nomes e
entidades (por exemplo, empresas e produtos) para garantir consistência na
representação.
Verificação de Consistência Referencial: em bancos de dados
relacionais, garantir que as relações entre tabelas estejam consistentes,
usando chaves primárias e estrangeiras.
Detecção de Fraudes Cartão de Crédito
145
A detecção de fraude em operações de cartões de crédito é uma área
crítica para as instituições financeiras e as empresas de cartões de crédito,
pois ajuda a proteger os clientes contra transações fraudulentas e minimiza
as perdas financeiras.
A detecção de fraude envolve o uso de várias técnicas e métodos
avançados para identificar atividades suspeitas. Aqui estão os principais
passos e técnicas usados na detecção de fraude em operações de cartões
de crédito:
• Coleta de Dados: o primeiro passo é coletar uma ampla gama de
dados de transações de cartões de crédito, incluindo informações
sobre o titular do cartão, estabelecimento comercial, valor da
transação, localização geográfica e outros detalhes relevantes.
• Análise de Comportamento Histórico: as instituições financeiras
analisam o histórico de transações do titular do cartão para
identificar padrões de comportamento típicos. Isso envolve a
criação de perfis de transações normais.
• Detecção de Anomalias: o sistema de detecção de fraude utiliza
algoritmos de detecção de anomalias para identificar transações
que não se encaixam nos padrões normais. Por exemplo, uma
transação de grande valor fora do padrão de gastos do titular do
cartão pode ser considerada uma anomalia.
• Monitoramento em Tempo Real: transações são monitoradas em
tempo real e alertas são gerados para transações suspeitas. Isso
permite uma resposta imediata a atividades fraudulentas.
• Modelagem Estatística e Machine Learning: muitos sistemas de
detecção de fraude utilizam modelos estatísticos e técnicas de
machine learning para aprimorar a detecção de anomalias. Esses
146
modelos podem ser treinados com dados históricos para identificar
padrões sutis.
• Integração de Dados Externos: além das transações de cartão de
crédito, as instituições podem integrar dados externos, como
informações de crédito, listas de bloqueio de cartões roubados e
dados de geolocalização.
• Regras e Heurísticas: além de técnicas de aprendizado de máquina,
as instituições financeiras também usam regras e heurísticas
definidas para identificar atividades suspeitas. Isso inclui verificar
transações em locais de alto risco, padrões incomuns de gastos e
outros critérios.
• Aprendizado Contínuo: os sistemas de detecção de fraude
geralmente aprendem continuamente com novos dados. Isso ajuda
a melhorar a precisão das detecções à medida que novos padrões
de fraude surgem.
• Alertas e Resposta: quando uma transação suspeita é detectada,
um alerta é gerado e uma resposta imediata é acionada. Isso pode
incluir o bloqueio temporário do cartão, a notificação do titular do
cartão e a investigação adicional.
• Revisão Manual: em alguns casos, transações suspeitas podem ser
revisadas manualmente por analistas de fraude para tomar
decisões informadas sobre sua autenticidade.
• Feedback do Cliente: os clientes também são incentivados a relatar
transações suspeitas. Suas observações podem ser valiosas para
melhorar os sistemas de detecção de fraude.
• Regulamentações de Segurança: as instituições financeiras devem
cumprir regulamentações de segurança, como o Padrão de
147
Segurança de Dados do Setor de Cartões de Pagamento (PCI DSS),
para proteger informações de cartões de crédito.
Data Wrangling – Organizando Dados
O termo “Data Wrangling” refere-se ao processo de coleta, limpeza,
transformação e organização de dados brutos em um formato adequado
para análise ou uso em uma aplicação específica.
O objetivo do Data Wrangling é preparar os dados de maneira que
sejam confiáveis, consistentes e prontos para serem explorados ou
analisados.
O data wrangling é uma etapa crítica no ciclo de vida dos dados, pois
a qualidade e a preparação adequada dos dados são essenciais para análises
precisas e confiáveis. É comum que os cientistas de dados, analistas de
dados e engenheiros de dados dediquem uma parte significativa do seu
tempo ao data wrangling antes de iniciar as análises propriamente ditas.
Etapas Típicas em um Data wrangling
Coleta de Dados: Isso envolve a obtenção de dados de várias fontes,
como bancos de dados, arquivos, APIs ou até mesmo raspagem da web.
Limpeza de Dados: durante esta etapa, os dados são verificados
quanto a erros, valores ausentes, duplicatas e outros problemas. Os dados
ausentes podem ser preenchidos ou tratados de acordo com as
necessidades do projeto.
Transformação de Dados: os dados são transformados para atender
aos requisitos de análise ou uso específicos. Isso pode incluir a conversão
de formatos de dados, agregação, normalização, derivação de novos campos,
codificação de variáveis categóricas e outras manipulações.
148
Organização de Dados: os dados são organizados em uma estrutura
que facilita a análise. Isso pode incluir a ordenação de dados, a criação de
índices e a formatação adequada para facilitar consultas e visualizações.
Validação de Dados: os dados transformados são validados para
garantir que estejam corretos e que os resultados das transformações sejam
consistentes comas expectativas.
Documentação: é importante documentar todas as etapas do
processo de data wrangling para garantir a rastreabilidade e a
replicabilidade. Isso inclui registros de transformações aplicadas, decisões
tomadas e tratamento de exceções.
Automatização: em muitos casos, as etapas de data wrangling
podem ser automatizadas usando scripts ou ferramentas de ETL (Extração,
Transformação e Carga) para lidar com grandes volumes de dados de forma
eficiente.
Data Wrangling – Linguagem R
Em Linguagem R existem funções que facilitam o processo de data
wrangling, permitindo que a partir de um data frame, o usuário o transforme
em um formato útil.
As principais funções estão contidas no pacote dplyr, também
chamadas de verbs. Alguns verbs uteis são:
• filter() – Permite que seja filtrado as linhas/observações de um data
frame de acordo com uma condição.
• summarize() – Sumariza uma ou mais colunas/variáveis, permitindo
calcular uma estatística por meio de grupos.
• group_by() – Agrupa as linhas de acordo com um mesmo
grupo/categorias. É utilizado em conjunto com summarize() de
149
forma que seja possível calcular as estatísticas de um grupo
separadamente.
• mutate() – Utiliza colunas existentes do data frame para criar novas
colunas.
• arrange() – Permite ordenar as linhas em ordem ascendente ou
descendente.
• recode() – Permite alterar o nome das observações de uma coluna.
select() – Seleciona as colunas especificadas (também permite alterar seus nomes).
7
151
Capítulo 7. Soluções de ETL e ELT
ETL
ELT significa "Extrair, Carregar e Transformar". É uma sigla que
representa um processo fundamental no campo do gerenciamento de
dados. Ela significa “Extração, Transformação e Carga”, e refere-se a um
conjunto de atividades e processos usados para mover, transformar e
carregar dados de uma fonte para um destino, geralmente de um sistema
para outro.
O ETL é comumente usado em ambientes de armazenamento de
dados, bancos de dados, Data Warehouses e sistemas de business
intelligence para garantir que os dados estejam prontos para análises e
relatórios.
O processo ETL é essencial em ambientes de dados onde os dados
precisam ser integrados, consolidados e preparados para análises ou
relatórios. Ele ajuda a garantir que os dados estejam limpos, consistentes e
em um formato adequado para uso posterior. Além disso, o ETL é
frequentemente automatizado para tornar o processo mais eficiente e
repetível.
O ETL desempenha um papel crítico em muitos aspectos do
gerenciamento de dados, incluindo data warehousing, business intelligence,
migração de dados, integração de sistemas e muito mais. É uma parte
fundamental da infraestrutura de dados em muitas organizações que
dependem de informações precisas e oportunas para tomada de decisões
informadas.
152
Aqui está uma explicação mais detalhada das três fases do processo
ETL:
• Extração (Extraction): nesta fase, os dados são coletados a partir de
uma ou várias fontes de dados. As fontes podem incluir bancos de
dados, sistemas de registro, arquivos, feeds de streaming,
aplicativos da web, entre outros. A extração pode envolver a
obtenção de dados brutos ou informações específicas de interesse.
• Transformação (Transformation): uma vez que os dados são
extraídos, eles geralmente precisam ser transformados para
atender aos requisitos de destino. Isso inclui atividades como
limpeza de dados, correção de erros, normalização, agregação,
derivação de novos campos, filtragem e padronização. A
transformação é onde os dados são preparados e formatados para
análises posteriores.
• Carga (Load): após a extração e transformação, os dados
processados e transformados são carregados em um destino
específico, que geralmente é um banco de dados, Data Warehouse
ou sistema de armazenamento de dados. A carga pode ser realizada
de várias maneiras, como substituição completa (overwrite),
inserção incremental ou atualização de registros existentes.
Ralph Kimball é um renomado autor e consultor na área de data
warehousing e business intelligence (BI). Ele é amplamente reconhecido por
suas contribuições significativas para o campo do gerenciamento de dados
e é uma figura importante no desenvolvimento de técnicas e metodologias
de data warehousing. Kimball é conhecido principalmente por sua
abordagem de modelagem dimensional, que é uma técnica fundamental no
design de Data Warehouses.
153
Aqui estão alguns pontos-chave sobre Ralph Kimball e suas
contribuições:
• Modelagem Dimensional: Ralph Kimball é um dos principais
defensores da modelagem dimensional, que é uma técnica de
design de Data Warehouse que se concentra em organizar os dados
em torno de dimensões e fatos. Isso resulta em esquemas estrela
ou floco de neve, que são altamente otimizados para consultas de
BI.
• Livros e Publicações: Kimball é autor de vários livros populares
sobre data warehousing e BI, incluindo "The Data Warehouse
Toolkit," que é considerado uma referência na área. Seus livros
descrevem suas metodologias e melhores práticas em detalhes.
• Metodologia Kimball: Ele desenvolveu a Metodologia Kimball, que é
um conjunto de diretrizes e práticas recomendadas para projetar e
implementar Data Warehouses. Isso inclui etapas específicas,
como projeto dimensional, design de ETL (Extração, Transformação
e Carga), desenvolvimento de relatórios e muito mais.
Figura 23 – ETL.
154
ELT
O ELT é uma abordagem de processamento de dados semelhante ao
ETL (Extração, Transformação e Carga), mas com uma diferença
fundamental na ordem das operações.
A sigla ELT representa "Extração, Carga e Transformação". Enquanto
no ETL a transformação ocorre antes do carregamento dos dados em um
sistema de destino, no ELT, os dados são extraídos da fonte, carregados
diretamente no sistema de destino e, em seguida, a transformação é
realizada dentro do sistema de destino.
Figura 24 – ELT.
8
156
Capítulo 8. Orquestração de Dados
Conceitos de Orquestração de Dados
A Orquestração de Dados refere-se ao processo de planejamento,
coordenação e gerenciamento das etapas envolvidas na ingestão,
processamento, transformação e entrega de dados em um pipeline de dados.
A Orquestração desempenha um papel fundamental na automação
e na garantia de que as tarefas de processamento de dados ocorram de
maneira sequencial e eficiente.
Fluxo de Trabalho (Workflow): um fluxo de trabalho é uma
representação lógica das etapas sequenciais ou paralelas em um pipeline de
dados. Ele descreve a ordem em que as tarefas devem ser executadas e
como elas estão relacionadas. Os fluxos de trabalho podem ser definidos e
gerenciados usando ferramentas de orquestração de dados.
Tarefa (Task): uma tarefa é uma unidade de trabalho em um fluxo de
trabalho de dados. Pode ser uma ação específica, como a extração de dados
de uma fonte, a transformação de dados ou a carga de dados em um destino.
Cada tarefa é uma etapa individual que contribui para o processamento geral
dos dados.
Dependências: as dependências definem as relações entre tarefas
em um fluxo de trabalho. Elas especificam quais tarefas devem ser
concluídas antes que outras possam começar. Isso garante que as tarefas
sejam executadas na ordem correta.
Programação (Scheduling): a programação envolve o agendamento
de tarefas em um pipeline de dados. Isso define quando as tarefas devem
ser executadas, com que frequência e em que ordem. A programação pode
ser baseada em cronogramas, gatilhos de eventos ou outros critérios.
157
Gerenciamento de Erros: a orquestração de dados também inclui o
tratamento de erros e exceções. Isso envolve a definição de ações a serem
tomadas em caso de falhas em uma tarefa, como tentar novamente, registrar
erros ou enviar notificações.
Monitoramentoe Logs: a capacidade de monitorar a execução das
tarefas e acessar logs é crucial na orquestração de dados. Isso permite
rastrear o progresso do pipeline, identificar problemas e solucionar
problemas rapidamente.
Escalabilidade: a orquestração deve ser capaz de lidar com a
escalabilidade das operações de processamento de dados. Isso inclui a
distribuição de tarefas em vários nós ou clusters para processar grandes
volumes de dados de maneira eficiente.
Integração de Fontes e Destinos: a orquestração de dados também
envolve a integração com diversas fontes de dados e destinos, como bancos
de dados, sistemas de armazenamento, APIs e serviços de nuvem.
Gerenciamento de Metadados: o gerenciamento de metadados é
importante para rastrear informações sobre os dados, como esquemas,
formatos e descrições, facilitando o entendimento e a governança dos
dados.
Ferramentas de Orquestração de Dados: existem várias ferramentas
e frameworks projetados para ajudar na orquestração de dados, como
Apache Airflow, Prefect, Apache NiFi, Luigi e muitos outros. Essas
ferramentas simplificam o processo de criação, execução e monitoramento
de pipelines de dados complexos.
A Orquestração de Dados é essencial para garantir que os pipelines
de dados funcionem de maneira confiável, automatizada e eficiente,
permitindo que as organizações aproveitem ao máximo seus dados para
análise, tomada de decisões e outras finalidades.
158
159
Azure Data Factory
O Azure Data Factory é um serviço de integração de dados sem
servidor, totalmente gerenciado.
É possível integrar visualmente as fontes de dados usando mais de
90 conectores internos livres de manutenção e sem custo adicional.
É possível construir processos ETL (extrair/transformar/carregar) e
ELT (extrair/carregar/transformar) facilmente sem código dentro de um
ambiente visual intuitivo ou codificar seu próprio código.
Em seguida, forneça dados integrados ao Azure Synapse Analytics
para desbloquear insights de negócios.
Figura 25 – Ingestão no Azure Data Factory.
Escolha entre mais de 90 conectores internos para adquirir dados de
fontes de Big Data, como Amazon Redshift, Google BigQuery e HDFS; Data
Warehouses corporativos como Oracle Exadata e Teradata; aplicativos SaaS
160
como Salesforce, Marketo e ServiceNow; e todos os serviços de dados do
Azure.
Use a capacidade total da largura de banda de rede subjacente, com
até 5 GB/s de taxa de transferência.
O Azure Data Factory é um serviço de orquestração de dados
oferecido pela Microsoft como parte do ecossistema do Microsoft Azure. Ele
é projetado para ajudar as organizações a mover, transformar e processar
dados de forma eficiente, permitindo que elas construam pipelines de dados
automatizados e gerenciem todo o ciclo de vida do processo de dados. O
Azure Data Factory desempenha um papel crucial no ecossistema de
serviços de dados na nuvem da Microsoft.
Orquestração de Dados: o Azure Data Factory permite criar fluxos de
trabalho (pipelines) de dados que orquestram a coleta, transformação e
movimentação de dados entre várias fontes e destinos. Isso é útil para criar
fluxos de trabalho automatizados que economizam tempo e recursos.
Integração de Dados: você pode integrar dados de diversas fontes,
como bancos de dados locais, sistemas de armazenamento em nuvem (como
o Azure Blob Storage ou o Azure SQL Database), serviços de terceiros e
muito mais. Isso facilita a centralização de dados de várias fontes.
Transformação de Dados: o Azure Data Factory suporta
transformações de dados, permitindo que você aplique lógica de negócios
aos seus dados durante o processo de movimentação e transformação. Isso
inclui limpeza, agregação, formatação e muito mais.
Agendamento e Monitoramento: você pode agendar a execução de
pipelines de dados em horários específicos ou acioná-los com base em
eventos. Além disso, o Azure Data Factory fornece recursos de
monitoramento e rastreamento para acompanhar o progresso dos pipelines
e identificar problemas.
161
Integração com Serviços Azure: O Azure Data Factory é altamente
integrado com outros serviços Azure, como o Azure Databricks, Azure
HDInsight, Azure Machine Learning, Azure Synapse Analytics
(anteriormente conhecido como SQL Data Warehouse) e muitos outros,
permitindo a criação de fluxos de trabalho de análise de dados complexos.
Segurança e Conformidade: o serviço é projetado com segurança em
mente e oferece recursos de controle de acesso, criptografia e conformidade
com padrões de segurança, como GDPR e HIPAA.
Evolução dos Dados: com o Azure Data Factory você pode lidar com
dados em constante evolução, incluindo o suporte a dados em streaming e
em lote, o que é fundamental para lidar com os requisitos de dados em
tempo real.
Escalabilidade e Desempenho: o Azure Data Factory é altamente
escalável e pode lidar com grandes volumes de dados e cargas de trabalho
de processamento intensivo.
Figura 26 – Microsoft Azure.
162
Google DataFlow
O Google Dataflow é um serviço gerenciado oferecido pelo Google
Cloud Platform (GCP) que permite a criação, implementação e execução de
pipelines de processamento de dados em escala. Ele foi projetado para
ajudar as organizações a processar e analisar grandes volumes de dados de
maneira eficiente e escalável. Aqui estão os principais usos e
funcionalidades do Google Dataflow:
• Processamento de Dados em Tempo Real e em Lote: o Google
Dataflow suporta o processamento de dados tanto em tempo real
quanto em lote. Isso permite que você construa pipelines de dados
que podem lidar com fluxos de dados contínuos e grandes volumes
de dados históricos.
• Orquestração de Pipelines: o Dataflow permite criar e orquestrar
pipelines de dados que envolvem a extração, transformação e carga
(ETL) de dados. Você pode definir a lógica de processamento em
código e implementá-la em um ambiente gerenciado.
• Programação baseada em Modelo: o Google Dataflow usa o modelo
de programação baseado em Apache Beam, que fornece uma
abstração unificada para expressar pipelines de dados em várias
linguagens de programação, como Python e Java.
• Escalabilidade Automatizada: o serviço gerencia automaticamente
a escalabilidade dos recursos de computação para atender às
demandas do pipeline. Ele aloca recursos conforme necessário e os
libera quando não estão mais em uso.
• Integração com Serviços do Google Cloud: o Google Dataflow é
integrado nativamente com outros serviços do Google Cloud, como
o Google Cloud Storage, BigQuery, Pub/Sub e Datastore, tornando
mais fácil a ingestão e saída de dados desses serviços.
163
• Suporte a Fluxos Complexos: você pode criar pipelines de dados
com transformações complexas, janelas temporais, agregações,
uniões e muito mais. Isso é útil para realizar análises avançadas e
agregações em tempo real ou em lote.
• Monitoramento e Rastreamento: o Google Dataflow fornece
ferramentas de monitoramento e rastreamento integradas que
permitem acompanhar o progresso dos pipelines, verificar registros
de execução e identificar problemas.
• Ferramentas de Desenvolvimento: o serviço oferece suporte a
ferramentas de desenvolvimento, como o Cloud Dataflow SDK, que
facilita a criação e teste de pipelines de dados.
• Integração com Apache Beam: o Google Dataflow é compatível com
o Apache Beam, um projeto de código aberto que permite a
portabilidade de pipelines de dados entre diferentes sistemas de
processamento, como Apache Spark e Apache Flink.
• Custos Otimizados: o Dataflow é dimensionado automaticamente,
o que pode ajudar a otimizar os custos, pois você paga apenas pelos
recursos que usa durante a execução dos pipelines.
O Google Dataflow é uma ferramenta poderosa para processamento
de dados em escala adequada para uma ampla variedade de casos de uso,
incluindo análisede dados em tempo real, ETL, transformação de dados e
muito mais. Ele simplifica a criação de pipelines de dados complexos e
fornece integração nativa com o ecossistema do Google Cloud.
164
Figura 27 – Google Dataform.
O Dataflow é executado no mesmo modelo sem servidor e
totalmente gerenciado. O gerenciamento e o provisionamento das
necessidades de computação podem ser deixados nas mãos do serviço
Dataflow.
O modelo Cloud Dataflow também aparece na rede aberta do Google
com uma coleção de SDKs e APIs que permitem que os desenvolvedores
projetem e implementem pipelines de processamento de dados baseados
em fluxo ou em lote.
O Google Dataflow não é apenas uma ferramenta de orquestração,
mas sim uma plataforma completa para processamento de dados em escala,
que inclui recursos de orquestração como parte de sua funcionalidade. É
uma plataforma de processamento de dados que permite criar, implementar
e executar pipelines de dados em tempo real e em lote.
A orquestração de pipelines de dados é uma parte fundamental do
Google Dataflow, mas ele oferece muito mais do que apenas isso.
Orquestração de Pipelines: o Dataflow permite criar e orquestrar
pipelines de dados que envolvem a extração, transformação e carga (ETL) de
165
dados. Você pode definir a lógica de processamento em código e
implementá-la em um ambiente gerenciado.
Processamento de Dados em Tempo Real e em Lote: o Dataflow
suporta o processamento de dados tanto em tempo real quanto em lote,
permitindo que você crie pipelines que lidam com fluxos de dados contínuos
e grandes volumes de dados históricos.
Programação baseada em Modelo: o Google Dataflow usa o modelo
de programação baseado em Apache Beam, que fornece uma abstração
unificada para expressar pipelines de dados em várias linguagens de
programação, como Python e Java.
Escalabilidade Automatizada: o serviço gerencia automaticamente a
escalabilidade dos recursos de computação para atender às demandas do
pipeline. Ele aloca recursos conforme necessário e os libera quando não
estão mais em uso.
Integração com Serviços do Google Cloud: o Dataflow é integrado
nativamente com outros serviços do Google Cloud, tornando mais fácil a
ingestão e saída de dados desses serviços.
Suporte a Fluxos Complexos: você pode criar pipelines de dados com
transformações complexas, janelas temporais, agregações, uniões e muito
mais.
Monitoramento e Rastreamento: o Google Dataflow fornece
ferramentas de monitoramento e rastreamento integradas que permitem
acompanhar o progresso dos pipelines, verificar registros de execução e
identificar problemas.
Ferramentas de Desenvolvimento: o serviço oferece suporte a
ferramentas de desenvolvimento, como o Cloud Dataflow SDK, que facilita a
criação e teste de pipelines de dados.
166
167
Prefect
O Prefect é uma solução de orquestração de fluxo de trabalho de
dados versátil e Python-centric que simplifica a automação e o
agendamento de tarefas relacionadas a dados em ambientes de ciência de
dados e engenharia de dados. É uma escolha popular para equipes que
desejam melhorar a eficiência e a confiabilidade de seus fluxos de trabalho
de dados, garantindo que as tarefas sejam executadas de maneira confiável
e em conformidade com as dependências especificadas.
Prefect é uma estrutura de código aberto (open-source) de
orquestração de fluxo de trabalho de dados (data workflow) desenvolvida
para simplificar a automação e o agendamento de tarefas relacionadas a
dados, desde a extração e transformação até o carregamento (ETL) e além.
Figura 28 – Prefect.
O objetivo principal do Prefect é fornecer uma maneira flexível e
robusta de lidar com fluxos de trabalho de dados complexos e críticos para
os negócios. Aqui estão alguns pontos-chave sobre o Prefect:
• Orquestração de Fluxo de Trabalho de Dados: Prefect permite que
você defina e gerencie fluxos de trabalho de dados de forma
programática. Isso é particularmente útil em ambientes de ciência
de dados e engenharia de dados, onde você precisa automatizar
tarefas de ETL, treinamento de modelos, agendamento de tarefas
etc.
168
• Python-Centric: o Prefect é baseado em Python e se integra bem
com as bibliotecas e ferramentas de ecossistema de dados Python,
como pandas, Dask, Airflow e muitas outras.
• Controle de Dependências: o Prefect fornece um sistema de
controle de dependências robusto para definir as relações entre
tarefas em um fluxo de trabalho. Isso permite que você especifique
a ordem exata em que as tarefas devem ser executadas.
• Escalabilidade: a estrutura é projetada para ser escalável,
permitindo que você execute fluxos de trabalho em paralelo e
distribua tarefas em vários nós.
• Monitoramento e Rastreamento: Prefect fornece recursos de
monitoramento e rastreamento, permitindo que você acompanhe o
progresso dos fluxos de trabalho, registre eventos e lide com falhas
ou retrabalho de tarefas.
• Facilidade de Uso: Prefect foi projetado para ser fácil de usar, com
uma API limpa e documentação extensa. Também oferece uma
interface de usuário (UI) para facilitar a visualização e o
monitoramento de fluxos de trabalho.
• Comunidade Ativa: assim como muitas outras estruturas de código
aberto, o Prefect possui uma comunidade ativa de desenvolvedores
e usuários que contribuem para seu desenvolvimento e fornecem
suporte.
• Integração com Outras Ferramentas: o Prefect pode ser integrado
com várias ferramentas e serviços de infraestrutura, como Docker,
Kubernetes, AWS, GCP e outros, para orquestrar tarefas em
ambientes de nuvem e contêineres.
169
Containers
Em vez de usar um sistema operacional para cada estrutura, como
na virtualização, os Containers são blocos de espaços divididos pelo Docker
em um servidor, o que possibilita a implementação de estruturas de
Microsserviços que compartilham o mesmo sistema operacional. Porém, de
forma limitada (conforme a demanda por capacidade).
O fato de os Containers não terem seus próprios sistemas
operacionais permite que eles consumam menos recursos e, com isso, sejam
mais leves.
Figura 29 – Contêineres.
As ferramentas de orquestração de containers são aplicações em
nuvem que permitem fazer o gerenciamento de múltiplos contêineres. O
Kubernetes, ECS e o Docker são as principais plataformas de gerenciamento
de contêineres.
Seus principais objetivos são cuidar do ciclo de vida dos containers
de forma autônoma, subindo e distribuindo, conforme nossas especificações
ou demanda e gerenciar volumes e rede, que podem ser local ou no cloud
provider de sua preferência.
170
Dessa forma, essa é uma ferramenta para viabilizar a utilização de
Containers e Microserviços em servidores com mais facilidade, pois permite
empacotar os aplicativos para que possam ser movimentados facilmente.
O Docker permite, por exemplo, que uma biblioteca possa ser
instalada em diferentes Containers sem que haja qualquer
interdependência entre eles. Essa característica tem o objetivo de facilitar o
gerenciamento de códigos e aplicativos.
KubeFlow
Kubeflow é uma plataforma de código aberto projetada para facilitar
o desenvolvimento, treinamento, implantação e gerenciamento de modelos
de machine learning (ML) em contêineres, usando o Kubernetes.
O Kubernetes é uma plataforma de orquestração de contêineres
amplamente adotada que gerencia e dimensiona aplicativos em contêineres
em ambientes de nuvem e data centers. O Kubeflow estende as capacidades
do Kubernetes para criar um ecossistema completo para ML.
Aqui estão alguns dos principais componentes e recursos do
Kubeflow:
• Pipeline de Treinamento: o Kubeflow oferece uma maneira de criar
pipelines de treinamento de ML usando código Python. Isso
permite que os desenvolvedores definam e gerenciem fluxos de
trabalho de treinamento de formaprogramática e reprodutível.
• Gerenciamento de Recursos: o Kubeflow permite que os usuários
aloquem e gerenciem recursos de computação, como CPUs e GPUs,
para treinamento e inferência de modelos de ML.
• Implantação de Modelos: os modelos de ML treinados podem ser
implantados e servidos em contêineres gerenciados pelo Kubeflow,
tornando a implantação e o escalonamento de modelos mais fáceis.
171
• Reprodutibilidade: o Kubeflow promove a reprodutibilidade em
projetos de ML, ajudando os desenvolvedores a acompanharem as
versões dos modelos, experimentos e configurações.
• Monitoramento e Logging: a plataforma oferece recursos para
monitorar o desempenho dos modelos em produção e registrar
eventos relevantes para depuração e auditoria.
• Integração com Ferramentas Populares: o Kubeflow é projetado
para ser interoperável e pode ser integrado com várias ferramentas
populares de ML, como TensorFlow, PyTorch, scikit-learn e muitas
outras.
• Comunidade Ativa: Kubeflow é um projeto de código aberto com
uma comunidade ativa de desenvolvedores e contribuidores. Isso
significa que é suportado e continuamente aprimorado pela
comunidade de código aberto.
• Extensibilidade: o Kubeflow é altamente extensível e
personalizável, permitindo que as organizações construam e
integrem suas próprias ferramentas e funcionalidades
personalizadas.
O Kubeflow fornece uma infraestrutura unificada e escalável para
desenvolver, treinar e implantar modelos de machine learning em
contêineres usando Kubernetes. Essa abordagem facilita a orquestração de
tarefas complexas de ML e ajuda as organizações a implementarem modelos
em produção de maneira eficiente e escalonável em ambientes de nuvem e
de data centers. É especialmente útil para equipes de ciência de dados,
engenheiros de ML e DevOps que desejam acelerar o ciclo de vida de
desenvolvimento e implantação de modelos de ML.
A plataforma Kubeflow Pipelines consiste em:
172
• Uma interface do usuário (UI) para gerenciar e rastrear
experimentos, trabalhos e execuções.
• Um mecanismo para agendar fluxos de trabalho de ML em várias
etapas.
• Um SDK para definir e manipular pipelines e componentes.
• Blocos de anotações para interagir com o sistema usando o SDK.
A seguir estão os objetivos da Kubeflow Pipelines:
• Orquestração de ponta a ponta: habilitando e simplificando a
orquestração de pipelines de aprendizado de máquina.
• Experimentação fácil: tornando mais fácil para você experimentar
inúmeras ideias e técnicas e gerenciar suas várias provações /
experimentos.
• Reutilização fácil: permitindo que você reutilize componentes e
pipelines para criar rapidamente soluções completas sem precisar
reconstruir todas as vezes.
Figura 30 – KubeFlow Pipelines.
173
Fonte: https://towardsdatascience.com/.
Kubeflow Pipelines é a extensão Kubeflow que fornece as
ferramentas para criar fluxos de trabalho de aprendizado de máquina.
Basicamente, esses fluxos de trabalho são cadeias de tarefas projetadas na
forma de gráficos e que são representadas como Gráficos Acíclicos
Direcionados (DAGs). Cada nó do gráfico é chamado de componente, onde
esse componente representa uma tarefa autônoma que vive dentro de um
contêiner docker.
Apache Airflow
Airflow é uma plataforma criada pelo Airbnb, escrita em Python, que
se tornou open-source em 2015 e logo depois cedida para o Apache
Foundation.
O Apache Airflow é uma ferramenta de código aberto, escrita em
python e desenvolvida pela Apache Foundation, seu objetivo é orquestrar
pipelines de tarefas agendadas por meio de arquivos python com instruções
de sequenciamento definidas, chamados DAGs. Pense nele como um versátil
maestro, capaz de orquestrar diferentes músicas, de diversos tempos e com
diferentes instrumentos de maneira igualmente ótima.
https://towardsdatascience.com/
174
Para seu funcionamento, o Airflow conta com alguns elementos
chave que permitem a existência da sinergia necessária entre tarefas,
eventos, estados e filas, todos funcionando de maneira sincronizada e de
acordo com configurações definidas pelo usuário. A Figura abaixo
representa, de maneira relativamente simplificada e em uma mesma
máquina (visto que é possível configurar o Airflow de maneira escalonável)
a estrutura de uma instância da ferramenta.
Figura 31 – Apache Airflow.
175
Airflow.cfg
O Airflow.cfg é um arquivo de configurações que descreve,
principalmente, as conexões utilizadas para comunicação com o banco de
dados de metadados da ferramenta, os intervalos de verificação de novos
arquivos DAGs, e a frequência de atualização dos estados correntes de cada
tarefa.
Webserver
WebrSever é um subsistema responsável pela integração e execução
de uma interface visual para o usuário. Aqui são apresentados graficamente
a maior parte dos elementos que podem ser utilizados pelo usuário, como
DAGs, logs, alertas, avisos e todo tipo de monitoramento do sistema.
Scheduler
Este componente pode ser entendido como o “coração” do Airflow.
No mundo musical, é possível comparar o Scheduler a um metrônomo ou ao
compasso que dá o tempo à música. Aqui, ele é responsável pela
temporização do sistema, resultando na execução programada de DAGs, no
agendamento de execução de tarefas individuais das DAGs e da distribuição
destas para diferentes Executors.
Resumidamente, garantir o bom funcionamento deste componente
faz parte de um grande diferencial para garantir o bom funcionamento do
Airflow como ferramenta, já que faz a integração de quase todos os outros
componentes/ subsistemas.
Metadata
Se o Scheduler pode ser considerado o “coração” do Airflow, então o
banco de dados de metadados seria o “cérebro”.
É neste elemento que são armazenadas todas as variáveis utilizadas
por todos os outros componentes da ferramenta, desde usuários até
retornos de tarefas. Faz uso de um banco de dados relacional que permite,
176
inclusive, a troca de informação entre tarefas, principal causa de problemas
de má utilização do Airflow.
Executors
Subsistema responsável pela execução das tarefas programadas
pelo Scheduler, que estão localizadas na fila (queue) deste subsistema (na
atual representação).
O Airflow permite a execução de diferentes tipos de tarefas através
de operadores de diferentes naturezas, como o PythonOperator, para
execução de scripts Python, o DockerOperator, para trabalho com containers
do Docker ou até mesmo o BashOperator, para a execução de comandos
bash.
Essa versatilidade permite que cada tarefa possa ser executada
isoladamente dentro do ambiente específico definido como Worker. Todas
essas funções são definidas (para a arquitetura local apresentada) e
executadas dentro de um Executor, que ao fim comunica com o banco de
metadados para informar o retorno das ações.
BashOperator
Um script Bash é um arquivo de texto que contém uma sequência de
comandos escritos na linguagem de script Bash. O Bash é um interpretador
de linha de comando amplamente utilizado em sistemas Unix-like, incluindo
o Linux e o macOS. Ele é uma extensão do shell Unix padrão (sh) e oferece
recursos adicionais para automação, scripting e execução de tarefas no
sistema operacional.
O BashOperator é um operador (task) no Apache Airflow, que permite
executar tarefas de shell ou comandos Bash em um ambiente controlado
pelo Airflow.
177
Ele é usado para integrar tarefas que envolvem scripts ou comandos
de linha de comando em seus fluxos de trabalho do Airflow.
9
179
Capítulo 9. Orquestração de Dados
Instalação do Apache Airflow
Para esta instalação, primeiramente você precisa instalar/subir uma
instância do Apache Airflow. Há a opção de usar nuvem ou instalar
localmente:
• Criação de Instância do Apache Airflow no Google Cloud.
• Instalação Local.
• Instalação Localem Container – Docker.
Criação de Instância do Apache Airflow no Google Cloud
Esta é uma forma mais tranquila de se ter o Apache Airflow. Se você
ainda não tem, irá precisar de uma conta no Google Cloud para receber
créditos que permitirão a prática. O Google Cloud oferece US$ 300 para teste
gratuito. Conheça o programa de gratuidade do Google Cloud. O teste
gratuito se aplica à primeira conta de faturamento criada.
O Google Cloud é uma plataforma de computação em nuvem
oferecida pela Google. Ela fornece uma ampla gama de serviços de
computação, armazenamento, análise de dados, aprendizado de máquina,
redes e outros recursos para ajudar indivíduos e empresas a executarem
suas operações de TI de forma eficiente e escalável na nuvem.
I. Crie um Projeto no Google Cloud
Se você ainda não possui um projeto no Google Cloud, será
necessário criar um.
https://cloud.google.com/free/docs/gcp-free-tier?hl=pt-br&_gl=1*1v5xlol*_ga*NzY2OTQ5MTE4LjE2OTIwMjY0MDg.*_ga_NRWSTWS78N*MTY5MjAyNjQwOC4xLjAuMTY5MjAyNjQwOS4wLjAuMA..
180
II. Create a Service Account
No projeto criado, você precisará criar uma Conta de Serviço para que
sua instância do Airflow possa acessar os diferentes serviços do GCP em seu
projeto.
Primeiro, vá para IAM & Admin e depois Contas de serviço.
Em seguida, digite o nome da conta de serviço e clique em Criar.
181
III. Criar um ambiente do Google Composer
Um ambiente do Cloud Composer é uma instalação autônoma do
Apache Airflow implantada em um cluster gerenciado do Google Kubernetes
Engine. É possível criar um ou mais ambientes em um único projeto do
Google Cloud.
IV. Criar um ambiente do Cloud Composer
O Cloud Composer é um serviço totalmente gerenciado de
orquestração de fluxos de trabalho criado no Apache Airflow. Com a
automação do Cloud Composer, é possível criar ambientes do Airflow e usar
as ferramentas nativas dele, como a interface da Web avançada do Airflow e
as ferramentas de linha de comando. Assim, você se concentra nos fluxos de
trabalho, e não na infraestrutura.
Por padrão, os ambientes do Cloud Composer usam a conta de
serviço padrão do Compute Engine gerenciada pelo Google. Recomendamos
que você crie uma conta de serviço gerenciada pelo usuário que tenha um
papel específico para o Cloud Composer e use-a nos seus ambientes.
O tempo aproximado para criar um ambiente é de 25 minutos.
Durante a criação do ambiente, você especifica uma conta de serviço. Os nós
no cluster do ambiente são executados como esta conta.
Antes de começar, ative a API Cloud Composer.
Para ativar a API Cloud Composer, vá em:
182
• https://cloud.google.com/composer/docs/how-
to/managing/enabling-service?hl=pt-br
Localize a parte de ativação de API do Cloud Composer.
As APIs ativas necessárias são:
• Cloud Build API.
• Cloud Functions API.
• Cloud Composer API.
Você pode configurar o ambiente de Cloud Shell, se desejar, e
continuar a configuração pelo Cloud Shell. Nós iremos continuar pela
interface gráfica, mais fácil e intuitiva.
Procure a opção pela ajuda: Abrir o Cloud Shell.
Procure pelo campo de ajuda do Google Cloud “Composer” e abra a
orquestração “Composer”.
https://cloud.google.com/composer/docs/how-to/managing/enabling-service?hl=pt-br
https://cloud.google.com/composer/docs/how-to/managing/enabling-service?hl=pt-br
183
Crie um “Composer1” compatível com Airflow 1 e Airflow 2.
Preencha os campos abaixo:
184
185
Você pode marcar a opção de usar a API Beta.
Depois é só clicar no link do Composer criado para acessar o
ambiente.
Clique em Interface do Airflow e você terá o Airflow acessível.
Alerta: você recebe 300 dólares em créditos, que podem ser
facilmente consumidos ao longo do tempo. Por isso, ao terminar o trabalho,
desabilite a instância que contém o Apache Airflow para evitar cobranças
futuras.
I. Instalação Local:
186
A instalação do Apache Airflow localmente envolve alguns passos. O
processo básico de instalação se dá pelo uso do pip, que é o gerenciador de
pacotes Python. Certifique-se de que você possui o Python instalado em sua
máquina antes de começar. Aqui estão os passos:
II. Crie um Ambiente Virtual (Opcional, mas recomendado):
Criar um ambiente virtual é uma prática recomendada para isolar as
dependências do projeto. Para criar um ambiente virtual, abra o terminal e
navegue até o diretório onde deseja criar o ambiente. Em seguida, execute
o seguinte comando:
python -m venv my_airflow_env
Isso criará um ambiente virtual chamado my_airflow_env. Para ativá-
lo, use:
No Windows:
my_airflow_env\Scripts\activate
No macOS e Linux:
source my_airflow_env/bin/activate
III. Instale o Apache Airflow:
Com o ambiente virtual ativado, use o comando pip para instalar o
Apache Airflow:
pip install apache-airflow
187
188
IV. Inicialize o Banco de Dados:
O Airflow usa um banco de dados para armazenar metadados sobre
DAGs, tarefas, execuções etc. Você precisará inicializar o banco de dados:
airflow db init
V. Inicie o Web Server do Airflow:
Inicie o servidor da web Airflow para acessar o painel de controle:
airflow webserver --port 8080
VI. Inicie o Scheduler:
Abra outro terminal e inicie o scheduler, responsável por agendar e
executar tarefas:
airflow scheduler
VII. Acesse o Painel Web:
Abra um navegador e acesse http://localhost:8080. Isso o levará ao
painel de controle do Airflow, onde poderá criar e monitorar suas DAGs.
Lembre-se de que esta é uma configuração básica para uso local.
189
Instalação Local em Contêiner – Docker
A instalação do Apache Airflow através do Docker é uma abordagem
popular, pois facilita a configuração e execução do Airflow em diferentes
ambientes sem a necessidade de configurar dependências complexas
manualmente. Aqui estão os principais passos para instalar o Apache Airflow
usando o Docker.
I. Criar uma instância do WSL 2 no Windows.
Verificar Requisitos:
Verifique se você está executando pelo menos o Windows 10 versão
1903 com compilação do sistema operacional 18362 ou superior.
Certifique-se de que a virtualização esteja habilitada na BIOS do seu
computador.
Ativar o WSL:
Abra o "Painel de Controle" e acesse "Programas" > "Ativar ou
desativar recursos do Windows".
Marque a opção "Plataforma de Máquina Virtual" e clique em "OK".
Reinicie o computador quando solicitado.
Instalar uma Distribuição Linux via Microsoft Store:
Abra a "Microsoft Store" e procure por uma distribuição Linux
compatível (por exemplo, Ubuntu).
Escolha uma distribuição, clique em "Obter" e siga as instruções para
instalá-la.
190
Configurar a Distribuição Linux:
Após a instalação, execute a distribuição Linux recém-instalada no
menu Iniciar.
Na primeira vez que você executa a distribuição, será solicitado que
configure um nome de usuário e senha.
Atualizar para WSL 2:
Abra o PowerShell como administrador.
Execute o comando: wsl --set-version <Nome da Distribuição> 2,
substituindo <Nome da Distribuição> pelo nome da distribuição Linux que
você instalou.
Aguarde o processo de atualização. As novas distribuições já estão
no padrão da wsl 2.
Definir WSL 2 como Padrão:
Execute o comando no PowerShell: wsl --set-default-version 2.
Instalar o Kernel Linux:
Baixe e instale a atualização do kernel do Linux para o WSL 2. Veja
as orientações no link: https://aka.ms/wsl2kernel.
https://aka.ms/wsl2kernel
191
Basicamente, execute no terminal o comando: wsl.exe --update
Verificar a Versão do WSL:
Execute o comando no PowerShell: wsl --list --verbose para ver as
distribuições instaladas e suas versões. A coluna "Versão" deve ser "2".
Utilizar a Distribuição Linux:
Agora você pode iniciar a distribuição Linux via menu Iniciar,
PowerShell ou Terminal,digitando o comando wsl ou o nome da distribuição
(por exemplo, ubuntu).
II. Instalação do Docker
Se você ainda não tem o Docker instalado, precisará instalá-lo
primeiro. Você pode baixar o Docker Desktop para Windows ou macOS, ou
instalar o Docker Engine em sistemas Linux. Acesse o site oficial do Docker
para obter instruções detalhadas de instalação. No caso do Windows, o
Docker funciona na versão home, porém é necessário utilizar o WSL 2
(Subsistema Windows para Linux 2) para criar um ambiente de execução
para contêineres. O Docker Desktop pode usar o WSL 2. Isso não requer uma
máquina virtual tradicional, mas WSL 2 é uma tecnologia que fornece um
ambiente semelhante a uma VM para a execução de contêineres.
III. Preparação dos Arquivos de Configuração
Antes de iniciar um contêiner Docker com o Apache Airflow, é
recomendável preparar alguns arquivos de configuração. Você pode criar um
192
diretório para armazenar esses arquivos e personalizá-los conforme
necessário.
IV. Arquivo docker-compose.yaml
Crie um arquivo yaml airflow-local com o seguinte conteúdo:
version: '3'
x-airflow-common:
&airflow-common
image: apache/airflow:2.0.0
environment:
- AIRFLOW__CORE__EXECUTOR=LocalExecutor
-
AIRFLOW__CORE__SQL_ALCHEMY_CONN=postgresql+psycopg2://postgres:postgres@pos
tgres:5432/airflow
-
AIRFLOW__CORE__FERNET_KEY=FB0o_zt4e3Ziq3LdUUO7F2Z95cvFFx16hU8jTeR1ASM=
- AIRFLOW__CORE__LOAD_EXAMPLES=False
- AIRFLOW__CORE__LOGGING_LEVEL=INFO
volumes:
- ./dags:/opt/airflow/dags
- ./airflow-data/logs:/opt/airflow/logs
- ./airflow-data/plugins:/opt/airflow/plugins
- ./airflow-data/airflow.cfg:/opt/airlfow/airflow.cfg
depends_on:
- postgres
services:
postgres:
image: postgres:12
environment:
193
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=airflow
- POSTGRES_PORT=5432
ports:
- "5432:5432"
airflow-init:
<< : *airflow-common
container_name: airflow_init
entrypoint: /bin/bash
command:
- -c
- airflow users list || ( airflow db init &&
airflow users create
--role Admin
--username airflow
--password airflow
--email airflow@airflow.com
--firstname airflow
--lastname airflow )
restart: on-failure
airflow-webserver:
<< : *airflow-common
command: airflow webserver
ports:
- 8080:8080
container_name: airflow_webserver
194
restart: always
airflow-scheduler:
<< : *airflow-common
command: airflow scheduler
container_name: airflow_scheduler
restart: always
V. Iniciar o Apache Airflow:
Abra um terminal e navegue para o diretório onde você criará a sua
estrutura de diretórios do Airflow.
Por exemplo, coloque o arquivo yml do compose no diretório de
usuário.
Abra o terminal e vá para o diretório de usuário onde estão os
arquivos airflow-local.yml e o exemplodag.py.
Execute o seguinte comando:
docker-compose -f airflow-local.yml up -d
Após a criação dos contêineres, vá no Docker Desktop e confira se
estão rodando.
Você também pode checar pelo terminal:
195
docker container ps -a
Você também pode checar pelo terminal:
VI. Acesso ao Painel Web:
Depois que o contêiner estiver em execução, você pode acessar o
painel de controle do Airflow no seu navegador.
http://localhost:8080
Lembre-se de substituir 'mysecretkey' e 'myfernetkey' por chaves
reais e seguras. Além disso, você pode ajustar outras configurações no
arquivo yaml conforme necessário.
Usuário e senha de entrada foram definidos no arquivo yml:
airflow/airflow.
VII. Subir DAGs no Aiflow do Docker:
Para isso, basta colocar os arquivos das DAGs em Python no diretório
dags que está abaixo do local onde você escolheu para seu Airflow.
196
O DAG leva um tempo para aparecer no Apache Airflow. Saia do
Airflow (logout) e entre novamente (login), ou pare o contêiner e o inicie
novamente.
Programando Execuções de Pipeline
No Apache Airflow, você pode programar execuções de pipelines
(fluxos de trabalho) usando objetos chamados DAGs (Directed Acyclic
Graphs). DAGs são representações dos seus fluxos de trabalho e podem ser
programados para serem executados em intervalos específicos, horários ou
com base em gatilhos de eventos.
Crie um arquivo Python que defina um DAG. Um DAG é um objeto
Python que descreve o fluxo de trabalho que você deseja executar. Você
pode usar o Python para definir tarefas, dependências entre tarefas e as
regras de programação.
Condicionais
No Apache Airflow, as condicionais são uma maneira de controlar o
fluxo de execução de tarefas em um DAG (Directed Acyclic Graph) com base
em condições específicas. Elas permitem que você tome decisões durante a
execução do fluxo de trabalho, determinando quais tarefas serão
executadas com base em valores ou resultados de tarefas anteriores.
Existem duas principais formas de aplicar condicionais no Apache
Airflow:
• BranchPythonOperator: esta é uma tarefa especializada que
avalia uma função Python definida por você para decidir qual
tarefa seguir em um DAG. A função Python deve retornar o ID da
197
tarefa de destino (ou seja, a próxima tarefa a ser executada) com
base em alguma lógica condicional.
• TriggerDagRunOperator: esta é outra maneira de aplicar
condicionais no Airflow. O TriggerDagRunOperator permite que
você acione a execução de um DAG secundário com base em
condições. Você pode configurar este operador para acionar a
execução de um DAG secundário quando uma determinada
condição for atendida.
Paralelismo
No Apache Airflow, o paralelismo refere-se à capacidade de executar
várias tarefas ou fluxos de trabalho em paralelo, ou seja, ao mesmo tempo.
O Airflow permite a execução paralela de tarefas e fluxos de trabalho, o que
é fundamental para a eficiência e a escalabilidade das operações de
orquestração de dados.
Existem duas formas principais de alcançar o paralelismo no Apache
Airflow:
• Execução Paralela de Tarefas: o Airflow permite que as tarefas
dentro de um DAG sejam executadas em paralelo sempre que
possível. Isso significa que as tarefas que não têm
dependências umas das outras e podem ser executadas
simultaneamente, economizando tempo e recursos. Você
pode configurar a concorrência (ou seja, o número máximo de
tarefas em execução ao mesmo tempo) para controlar o
paralelismo em nível de tarefa.
• Execução Paralela de Fluxos de Trabalho (DAGs): você
também pode alcançar o paralelismo executando múltiplos
DAGs em paralelo. Cada DAG é uma unidade independente de
198
trabalho e pode ser executado simultaneamente com outros
DAGs, desde que não haja conflitos de recursos.
Integrações para Entregas
As integrações para entrega no Apache Airflow referem-se ao uso de
operadores, conectores e extensões para integrar fluxos de trabalho do
Airflow com sistemas externos ou serviços que são parte do processo de
entrega de software (DevOps) e implantação contínua (CI/CD). Essas
integrações facilitam a automação e a orquestração de tarefas relacionadas
à entrega de software, como a implantação em servidores, testes
automatizados, notificações e muito mais.
Aqui estão algumas das integrações comuns para entrega no
Apache Airflow:
Operador de SSH: o operador SSH permite a execução de comandos
ou scripts em servidores remotos por meio de SSH. Isso pode ser útil para a
implantação de software em servidores de produção ou para a execução de
tarefas de configuração.
Operador Kubernetes: o operador Kubernetes permite a interação
com clusters Kubernetes, o que é útil para implantar e gerenciar aplicativos
em contêineres.
Operador Docker: o operador Docker permite a criação, execução e
gerenciamento de contêineres Docker a partir de tarefas do Airflow. Isso
pode ser útil para orquestrar processos que dependem de contêineres.
Conectores para Ferramentasde CI/CD: existem conectores e
extensões que facilitam a integração do Apache Airflow com ferramentas
populares de CI/CD, como Jenkins, Travis CI, CircleCI e GitLab CI/CD. Isso
permite que você automatize e agende tarefas de construção, teste e
implantação como parte de seu fluxo de trabalho de entrega.
199
Operador HTTP: o operador HTTP permite que você faça solicitações
HTTP a serviços externos ou APIs, o que pode ser útil para interagir com
sistemas de integração contínua, ferramentas de monitoramento ou
serviços de notificação.
Operadores de E-mail e Notificação: o Apache Airflow oferece
operadores para envio de e-mails e notificações por meio de serviços como
Slack, Microsoft Teams ou outros meios de comunicação. Isso é útil para
alertas, notificações de sucesso ou falha e comunicação entre equipes.
Operadores de Monitoramento: você pode integrar o Airflow com
ferramentas de monitoramento, como o Prometheus ou o Grafana, usando
operadores específicos para coletar métricas e dados de monitoramento
durante a execução de tarefas.
Operador de Banco de Dados: operadores de banco de dados
permitem que você se conecte a bancos de dados para executar consultas
SQL ou realizar operações de ETL, o que pode ser relevante para a entrega
de software que envolve a manipulação de dados.
Essas são apenas algumas das integrações comuns para entrega no
Apache Airflow. A escolha das integrações a serem usadas depende dos
requisitos específicos do seu processo de entrega de software e das
ferramentas que você utiliza em seu ambiente de desenvolvimento e
implantação. O Apache Airflow é altamente configurável e extensível, o que
o torna uma escolha flexível para automatizar tarefas relacionadas à entrega
de software.
10
201
Capítulo 10. Telemetria para Pipeline de Dados
Conceitos de Telemetria em Pipeline de Dados
A telemetria em um pipeline de dados se refere à coleta, medição e
análise de dados operacionais e de desempenho para monitorar e gerenciar
o fluxo de dados ao longo do pipeline. Ela desempenha um papel
fundamental na garantia de que o pipeline de dados esteja funcionando
conforme o esperado, identificando problemas e melhorando a eficiência do
processo de ingestão, processamento e entrega de dados.
Em um pipeline de dados, a telemetria é fundamental para garantir
a confiabilidade, o desempenho e a integridade dos seus dados. Ela fornece
insights valiosos que ajudam a identificar problemas, otimizar processos e
tomar decisões informadas sobre o funcionamento do pipeline de dados. É
uma parte essencial da operação de qualquer sistema de processamento de
dados em larga escala.
Aqui estão alguns conceitos importantes relacionados à telemetria
em um pipeline de dados:
Coleta de Dados: a coleta de dados de telemetria envolve a captura
de informações relevantes em todo o pipeline de dados. Isso pode incluir
métricas de desempenho, logs de eventos, informações de erros e
metadados sobre os dados que estão sendo processados. As fontes de
dados de telemetria podem variar e incluir sistemas de processamento de
dados, serviços de infraestrutura, aplicativos de negócios e muito mais.
Monitoramento em Tempo Real: o monitoramento em tempo real é a
prática de acompanhar continuamente o pipeline de dados enquanto ele
está em execução. Isso permite a detecção imediata de problemas, como
202
atrasos na ingestão, falhas no processamento ou interrupções na entrega.
O monitoramento em tempo real é essencial para a detecção precoce de
problemas e a tomada de ações corretivas imediatas.
Métricas de Desempenho: métricas de desempenho incluem
informações como taxa de ingestão, taxa de processamento, latência, uso
de recursos e muito mais. Essas métricas permitem avaliar o quão eficiente
e rápido o pipeline de dados está funcionando. Elas podem ser usadas para
identificar gargalos de desempenho e otimizar o pipeline.
Logs de Eventos: os logs de eventos registram informações
detalhadas sobre o funcionamento do pipeline de dados. Isso inclui
informações sobre cada etapa do processo, eventos de erro, informações de
diagnóstico e registros de auditoria. Os logs de eventos são valiosos para a
solução de problemas e a investigação de problemas.
Alertas e Notificações: os sistemas de telemetria geralmente
incluem mecanismos de alerta que notificam automaticamente as equipes
de operações ou engenheiros quando ocorrem problemas críticos ou
anomalias no pipeline de dados. Isso permite uma resposta rápida a eventos
adversos.
Análise e Visualização de Dados: a análise de dados de telemetria
envolve a criação de painéis de controle e relatórios que fornecem insights
sobre o desempenho e o estado do pipeline de dados. A visualização de
dados facilita a compreensão das métricas e tendências ao longo do tempo.
Rastreamento de Metadados: o rastreamento de metadados envolve
a captura de informações sobre os dados em si, como origem, destino,
transformações aplicadas e outros detalhes relevantes. Isso é fundamental
para garantir a qualidade dos dados e a rastreabilidade ao longo do pipeline.
203
Segurança e Conformidade: a telemetria também desempenha um
papel na segurança e conformidade dos dados. Ela pode incluir a
monitorização de acessos não autorizados, auditorias de conformidade e
detecção de atividades suspeitas.
Retenção de Dados de Telemetria: a retenção adequada dos dados
de telemetria é importante para a análise histórica e investigação de
problemas. Você deve definir políticas de retenção de dados que
determinem por quanto tempo os dados de telemetria são armazenados.
Coleta de Métricas – Prometheus
O Prometheus é uma popular ferramenta de código aberto para
coleta, armazenamento e consulta de métricas. Ele é amplamente usado
para monitorar sistemas e serviços em ambientes de nuvem e em
infraestruturas de grande escala.
Aqui está uma visão geral de como o Prometheus coleta métricas:
Coleta de Métricas de Alvos: o Prometheus é projetado para coletar
métricas de diferentes tipos de alvos, como aplicativos, serviços, servidores
e dispositivos de rede. Isso é feito usando um mecanismo chamado de
"scraping" (raspagem). O Prometheus se conecta a esses alvos e
periodicamente coleta métricas exportadas por eles.
Exportadores (Exporters): para coletar métricas de aplicativos e
serviços que não têm suporte nativo ao Prometheus, você pode usar
exportadores. Os exportadores são pequenos programas que transformam
métricas específicas em um formato compatível com o Prometheus. Por
exemplo, o "Node Exporter" coleta métricas de sistemas Unix, enquanto o
"Blackbox Exporter" verifica a disponibilidade de serviços.
204
Armazenamento Local de Métricas: o Prometheus armazena as
métricas coletadas em um banco de dados de séries temporais locais. Esse
armazenamento é altamente eficiente e otimizado para métricas de séries
temporais. Os dados são armazenados em um formato compacto que
permite consultas rápidas e eficientes.
Consulta e Visualização de Métricas: os usuários podem consultar as
métricas armazenadas no Prometheus usando a linguagem de consulta
PromQL (Prometheus Query Language). Isso permite que você crie
consultas complexas para analisar métricas, calcular agregações e criar
gráficos e painéis personalizados.
Alertas e Notificações: o Prometheus também inclui um sistema de
alertas que permite definir regras de alerta com base nas métricas coletadas.
Você pode configurar alertas para notificar automaticamente quando uma
métrica atinge um limiar específico ou quando ocorrem eventos adversos.
Coleta de Métricas Automatizada: o Prometheus oferece um
mecanismo de descoberta automática que permite que você encontre
automaticamente alvos de coleta de métricas em seu ambiente. Isso é útil
em ambientes dinâmicos, como contêineres e orquestradoresde
contêineres (por exemplo, Kubernetes).
Integração com Grafana e Outras Ferramentas: o Prometheus é
frequentemente integrado ao Grafana, uma ferramenta de visualização e
painel de código aberto. Essa integração permite criar painéis
personalizados e gráficos de métricas para monitorar sistemas e serviços.
Escalabilidade: o Prometheus é projetado para ser altamente
escalável e pode ser usado em implantações de grande escala. Ele suporta a
federação, que permite que várias instâncias do Prometheus compartilhem
métricas entre si, facilitando o monitoramento distribuído.
205
O Prometheus é uma poderosa ferramenta de coleta de métricas que
desempenha um papel fundamental na monitorização de sistemas e
serviços. Ele permite que você colete, armazene, consulte e alerte com
eficiência com base em métricas operacionais, facilitando a detecção de
problemas e a análise de desempenho em seus ambientes de TI.
Passos para usar o Prometheus
Instrumentação do Pipeline:
• Em cada etapa do pipeline, instrumente o código para gerar
métricas relevantes. Isso pode incluir métricas de taxa de
ingestão, latência de processamento, erros encontrados,
tempo de resposta e muito mais.
• Use bibliotecas ou clientes Prometheus específicos para sua
linguagem de programação para exportar essas métricas em
um formato que o Prometheus possa coletar.
Configuração do Prometheus:
• Configure o Prometheus para coletar métricas dos pontos de
extremidade (endpoints) dos componentes do pipeline. Isso é
feito através da configuração do arquivo de configuração do
Prometheus (geralmente chamado de prometheus.yml).
• Adicione os alvos de coleta (endpoints dos componentes do
pipeline) à configuração do Prometheus.
• Configure regras de alerta no Prometheus, se necessário, para
monitorar métricas críticas do pipeline.
206
Coleta de Métricas:
• O Prometheus começará a coletar métricas dos componentes
do pipeline de acordo com a configuração definida.
Consultas e Visualização:
• Use a linguagem PromQL para criar consultas que ajudem a
monitorar e entender o desempenho do pipeline. Por exemplo,
você pode criar consultas para verificar a taxa de ingestão
atual, a latência de processamento ou a contagem de erros.
• Configure painéis e gráficos no Grafana (se estiver usando
Grafana para visualização) para exibir métricas importantes
em tempo real.
Alertas e Notificações:
• Configure alertas no Prometheus com base em métricas
críticas. Por exemplo, você pode criar um alerta que notifica
quando a taxa de erro no pipeline ultrapassa um determinado
limiar.
• Configure integrações de notificação (como Slack, e-mail etc.)
para receber alertas quando ocorrerem problemas no pipeline.
Aprimoramento contínuo:
• Monitore regularmente as métricas do pipeline e use os
insights obtidos para otimizar o desempenho e a eficiência do
pipeline.
• Adicione mais métricas e alertas à medida que seu pipeline
evolui e novos componentes são adicionados.
207
Lembrando que o exemplo acima é uma simplificação de um pipeline
de dados real. A instrumentação e a configuração específicas dependerão do
seu ambiente e das necessidades de monitoramento. O Prometheus é uma
ferramenta versátil que pode ser adaptada para monitorar pipelines de
dados complexos em ambientes de produção.
Figura 32 – Prometheus.
Desenvolvido originalmente pela SoundCloud, tornou-se código
aberto e foi aceito como segundo projeto na Cloud Computing Foundation
(CNCF), em 2016. O Prometheus é uma ferramenta cada vez mais popular
que fornece monitoramento e alertas em aplicações e servidores.
Os principais componentes do Prometheus incluem o servidor
Prometheus (que lida com descoberta de serviços, recuperação e
armazenamento de métricas de aplicações monitoradas, análise de dados
de séries temporais usando a linguagem de consulta PromQL), um modelo
208
de métricas de dados, um simples built-in GUI e suporte nativo ao Grafana.
Componentes opcionais adicionais incluem um gerenciador de alertas (no
qual os alertas podem ser definidos na linguagem de consulta) e um gateway
de envio útil para monitorar aplicações de curta duração.
Geralmente, as ferramentas de monitoramento de aplicações
capturam indicadores e métricas por meio de um desses três métodos:
Instrumentação: adicionando código personalizado ao código-fonte
da aplicação monitorada.
Agentes: adicionando código especial de propósito geral ao
ambiente de aplicações para capturar automaticamente as métricas padrão.
Espionagem: usando interceptores ou taps de rede para monitorar
chamadas ou fluxo de dados entre sistemas.
O Prometheus dá suporte ao uso de uma combinação de
instrumentação e agentes (chamados de "exportadores"). Para
instrumentação, é necessário acesso ao código-fonte da aplicação e com
isso possibilita-se a captura de métricas personalizadas. O Prometheus
também é agnóstico em linguagem de programação e possui bibliotecas de
cliente oficiais que são compatíveis e estão disponíveis para Go, Java / Scala,
Python e Ruby. Muitas bibliotecas não oficiais também estão disponíveis
(LISP etc.), sendo possível ainda desenvolver suas próprias bibliotecas.
O Prometheus armazena métricas na forma de dados de séries
temporais, de modo que as métricas incluem streams de valores do tipo
timestamp com milissegundos (float de 64 bits). Cada métrica possui um
nome (uma string) e usa uma convenção de nomenclatura que inclui o nome
do que está sendo monitorado, o tipo lógico e as unidades de medida. Cada
métrica também tem um conjunto de pares chave/valor (as dimensões
209
rotuladas). Por exemplo, uma métrica denominada http_requests_total
poderia incluir rótulos para "método" ("GET", "PUT") e para "handler" (por
exemplo: "/login", "/search"). O Prometheus também adiciona alguns rótulos
às métricas automaticamente, incluindo:
• job: o nome do job configurado ao qual o target pertence.
• Instância: a parte <host>: <porta> da URL extraída do destino.
Ele oferece os quatro tipos de métricas:
1. Contador: um contador é útil para valores incrementais (os valores
podem ser redefinidos para zero no momento da reinicialização).
2. Medidor: um medidor pode ser usado para contagens e valores que
que podem aumentar e diminuir.
3. Histograma: um histograma mostra observações, como tempo de
solicitação ou tamanhos de resposta. Ele conta essas observações
em intervalos possíveis que podem ser configurados, além de
oferecer a soma de todos os valores observados.
4. Resumo: assim como um histograma, um resumo de amostras de
observações oferece uma contagem total e a soma dos valores
observados, ao mesmo tempo em que calcula quantos que são
configuráveis em uma janela de tempo variável.
Dashboards – Grafana
O Grafana é uma plataforma de código aberto que é comumente
usada para monitorar e visualizar dados em tempo real de uma variedade de
fontes, incluindo pipelines de dados. Ele fornece recursos avançados de
visualização e painéis personalizáveis que ajudam as equipes de operações
e engenheiros a acompanhar o desempenho, a integridade e a eficiência de
210
seus pipelines de dados. Aqui estão alguns dos principais aspectos do
Grafana em relação ao monitoramento de pipelines de dados:
Visualização de Métricas em Tempo Real: o Grafana permite criar
painéis de controle personalizados que exibem métricas em tempo real de
diferentes componentes de seu pipeline de dados. Você pode criar gráficos,
tabelas, medidores, mapas de calor e outros tipos de visualizações para
representar métricas de maneira significativa.
Suporte a Diversas Fontes de Dados: o Grafana é altamente flexível
e pode se integrar a uma variedade de fontes de dados, incluindo
Prometheus, InfluxDB, Elasticsearch, MySQL, PostgreSQL e muitos outros.
Isso significa que vocêpode coletar métricas de várias partes de seu
pipeline de dados e consolidá-las em um único painel.
Alertas Personalizados: você pode configurar alertas no Grafana
para ser notificado automaticamente quando métricas críticas excederem
limites predefinidos. Isso é útil para detectar problemas rapidamente e
tomar medidas corretivas.
Exploração de Dados Interativa: o Grafana permite explorar dados
em detalhes, permitindo que você ajuste e refine consultas e visualizações
de métricas. Isso é útil para investigar problemas e tendências em seus
pipelines de dados.
Integração com Outras Ferramentas: o Grafana é frequentemente
usado em conjunto com outras ferramentas de monitoramento, como o
Prometheus, para criar um sistema de monitoramento completo. Ele
também suporta integrações com serviços de notificação, como Slack e e-
mail, para alertas personalizados.
211
Painéis Personalizáveis: você pode criar painéis personalizados que
atendam às necessidades específicas de monitoramento de seus pipelines
de dados. Cada painel pode conter várias visualizações e widgets.
Suporte a Timeseries: o Grafana é especialmente eficaz na exibição
e análise de séries temporais, o que é importante para monitorar o
desempenho de pipelines de dados que lidam com dados em fluxo
constante.
Compartilhamento e Colaboração: os painéis do Grafana podem ser
compartilhados e colaborados com membros da equipe. Isso permite que
várias pessoas acessem e colaborem na monitorização dos pipelines de
dados.
Personalização e Extensibilidade: o Grafana é altamente
personalizável e extensível. Você pode criar seus próprios plugins e temas
para atender às necessidades específicas de seu ambiente.
Figura 33 – Grafana.
Monitoramento de Pipelines
O monitoramento de um pipeline de dados é fundamental para
garantir que ele funcione de maneira confiável, eficiente e segura. A
ausência de monitoramento adequado pode resultar em falhas, perda de
212
dados, problemas de qualidade e impactos negativos nos negócios.
Portanto, é uma prática essencial em qualquer ambiente que dependa do
processamento de dados para operações críticas.
Se você utiliza o Airflow como ferramenta de orquestração, o Grafana
pode ser uma boa opção para um monitoramento mais visual e em tempo
real dos processos que rodam no Airflow.
• Docker — Docker Install.
• Grafana — Ferramenta de monitoramento.
• Apache Airflow — Data pipeline.
• Postgresql — Database onde estão as informações do meu
airflow.
213
Referências
ACADEMIA IN. O que é e qual a importância de aprender sobre modelagem
de dados? 14 jul. 2021. Disponível em: <https://blog.academiain1.com.br/o-
que-e-e-qual-a-importancia-de-aprender-sobre-modelagem-de-dados/>.
Acesso em: 06 set. 2023.
APACHE AIRFLOW. Página Inicial. Disponível em:
<https://airflow.apache.org/>. Acesso em: 11 set. 2023.
BANU, Afshan; PEDAMKAR, Priya. What is Data Processing? EDUCBA, 7 jul.
2023. Disponível em: <https://www.educba.com/what-is-data-processing/>.
Acesso em: 08 set. 2023.
BHAT, Adi. Data Collection Methods: Sources & Examples. QuestionPro,
c2023. Disponível em: <https://www.questionpro.com/blog/data-collection-
methods/>. Acesso em 16 ago. 2023.
BRANCO, Henrique. Orquestre um projeto de ciência de dados em Python
com Prefect. GitHub, c2022. Disponível em:
<https://henriqueajnb.github.io/data-science-escalavel/cap05-
construir_pipelines/sec5-1-prefect.html>. Acesso em: 29 ago. 2023.
CARRASQUEIRA, Karina. Métodos de coletas de dados. AcademiKa, 27 mai.
2019. Disponível em:
<https://karinacarrasqueira.wordpress.com/2019/05/27/metodos-de-
coletas-de-dados/>. Acesso em: 06 ago. 2023
DIGITAL NEST. Difference between Big Data and Data Analytics. 15 mar.
2018. Disponível em: <https://www.digitalnest.in/blog/difference-big-data-
data-analytics/>. Acesso em: 24 ago. 2023.
ECKERSON, Wayne; WHITE, Colin. Evaluating ETL and Data Integration
Platforms. USA, 2003.
https://blog.academiain1.com.br/o-que-e-e-qual-a-importancia-de-aprender-sobre-modelagem-de-dados/
https://blog.academiain1.com.br/o-que-e-e-qual-a-importancia-de-aprender-sobre-modelagem-de-dados/
https://airflow.apache.org/
https://www.educba.com/what-is-data-processing/
https://www.questionpro.com/blog/data-collection-methods/
https://www.questionpro.com/blog/data-collection-methods/
https://henriqueajnb.github.io/data-science-escalavel/cap05-construir_pipelines/sec5-1-prefect.html
https://henriqueajnb.github.io/data-science-escalavel/cap05-construir_pipelines/sec5-1-prefect.html
https://karinacarrasqueira.wordpress.com/2019/05/27/metodos-de-coletas-de-dados/
https://karinacarrasqueira.wordpress.com/2019/05/27/metodos-de-coletas-de-dados/
https://www.digitalnest.in/blog/difference-big-data-data-analytics/
https://www.digitalnest.in/blog/difference-big-data-data-analytics/
214
ELIAS, Diego. Entendendo o processo ETL. Canaltech, 11 jun. 2014.
Disponível em: <https://canaltech.com.br/business-
intelligence/entendendo-o-processo-de-etl-22850/>. Acesso em: 10 mai.
2023.
EMERITUS. Big Data Vs Data Analytics: Key Differences. 22 mai. 2023.
Disponível em: <https://emeritus.org/in/learn/big-data-vs-data-analytics/>.
Acesso em: 17 set. 2023.
FERREIRA, Tamires; VINCENTIN, Tissiane. LGPD: qual a diferença entre
dados pessoais, sensíveis e anonimizados? Olhar Digital, 17 ago. 2021.
Disponível em: <https://olhardigital.com.br/2021/08/17/tira-duvidas/lgpd-
qual-a-diferenca-entre-dados-pessoais-sensiveis-e-anonimizados/>.
Acesso em: 06 set. 2023.
GAUR, Chandan. What is a Data Pipeline? Benefits and its Importance.
Xenonstack, 26 dez. 2022. Disponível em:
<https://www.xenonstack.com/insights/data-pipeline-benefits-
importance>. Acesso em: 17 set. 2023.
GITHUB. Awesome Public Datasets. c2023. Disponível em:
<https://github.com/awesomedata/awesome-public-datasets>. Acesso em:
24 ago. 2023.
GUIMARÃES, Leandro. Qual a diferença entre dados e informação? Entenda
agora!. Know solutions, jan, 2016. Disponível em:
<https://www.knowsolution.com.br/diferenca-dado-e-informacao/>. Acesso
em: 24 ago. 2022.
HAJDARBEGOVIC, Mensur. Data Lake Architecture: A Comprehensive Guid.
Virtasant, 28 jan. 2020. Disponível em:
<https://www.virtasant.com/blog/data-lake-architecture>. Acesso em: 17
set. 2023.
https://canaltech.com.br/business-intelligence/entendendo-o-processo-de-etl-22850/
https://canaltech.com.br/business-intelligence/entendendo-o-processo-de-etl-22850/
https://emeritus.org/in/learn/big-data-vs-data-analytics/
https://olhardigital.com.br/2021/08/17/tira-duvidas/lgpd-qual-a-diferenca-entre-dados-pessoais-sensiveis-e-anonimizados/
https://olhardigital.com.br/2021/08/17/tira-duvidas/lgpd-qual-a-diferenca-entre-dados-pessoais-sensiveis-e-anonimizados/
https://www.xenonstack.com/insights/data-pipeline-benefits-importance
https://www.xenonstack.com/insights/data-pipeline-benefits-importance
https://github.com/awesomedata/awesome-public-datasets
https://www.knowsolution.com.br/diferenca-dado-e-informacao/
https://www.virtasant.com/blog/data-lake-architecture
215
HITACHI VANTARA. Community Home. Disponível em:
<https://community.hitachivantara.com/s/pentaho>. Acesso em: 25 mai.
2023.
KAGGLE. Página Inicial. Disponível em: <https://www.kaggle.com/>. Acesso
em: 24 ago. 2023.
KIMBALL, Ralf. The Data Warehouse Toolkit: The Complete Guide to
Dimensional Modeling. USA, 2002.
LIZA, Urmita. Top 7 Best Data Collection Tools in 2023. QuestionPro, c2023.
Disponível em: <Https://www.questionpro.com/blog/data-collection-tools/>.
Acesso em: 16 ago. 2023
LÓPEZ, Fernando. Kubeflow Pipelines: How to Build your First Kubeflow
Pipeline from Scratch. Medium, 12 abr. 2021. Disponível em:
<https://towardsdatascience.com/kubeflow-pipelines-how-to-build-your-
first-kubeflow-pipeline-from-scratch-2424227f7e5>. Acesso em: 29 ago.
2023.
MONGODB. Página Inicial.Disponível em: <https://docs.mongodb.com/>.
Acesso em: 10 set. 2023
MOTO DEI. Fundamentals of Data Architecture to Help Data Scientists
Understand Architectural Diagrams Better. Medium, 11 set. 2020. Disponível
em: <https://towardsdatascience.com/fundamentals-of-data-architecture-
to-help-data-scientists-understand-architectural-diagrams-better-
7bd26de41c66/>. Acesso em: 16 set. 2023.
PRIMAK, Fábio Vinicius. Decisões com B.I.: Business Intelligence. Rio de
Janeiro: Editora Ciência Moderna, 2008.
https://community.hitachivantara.com/s/pentaho
https://www.kaggle.com/
https://www.questionpro.com/blog/data-collection-tools/
https://towardsdatascience.com/kubeflow-pipelines-how-to-build-your-first-kubeflow-pipeline-from-scratch-2424227f7e5
https://towardsdatascience.com/kubeflow-pipelines-how-to-build-your-first-kubeflow-pipeline-from-scratch-2424227f7e5
https://docs.mongodb.com/
216
PRO WEB SCRAPING. Web Scraping Vs Web Crawling. c2023. Disponível em:
<http://prowebscraping.com/web-scraping-vs-web-crawling/>. Acesso em:
28 ago. 2023
QWETY WIKI. Extrair, transformar, carregar – Extract, transform, load.
Disponível em: <https://pt.qwe.wiki/wiki/Extract,_transform,_load>. Acesso
em: 19 mai. 2023.
REGO, Bergson Lopes. A LGPD está impulsionando a adoção de programas
de governança de dados? Blog da BLR Data. Disponível em:
<https://www.blrdata.com.br/single-post/lgpd-impulsiona-
governan%C3%A7a-de-dados>. Acesso em: 06 set. 2023.
RENO, Giana. 10 Data Ingestion Tools to Fortify Your Data Strategy.
FirstEigen, c2023. Disponível em: <https://firsteigen.com/blog/10-data-
ingestion-tools-to-fortify-your-data-strategy/>. Acesso em: 09 set. 2023.
SARDA, Meenal. Batch Processing Vs Stream Processing. K21Academy, 22
jul. 2022. Disponível em: <https://k21academy.com/microsoft-azure/data-
engineer/batch-processing-vs-stream-processing/>. Acesso em: 18 set.
2023.
SRJSUNNY. Introduction to Hadoop Distributed File System (HDFS). Geeks
for Geeks, 17 jun. 2022. Disponível em:
<https://www.geeksforgeeks.org/introduction-to-hadoop-distributed-file-
systemhdfs/>. Acesso em: 18 set. 2023.
TIKAIT, Payal. BI vs. Big Data vs. Data Mining: A Comparison of the
Difference Between Them. SelectHub, c2023. Disponível em:
<https://www.selecthub.com/business-intelligence/bi-vs-big-data-vs-data-
mining/#4>. Acesso em: 17 set. 2023.
UCI. Disponível em: <https://archive.ics.uci.edu/ml/index.php>. Acesso em:
24 ago. 2023.
http://prowebscraping.com/web-scraping-vs-web-crawling/
https://pt.qwe.wiki/wiki/Extract,_transform,_load
https://www.blrdata.com.br/single-post/lgpd-impulsiona-governan%C3%A7a-de-dados
https://www.blrdata.com.br/single-post/lgpd-impulsiona-governan%C3%A7a-de-dados
https://firsteigen.com/blog/10-data-ingestion-tools-to-fortify-your-data-strategy/
https://firsteigen.com/blog/10-data-ingestion-tools-to-fortify-your-data-strategy/
https://k21academy.com/microsoft-azure/data-engineer/batch-processing-vs-stream-processing/
https://k21academy.com/microsoft-azure/data-engineer/batch-processing-vs-stream-processing/
https://www.geeksforgeeks.org/introduction-to-hadoop-distributed-file-systemhdfs/
https://www.geeksforgeeks.org/introduction-to-hadoop-distributed-file-systemhdfs/
https://www.selecthub.com/business-intelligence/bi-vs-big-data-vs-data-mining/%234
https://www.selecthub.com/business-intelligence/bi-vs-big-data-vs-data-mining/%234
https://archive.ics.uci.edu/ml/index.php
217
VIEIRA, Marcio Junior. Kimball University: As 10 Regras Essenciais para a
Modelagem de Dados Dimensional. Ambiente Livre, mai. 2009. Disponível
em: <https://www.ambientelivre.com.br/tutoriais-pentaho-bi/kimball-
university-as-10-regras-essenciais-para-a-modelagem-de-dados-
dimensional.html>. Acesso em: 19 mai. 2023.
WIKIWAND. Extract, transform, load. Disponível em:
<https://www.wikiwand.com/en/Extract,_transform,_load>. Acesso em: 12
mai. 2023.
https://www.ambientelivre.com.br/tutoriais-pentaho-bi/kimball-university-as-10-regras-essenciais-para-a-modelagem-de-dados-dimensional.html
https://www.ambientelivre.com.br/tutoriais-pentaho-bi/kimball-university-as-10-regras-essenciais-para-a-modelagem-de-dados-dimensional.html
https://www.ambientelivre.com.br/tutoriais-pentaho-bi/kimball-university-as-10-regras-essenciais-para-a-modelagem-de-dados-dimensional.html
https://www.wikiwand.com/en/Extract,_transform,_load