Escolar Documentos
Profissional Documentos
Cultura Documentos
Engenharia de Dados
DE DADOS DE DADOS
Edison Andrade Martins Morais Edison Andrade Martins Morais
Você já deve ter ouvido falar na expressão “Era da Informação”. Também conheci-
da como era digital ou tecnológica, trata-se do período iniciado a partir dos anos
1980, caracterizado principalmente por diversas revoluções tecnológicas, como
as invenções dos computadores pessoais, das redes de comunicação, dos celula-
res, da internet, etc. Essas inovações mudaram o comportamento da sociedade,
influenciando a forma com que as pessoas se comunicam, aprendem, consomem,
se relacionam e vivem.
Além das inovações, um outro fator influenciou essas mudanças: a grande quantida-
de de dados disponíveis. Para se ter uma ideia, entre 2006 e 2010, o volume de dados
digitais gerados cresceu de 166 exabytes para 988 exabytes, sendo que este volume
passou a dobrar a cada dois anos e vem crescendo exponencialmente. O que fazer com
esta quantidade massiva de dados? Como processá-los? Como extrair informação útil
deste universo? Essas questões representam apenas alguns dos desafios atuais da
humanidade. O que nós, da área de tecnologia da informação, podemos fazer para
ajudar nesses desafios?
DADOS DO FORNECEDOR
*Todos os gráficos, tabelas e esquemas são creditados à autoria, salvo quando indicada a referência.
Nenhuma parte desta publicação poderá ser reproduzida por qualquer meio
A violação dos direitos autorais é crime estabelecido pela Lei n.º 9.610/98 e punido pelo artigo 184 do
Código Penal.
ASSISTA
Indicação de filmes, vídeos ou similares que trazem informações comple-
mentares ou aprofundadas sobre o conteúdo estudado.
CITANDO
Dados essenciais e pertinentes sobre a vida de uma determinada pessoa
relevante para o estudo do conteúdo abordado.
CONTEXTUALIZANDO
Dados que retratam onde e quando aconteceu determinado fato;
demonstra-se a situação histórica do assunto.
CURIOSIDADE
Informação que revela algo desconhecido e interessante sobre o assunto
tratado.
DICA
Um detalhe específico da informação, um breve conselho, um alerta, uma
informação privilegiada sobre o conteúdo trabalhado.
EXEMPLIFICANDO
Informação que retrata de forma objetiva determinado assunto.
EXPLICANDO
Explicação, elucidação sobre uma palavra ou expressão específica da
área de conhecimento trabalhada.
Sintetizando........................................................................................................................... XX
Referências bibliográficas................................................................................................. XX
Sintetizando............................................................................................................................ 71
Referências bibliográficas.................................................................................................. 72
ENGENHARIA DE DADOS 5
Pipelines................................................................................................................................. 94
Hardware........................................................................................................................... 95
Software............................................................................................................................. 95
Dados.................................................................................................................................. 98
Jobs.......................................................................................................................................... 99
Sintetizando.......................................................................................................................... 101
Referências bibliográficas................................................................................................ 102
ENGENHARIA DE DADOS 6
View....................................................................................................................................... 125
Programação de banco de dados..................................................................................... 126
Procedures........................................................................................................................... 128
Funções................................................................................................................................. 129
Triggers.................................................................................................................................. 132
Cursores................................................................................................................................ 133
Sintetizando.......................................................................................................................... 135
Referências bibliográficas................................................................................................ 136
ENGENHARIA DE DADOS 7
Caro aluno(a), você já deve ter ouvido falar na expressão “Era da Informa-
ção”. Também conhecida como era digital ou tecnológica, trata-se do período
iniciado a partir dos anos 1980, caracterizado principalmente por diversas re-
voluções tecnológicas, como as invenções dos computadores pessoais, das re-
des de comunicação, dos celulares, da internet, etc. Essas inovações mudaram
o comportamento da sociedade, influenciando a forma com que as pessoas se
comunicam, aprendem, consomem, se relacionam e vivem.
Além das inovações, um outro fator influenciou essas mudanças: a grande
quantidade de dados disponíveis. Para se ter uma ideia, entre 2006 e 2010, o
volume de dados digitais gerados cresceu de 166 exabytes para 988 exabytes,
sendo que este volume passou a dobrar a cada dois anos e vem crescendo
exponencialmente. O que fazer com esta quantidade massiva de dados? Como
processá-los? Como extrair informação útil deste universo? Essas questões re-
presentam apenas alguns dos desafios atuais da humanidade. O que nós, da
área de tecnologia da informação, podemos fazer para ajudar nesses desafios?
ENGENHARIA DE DADOS 9
Currículo Lattes:
http://lattes.cnpq.
br/5385798087351636
ENGENHARIA DE DADOS 10
1 INTRODUÇÃO À
ENGENHARIA DE DADOS
Tópicos de estudo
Introdução à Engenharia de Banco de dados distribuído
Dados Arquitetura centralizada
Tipos de dados Arquitetura cliente-servidor
Tipos de informações Conceitos e vantagens
Transformar dados em infor- Funcionamento
mações
Confiabilidade, eficiência e a qua-
Atributos de um engenheiro de lidade dos dados
dados Política de segurança da infor-
Responsabilidades mação
Habilidades (competências) Controles gerais
Controles de aplicativos
Arquitetura de sistemas distri- Controles de banco de dados
buídos Controles de redes
Elementos arquitetônicos
Padrões arquitetônicos
Plataformas de middleware
ENGENHARIA DE DADOS 12
- Informação valiosa da
- Simples observação do
- Dados dotados de relevância mente humana;
estado do mundo;
e propósito; - Inclui reflexão, sintaxe,
- Facilmente estruturável;
- Requer unidade de análise; contexto;
- Facilmente obtido por
- Exige consenso em relação - De difícil estruturação;
máquinas;
ao significado; - De difícil captura de
- Frequentemente quanti-
- Exige necessariamente a me- máquinas;
ficado;
diação humana. - Frequentemente tácito;
- Facilmente transferível.
- De difícil transferência.
ENGENHARIA DE DADOS 13
Tomada de decisão
orientada por dados
(na empresa)
DOD automatizada
Data Science
Engenharia e processamento
de dados
(incluindo tecnologias “Big Data”)
Figura 1. Engenharia e ciência de dados. Fonte: PROVOST; FAWCETT, 2016, p. 607. (Adaptado).
ENGENHARIA DE DADOS 14
Tipos de dados
No contexto da engenharia de dados, os dados podem ser classificados como
estruturados e não estruturados.
Um dado estruturado é aquele
dado que possui formato bem defi -
nido e um metadado associado, ou
seja, uma explicação sobre o conteú-
do do dado. Um exemplo de dado es-
truturado é uma tabela em um banco
de dados. As linhas contêm os dados
propriamente ditos, enquanto as
colunas contêm a informação sobre
o que aquele campo da tabela está
armazenando. A Tabela 2 ilustra um
exemplo de dado estruturado.
ENGENHARIA DE DADOS 15
1 AC Acre
2 SP São Paulo
3 RJ Rio de Janeiro
4 GO Goiás
Tipos de informações
Dentre as classificações mais comuns para os tipos de informações, Rezen-
de (2016) propõe uma taxonomia baseada na seguinte classificação: informa-
ções operacionais, informações gerenciais e informações estratégicas.
Informações operacionais, ou analíticas, são aquelas armazenadas em
nível de detalhe, contemplando características específicas de um dado, de uma
tarefa ou de uma atividade.
ENGENHARIA DE DADOS 16
EXEMPLIFICANDO
Como exemplo de informações gerenciais, podemos citar a média de ven-
da por produto ou o total de recebido de comissão por um vendedor.
EXEMPLIFICANDO
A tendência de vendas por produto e região nos próximos meses é um
exemplo de informação estratégica.
Mas como gerar essas informações? Quais processos devem ser utilizados?
ENGENHARIA DE DADOS 17
Responsabilidades
A seguir, são descritas algumas das principais atribuições (ou responsabili-
dades) dos engenheiros de dados (CIO-IDG, 2018; Dataquest, 2019):
• Desenvolver, construir, testar e manter arquiteturas;
• Alinhar arquiteturas com requisitos de negócios;
• Cuidar da aquisição dos dados;
• Desenvolver processos de conjunto de dados;
• Usar linguagem de programação e ferramentas;
• Identificar maneiras de melhorar a confiabilidade, a eficiência e a qualida-
de dos dados;
• Realizar pesquisas para questões industriais e de negócios;
• Usar grandes conjuntos de dados para resolver problemas de negócios;
ENGENHARIA DE DADOS 18
Habilidades (competências)
Além de suas atribuições, o engenheiro de dados deve dominar algumas
tecnologias, que tendem a afetar significativamente seus salários – em alguns
casos, na faixa de 10 ou 15% a mais. De acordo com dados do PayScale (2019),
o domínio das seguintes tecnologias está associado a um aumento significa-
tivo nos salários:
Tecnologia Aumento
Scala 17%
Java 13%
Linux 11%
ENGENHARIA DE DADOS 19
Desenvolvimento de software 2%
Fonte: PAYSCALE, 2019, p. 2.
ENGENHARIA DE DADOS 20
ENGENHARIA DE DADOS 21
EXEMPLIFICANDO
Na medida em que o acesso aos arquivos disponíveis em uma intra-
net aumenta, em função do crescimento do número de usuários ou de
outros fatores, deve ser viável financeiramente ampliar a capacidade
do servidor atual ou adicionar novos, visando evitar uma perda de
desempenho.
ENGENHARIA DE DADOS 22
EXEMPLIFICANDO
Thread é uma atividade, ou uma tarefa, que um programa executa no
sistema operacional.
EXEMPLIFICANDO
As principais técnicas de comunicação indireta são: a comunicação em gru-
po, o sistema publicar-assinar (do inglês, Publish-Subscribe), os sistemas de
filas de mensagens, os espaços de tuplas, os sistemas de memória compar-
tilhada distribuída e as estratégias baseadas em memória duplicada.
ENGENHARIA DE DADOS 23
Chamada Chamada
Resultado Resultado
Servidor
Cliente
Servidor
Cliente
Fonte: COULOURIS et al., 2013, p. 47. (Adaptado).
Já na arquitetura peer-to-peer,
todos os processos envolvidos em uma tarefa ou atividade de-
sempenham funções semelhantes, interagindo cooperativamen-
te como pares (peers), sem distinção entre processos clientes e
servidores, nem entre os computadores em que são executados
(COULOURIS et al., 2013, p. 46).
O Diagrama 2 mostra o exemplo de funcionamento dessa arquitetura.
ENGENHARIA DE DADOS 24
Ponto 1 Ponto 2
Aplicativo Aplicativo
Objetos
compartilhados
Ponto 3
Aplicativo
Pontos 4 ... N
Servidor
Servidor
Cliente
Servidor
Cliente
Servidor
ENGENHARIA DE DADOS 25
Padrões arquitetônicos
Os padrões arquitetônicos representam a organização lógica e física dos
elementos que compõem um sistema distribuído. As estruturas mais conhe-
cidas são aquelas organizadas em camadas lógicas e físicas.
A organização baseada em camadas lógicas é uma das estratégias mais
utilizadas para definição de padrões, na qual cada camada oferece uma
abstração de software. As camadas inferiores encapsulam os detalhes de
sua implementação, que se torna oculta para as camadas superiores. Nesse
tipo de organização, cada camada oferece um determinado serviço, que é
utilizado por suas camadas adjacentes. O Diagrama 4 mostra a organização
desse tipo de padrão arquitetural.
Aplicativos e Serviços
Middleware
Sistema Operacional
Plataforma
Computador
e Hardware de Rede
Fonte: COULOURIS et al., 2013, p. 48. (Adaptado).
ENGENHARIA DE DADOS 26
Visualização dos
Usuários
Lógica da
Aplicação
Gerenciador
de Banco
Lógica da de Dados
Aplicação
Visualização dos
Usuários
CURIOSIDADE
A Wikipédia, que é um projeto de enciclopédia multilíngue de licença livre,
baseado na web e escrito de maneira colaborativa, adota a arquitetura de
múltiplas camadas físicas para lidar com o volume de requisições de seus
mais de dois milhões de usuários.
Plataformas de middleware
Middleware é o software responsável pela comunicação entre os elemen-
tos de cada camada e o processamento distribuído dos dados. Posicionado en-
tre as camadas, ele permite a comunicação e o gerenciamento de dados entre
os elementos.
Dentre os tipos mais comuns de middleware, podemos citar os de banco de
dados, de servidor de aplicativos, orientado a mensagens, web e monitores de
ENGENHARIA DE DADOS 27
EXPLICANDO
SOAP (protocolo simples de acesso a objetos; do inglês, Simple Object
Access Protocol) é um protocolo para troca de informações estruturadas
em ambientes distribuídos baseado na linguagem XML.
REST (transferência de estado representacional; do inglês, Representa-
tional State Transfer) é um protocolo, baseado em HTTP, que define um
conjunto de restrições e propriedades de comunicação.
JSON (notação de objeto javascript; do inglês, JavaScript Object Notation)
é um padrão aberto de troca de dados entre sistema baseado na lingua-
gem JavaScript.
ENGENHARIA DE DADOS 28
Arquitetura centralizada
Os primeiros bancos de dados (BD) utilizavam uma arquitetura conhecida
como centralizada. Nesse tipo de arquitetura, eram utilizados computadores
centrais, conhecidos como mainframes, com grande poder de processamento
e capacidade de armazenamento, que eram responsáveis por todo processa-
mento de dados e execução de todas as aplicações que implementavam as
funcionalidades dos sistemas. A Fig. 3 representa esse tipo de arquitetura.
Mainframe
Aplicação
Banco de dados
ENGENHARIA DE DADOS 29
Arquitetura cliente-servidor
Nesta arquitetura, o cliente é, em geral, um computador capaz de realizar
processamento local. Quando o computador precisa acessar dados, este se
conecta a uma outra máquina, o servidor, que irá fornecê-los.
Já um servidor é uma máquina que pode fornecer serviços para as máquinas
clientes, como armazenamento ou acesso a um banco de dados. A Fig. 4 ilustra o
funcionamento dessa arquitetura.
Servidor
Estações (Workstation)
ENGENHARIA DE DADOS 30
Rede de
Comunicação
Servidor de
Banco de Dados
Banco de Dados
ENGENHARIA DE DADOS 31
Conceitos e vantagens
Como já sabemos, um banco de dados distribuído (BDD) é um conjunto de
bancos de dados logicamente inter-relacionados e distribuídos em uma rede
de computadores, gerenciados por um sistema de gerenciamento de banco de
dados distribuído (SGBDD). Ao contrário dos bancos de dados centralizados, os
BDDs têm seu processamento distribuído entres vários equipamentos físicos,
conforme pode ser visualizado na Fig. 6.
Estação de Estação de
trabaho trabaho
Servidor Servidor
Dados Dados
Rede de Computadores
São José do
Campo Grande
Rio Preto
Servidor Servidor
Dados Dados
Estação de Estação de
trabaho trabaho
ENGENHARIA DE DADOS 32
Vantagem Descrição
Transpar- Os usuários de uma BDD não precisam saber onde os dados estão localizados
ência fisicamente ou como eles podem ser acessados (SILBERSCHATZ et al., 2012).
Rapidez de
Usuários finais do BD podem acessar a apenas uma porção dos dados, que
acesso e
pode ser armazenada localmente. Já o processamento pode ter sua carga de
processa-
trabalho dividida entre vários locais.
mento
Capacidade
Podem ser adicionados novos locais de processamento sem interferir na op-
de ampli-
eração dos outros pontos da rede.
ação
ENGENHARIA DE DADOS 33
EXPLICANDO
Fragmentar significa dividir os dados em unidades lógicas, chamadas de
fragmentos, que são armazenados e processados em locais físicos dife-
rentes. Replicar consiste em criar várias cópias idênticas dos dados em
vários pontos de processamento na rede. Alocar é o processo de definir o
local onde os dados serão posicionados para processamento.
ENGENHARIA DE DADOS 34
ENGENHARIA DE DADOS 35
ENGENHARIA DE DADOS 36
PSI
Explanação das políticas, princípios, normas e requisitos de conformidade
de segurança.
ASSISTA
Existem vários filmes e séries que tratam tanto da questão
da segurança da informação nos dias atuais quanto
da temática relacionada às questões de tecnologia da
informação. Seguem algumas indicações: A rede (1995);
Hackers – piratas de computador (1995); A rede social
(2010); Nós roubamos segredos: a história da WikiLeaks
(2013); Hacker Blackhat (2015); O jogo da imitação (2014);
Jobs (2013), e Mr. Robot (2015).
ENGENHARIA DE DADOS 37
ENGENHARIA DE DADOS 38
Controles de aplicativos
O controle de aplicativos envolve os seguintes controles: dados de entrada,
processamento e dados de saída.
O controle dos dados de entrada é o controle dos documentos ou te-
las de entrada de dados, rotinas de
preparação dos dados, autorização
para entrada de dados, retenção de
documentos de entrada, validação
dos dados de entrada, tratamento de
erros e mecanismos de suporte para
entrada de dados.
O controle de processamento
visa verifi car a integridade do pro-
cessamento, sua validação e trata-
mento de erros.
O controle dos dados de saída
envolve a resposta das seguintes per-
guntas: os dados de saída são revisados? Os dados de saída são distribuídos de
forma correta? Os dados de saída são armazenados de forma segura?
ENGENHARIA DE DADOS 39
ENGENHARIA DE DADOS 40
ENGENHARIA DE DADOS 41
ENGENHARIA DE DADOS 42
ENGENHARIA DE DADOS 43