Buscar

Técnicas e Ferramentas ETL

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 78 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 78 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 78 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Brasília-DF. 
Técnicas e FerramenTas eTL
Elaboração
Hugo Cardoso
Bruno Campos
Produção
Equipe Técnica de Avaliação, Revisão Linguística e Editoração
Sumário
APrESEntAção .................................................................................................................................. 5
orgAnizAção do CAdErno dE EStudoS E PESquiSA ..................................................................... 6
introdução ..................................................................................................................................... 8
unidAdE i
CICLO DE VIDA DE UM ETL ................................................................................................................. 11
CAPítulo 1
PrOCEssOs EM UM PrOjETO DE ETL ..................................................................................... 12
CAPítulo 2
PAssOs DE UM ETL ................................................................................................................ 19
unidAdE ii
EXTrAÇÃO DE DADOs ....................................................................................................................... 21
CAPítulo 1
EsTrUTUrA DE DADOs ........................................................................................................... 21
CAPítulo 2
TéCnICAs DE EXTrAÇÃO ...................................................................................................... 27
unidAdE iii
TrAnsFOrMAÇÃO E CArGA DE DADOs ............................................................................................ 38
CAPítulo 1
TéCnICAs DE LIMPEzA E COnFOrMIDADE DE DADOs............................................................ 38
CAPítulo 2
TéCnICAs DE CArGA ........................................................................................................... 47
unidAdE iV
FErrAMEnTAs ETL .............................................................................................................................. 62
CAPítulo 1
InFOrMATICA Power Center.............................................................................................. 62
CAPítulo 2
MiCrosoft sQL server integration serviCes – ssIs ......................................................... 66
CAPítulo 3
Pentaho Data integration – PDI ........................................................................................ 70
CAPítulo 4
COMPArAÇÃO EnTrE As FErrAMEnTAs ............................................................................... 75
PArA (não) FinAlizAr ...................................................................................................................... 76
rEFErênCiAS .................................................................................................................................... 78
5
Apresentação
Caro aluno
A proposta editorial deste Caderno de Estudos e Pesquisa reúne elementos que se entendem 
necessários para o desenvolvimento do estudo com segurança e qualidade. Caracteriza-se pela 
atualidade, dinâmica e pertinência de seu conteúdo, bem como pela interatividade e modernidade 
de sua estrutura formal, adequadas à metodologia da Educação a Distância – EaD.
Pretende-se, com este material, levá-lo à reflexão e à compreensão da pluralidade dos conhecimentos 
a serem oferecidos, possibilitando-lhe ampliar conceitos específicos da área e atuar de forma 
competente e conscienciosa, como convém ao profissional que busca a formação continuada para 
vencer os desafios que a evolução científico-tecnológica impõe ao mundo contemporâneo.
Elaborou-se a presente publicação com a intenção de torná-la subsídio valioso, de modo a facilitar 
sua caminhada na trajetória a ser percorrida tanto na vida pessoal quanto na profissional. Utilize-a 
como instrumento para seu sucesso na carreira.
Conselho Editorial
6
organização do Caderno 
de Estudos e Pesquisa
Para facilitar seu estudo, os conteúdos são organizados em unidades, subdivididas em capítulos, de 
forma didática, objetiva e coerente. Eles serão abordados por meio de textos básicos, com questões 
para reflexão, entre outros recursos editoriais que visam a tornar sua leitura mais agradável. Ao 
final, serão indicadas, também, fontes de consulta, para aprofundar os estudos com leituras e 
pesquisas complementares.
A seguir, uma breve descrição dos ícones utilizados na organização dos Cadernos de Estudos 
e Pesquisa.
Provocação
Textos que buscam instigar o aluno a refletir sobre determinado assunto antes 
mesmo de iniciar sua leitura ou após algum trecho pertinente para o autor 
conteudista.
Para refletir
Questões inseridas no decorrer do estudo a fim de que o aluno faça uma pausa e reflita 
sobre o conteúdo estudado ou temas que o ajudem em seu raciocínio. É importante 
que ele verifique seus conhecimentos, suas experiências e seus sentimentos. As 
reflexões são o ponto de partida para a construção de suas conclusões.
Sugestão de estudo complementar
Sugestões de leituras adicionais, filmes e sites para aprofundamento do estudo, 
discussões em fóruns ou encontros presenciais quando for o caso.
Praticando
Sugestão de atividades, no decorrer das leituras, com o objetivo didático de fortalecer 
o processo de aprendizagem do aluno.
Atenção
Chamadas para alertar detalhes/tópicos importantes que contribuam para a 
síntese/conclusão do assunto abordado.
7
Saiba mais
Informações complementares para elucidar a construção das sínteses/conclusões 
sobre o assunto abordado.
Sintetizando
Trecho que busca resumir informações relevantes do conteúdo, facilitando o 
entendimento pelo aluno sobre trechos mais complexos.
Exercício de fixação
Atividades que buscam reforçar a assimilação e fixação dos períodos que o autor/
conteudista achar mais relevante em relação a aprendizagem de seu módulo (não 
há registro de menção).
Avaliação Final
Questionário com 10 questões objetivas, baseadas nos objetivos do curso, 
que visam verificar a aprendizagem do curso (há registro de menção). É a única 
atividade do curso que vale nota, ou seja, é a atividade que o aluno fará para saber 
se pode ou não receber a certificação.
Para (não) finalizar
Texto integrador, ao final do módulo, que motiva o aluno a continuar a aprendizagem 
ou estimula ponderações complementares sobre o módulo estudado.
8
introdução
O processo que engloba Extração, Transformação e Carga (Extract, Transform and Load) é a base 
de um Data Warehouse. Um sistema de ETL (Extract Transform Load), devidamente projetado, 
extrai dados dos sistemas origens, reforça a qualidade dos dados e sua consistência, padroniza 
os dados de modo que as origens separadas podem ser utilizadas em conjunto, e, finalmente, 
proporciona aos dados em um formato pronto para que os desenvolvedores de aplicação (possam 
construir aplicativos de apoio) e usuários finais podem tomar decisões. Assim, este material está 
organizado em torno destas quatro etapas.
Embora a construção de um processo de ETL seja uma atividade que não é muito visível para 
os usuários finais, consome facilmente 70 % dos recursos necessários para a implementação e 
manutenção de um Data Warehouse.
O processo de ETL agrega um valor significativo aos dados. É muito mais do que um garimpo para 
obter dados de sistemas origem para o Data Warehouse.
Suas principais características são:
 » remover erros e corrigir falta de dados na origem;
 » fornecer medições para analisar a confiabilidade dos dados;
 » capturar o fluxo dos dados dos sistemas transacionais;
 » padronizar os dados de múltiplas origens para serem usados em conjunto;
 » estruturar os dados para ser usado em ferramentas de consultas utilizadas pelo 
usuário final. 
ETL é um assunto simples e complicado ao mesmo tempo. A maioria o entende como extrair 
informações da origem e carregar em um DW (Data Warehouse). Mas não é só isso, a maioria dos 
profissionais está cada vez mais valorizando a necessidade de limpar e padronizar os dados ao longodo fluxo de carga. E é evidente que o próximo passo no projeto de rotinas de ETL é quebrar em 
milhares e sub-rotinas, independente de como seja o seu sistema origem, suas regras de negócio e 
seus softwares e aplicativo de geração de relatório. 
objetivos
Com esse material, você será capaz de ampliar seus conhecimentos a respeito dos seguintes temas.
 » Arquitetura de ETL.
 » Decompor o problema em partes que são mais fáceis de gerenciar.
9
 » Aplicar técnicas reutilizáveis de desenvolvimento.
 » Analisar os detalhes com outra perspectiva.
 » Desenvolver um julgamento para evitar retrabalho ou a omissão de recursos 
importantes.
11
unidAdE iCiClo dE VidA dE 
uM Etl
Esta unidade apresenta o objetivo de oferecer o embasamento dos principais conceitos necessários 
para se desenvolver um projeto de ETL tais como planejamento, arquitetura e projeto. 
O principal desafio é construir um projeto de ETL com o melhor custo-benefício, 
confiável, escalável, complacente, visível, seguro e gerenciável para disponibilizar 
dados em um Data Warehouse e fazê-lo disponível para consulta ao usuário final. 
(KIMBALL; RALPH, 2012)
No mercado, alguns profissionais entendem as siglas “E”, “T”, “L” da seguinte forma.
 » “E”: Extrai dados de algum lugar
 » “T”: Faz alguma coisa
 » “L”: Carrega para uma tabela de destino
Parece ser apenas a movimentação de dados de um local para outro, porém a extração pode 
transformar-se, rapidamente, em uma grande e complexa tarefa.
E esses passos são dissolvidos conforme:
 » as origens;
 » as particularidades dos dados;
 » a habilidade da equipe;
 » as ferramentas de consulta e de relatório.
Cuidado!!!
 » Justifique e documente sua “criatividade” nesse processo.
 » Essa abordagem leva ao caos de tabelas, módulos, processos, Scripts, 
Triggers, alertas e agendamento de Jobs.
 » Projeto incremental sem controle geralmente falha.
12
UNIDADE I │ CICLO DE VIDA DE UM ETL
À primeira vista, quando os dados são movidos do sistema origem para o ambiente 
de Data Warehouse, parece que nada além de simples extrações de dados de um 
local para o outro está ocorrendo. Em virtude dessa enganosa simplicidade, muitas 
empresas começaram a construir seu Data Warehouse erroneamente. 
(INMON; BILL, s.d.)
CAPítulo 1
Processos em um projeto de Etl
As etapas de um projeto de ETL são formadas pelas etapas ilustradas na Figura 1 e detalhadas a 
seguir. Essas etapas são usadas para orientá-lo a fim de que você possa tomar as melhores decisões 
arquiteturais no início de um projeto de ETL.
Figura 1. Etapas de um Projeto ETL
Fonte: Kimball; ralph (2004).
levantamento dos tipos de requisitos
Viabilidade do de um projeto de ETL só se torna concreta com todos os requisitos levantados.
 » Necessidades do Negócio - São os requisitos de informação dos usuários finais 
do Data Warehouse. Usamos o termo necessidades de negócio para estreitar o 
conteúdo das informações que os usuários finais precisam para tomar decisões. 
Mas, esse requisito se destina a identificar o extenso conjunto de fontes de 
informação que a equipe de ETL deverá introduzir no Data Warehouse. Observe 
que as necessidades de negócios estão ligadas diretamente à escolha das fontes de 
dados e que o entendimento e constante análise das necessidades do negócio é uma 
atividade central da equipe de ETL.
 » O resultado deste processo é um conjunto de expectativas que os usuários 
adquirem sobre quais dados irão gerar informações para eles. Em muitos casos, 
as entrevistas com os usuários finais e as investigações de possíveis fontes não 
revelam totalmente as complexidades e as limitações de dados. E a equipe de ETL, 
13
CICLO DE VIDA DE UM ETL │ UNIDADE I
muitas vezes, faz descobertas significativas que podem afetar as necessidades 
negócio do usuário final, podendo interferir na expectativa original, descobrindo 
recursos adicionais nas fontes de dados que expandem a capacidade de tomada de 
decisões dos usuários finais.
 » Requisitos de Padrões – São cópias arquivadas de fontes de dados, ciclo de 
vida das transações e seus históricos de mudanças, algoritmos bem-documentados, 
provas de segurança das cópias dos dados pelo tempo.
 » Data Profiling - É uma forma sistemática de examinar qualidade, escopo e 
contexto de uma fonte de dados (exemplo de ferramenta na Figura 2). O uso dessa 
prática pode determinar a complexidade de um sistema de ETL e por consequência 
a sua viabilidade de construção. Pois, quando os dados estão “limpos”, requer 
menos transformação e menor intervenção humana, mas quando estão “sujos”, 
requer eliminação de alguns campos, marcação de falta de dados e criação de 
chaves substitutas (artificiais), substituição automática de valores corrompidos 
(algoritmos inteligentes) e até intervenção humana em nível de registro.
Data profiling emprega métodos analíticos para olhar para os dados com 
a finalidade de desenvolver um conhecimento aprofundado do conteúdo, 
estrutura e qualidade dos dados. Uma boa ferramenta pode processar uma 
grande massa de dados e a habilidade do analista, pode descobrir todos os 
tipos de questões que precisam ser abordadas. 
(OLSON; JACK, s.d.)
Figura 2. Microsoft sQL server 2012 Data Profiling viewer
Fonte: <http://ssis-ssdt.blogspot.com.br/>
14
UNIDADE I │ CICLO DE VIDA DE UM ETL
 » Requisitos de Segurança – Não é recomendada a abordagem de controle de 
informações por usuário diretamente nas estruturas físicas de dados (grants 
diretamente nas tabelas), recomendando-se o uso da abordagem de controle de 
informações baseadas em regras na interface de usuário final (mapas de acessos 
oferecidos pelas ferramentas de OLAP - On-line Analytical Processing). Em relação 
à equipe de ETL, são consideradas boas práticas de projeto criar três ambientes 
distintos: desenvolvimento, homologação e produção, respectivamente. E a 
segurança deve ser estendida aos backups das fontes de dados. Em síntese, existem 
políticas de segurança apropriadas para cada papel de recurso em uma plataforma 
de BI.
 » Integração de Dados – Nem todos os sistemas transacionais de uma companhia 
possuem integração de informações e conceitos, mesmo os que possuem seus 
processos implantados em soluções de sistemas ERP (Enterprise Resource 
Planning) em todas as suas áreas de negócio sempre uma área irá demandar um 
sistema apartado para atender suas necessidades, pois o ERP não atende como um 
todo devido à falta de flexibilidade. Para isso, Kimball criou o conceito de fatos e de 
dimensões padronizado, que será abordado nos Capítulos a seguir.
 » Latência dos Dados – Define a rapidez em que os dados devem ser entregues 
aos usuários finais, afetando, e muito, a definição de arquitetura e influenciando 
a implementação de um sistema de ETL. De certa forma, fluxos de dados 
tradicionais podem ser melhorados atualmente com algoritmos de processamento 
inteligentes, processamento paralelo e com investimento em hardware. Algumas 
vezes, se a latência dos dados é urgente em nível de tempo real, a arquitetura de 
ETL tem que ser convertida de Batch (em pacotes grandes por maior espaço de 
tempo) para Streaming (pacotes menores por menor espaço de tempo). Assim, 
essa troca não é gradual e evolutiva, pois é uma grande mudança de paradigma 
em que quase todas as etapas do pipeline de entrega de dados devem ser 
retrabalhadas. 
 » Arquivamento e Linhagem de Dados – Todos os sistemas de BI (Business 
Intelligence) precisam de armazenamento de dados antigos, seja para comparações 
com dados atuais ou para reprocessá-los em caso de perda. Recomenda-se sempre 
manter os dados antigos arquivados, de forma que seja mais fácil recarregá-los 
do que tentar reprocessá-los através do ETL. E, cada grupo de dados arquivado 
deve conter seus devidos metadados, descrevendo sua origem, quais dados foram 
processados e quais foram os passos utilizados (muitas vezes necessário pelos 
requisitos de conformidade).
 » Interface para os Usuários Finais – Equipe de ETL deve trabalhar em 
conjuntocom a equipe de modelagem e a equipe de aplicação, com o foco em deixar 
as aplicações para o usuário final mais rápidas e simples (mapear exatamente o que 
os usuários finais necessitam).
15
CICLO DE VIDA DE UM ETL │ UNIDADE I
Não é indicado que a aplicação tenha características muito complexas, pois as 
consultas e as navegações ficam extremamente lentas!!!
 » Habilidades Disponíveis – É recomendável que se tenha dentro da equipe, 
profissionais com habilidades avançadas na ferramenta de ETL ou na plataforma 
de desenvolvimento utilizada. 
Isso leva a uma grande questão nos projetos de ETL: codificar o sistema de 
ETL com alguma plataforma de desenvolvimento conhecida ou obter uma 
ferramenta de ETL?
 » Licenças de Legados - Em muitos casos, em um projeto de ETL, a ferramenta 
escolhida para implementação é uma que já se encontra utilizada pela organização 
(que já possui licenças e convivência). Mas, algumas vezes, manter a mesma 
ferramenta pode ser um erro. As ferramentas de ETL evoluem progressivamente 
e certas características podem influenciar os projetos de ETL quanto ao tempo de 
implementação, execução etc.
definição da arquitetura
Nesta etapa, deve-se tomar grandes decisões sobre o modo em que se construirá o sistema de ETL.
 » Utilizar ou não uma ferramenta de ETL – Muitos custos são necessários 
no início de um projeto (pelo menos um servidor de BD [Banco de Dados], um 
servidor de BI, licenças de SGBDs (Sistema de Gerenciamento de Banco de Dados), 
consultores, custo de gerenciamento de rede etc.). É recomendável dar importância 
ao custo de aquisição de uma ferramenta de ETL (pois, comprá-la, certamente 
reduzirá os custos de desenvolvimento e manutenção do DW). 
Para ajudar nessa discussão, Kimball elaborou um artigo sobre o assunto:
<http://www.kimballgroup.com/2008/04/06/should-you-use-an-etl-tool>
A empresa Gartner disponibiliza anualmente estudos sobre diversas tecnologias de 
mercado. E entre eles, há um sobre ferramentas de integração, como exemplo, o 
resultado mais recente ilustrado na figura a seguir.
16
UNIDADE I │ CICLO DE VIDA DE UM ETL
Figura 3. Avaliação das Ferramentas ETL
Fonte: Gartner (10/2012).
 » Escolher tipo de processamento do fluxo de dados – A arquitetura padrão 
de um sistema de ETL é baseada em um batch periódico que extrai dados da origem, 
em que flui pelo sistema e resulta em outro batch que atualiza as informações nas 
tabelas em que o usuário final utiliza. Mas quando uma carga em um DW de tempo 
real se torna necessária em um ambiente informacional, a abordagem por batch não 
se aplica. A alternativa para essa necessidade seria o fluxo de dados por streaming, 
onde o dado no nível de registro flui continuamente do sistema origem para as 
tabelas e telas consumidas pelos usuários. A mudança da abordagem Batch para 
Streaming é uma mudança de paradigma, pois apesar de continuar suportando 
os passos fundamentais de um fluxo de dados (extração, limpeza, conformidade 
e carga), cada um desses passos tem de ser adaptado para o processamento em 
tempo real.
 » Dependência de tarefa horizontal X vertical
 › Um fluxo de tarefa horizontal permite que cada tabela de destino possa ser 
carregada de forma independente. Como exemplo, se há uma tabela de pedidos 
17
CICLO DE VIDA DE UM ETL │ UNIDADE I
e outra de envios, elas serão carregadas de forma independente, e cada uma ou 
as duas podem ser liberadas em tempo previsto ou com atraso. Isso significa que 
os passos de extração, limpeza, conformidade e carga não estão sincronizados 
entre esses dois Jobs.
 › Um fluxo de tarefa verticalmente orientado sincroniza dois ou mais fluxos de 
Jobs separados de modo que, acima de tudo, as cargas das tabelas finais ocorrem 
simultaneamente. Normalmente, as etapas anteriores são sincronizadas, 
especialmente se dimensões em conformidade como cliente ou fornecedor, 
são usadas por mais de um sistema. Assim, todos os Jobs chegam à etapa de 
conformidade e na de carga ou nenhum deles chegarão.
 » Agendamento de tarefas – Uma decisão arquitetural importante de como 
controlar todo o seu sistema de ETL com uma tecnologia de escalonamento 
automatizada. Em um extremo, todos os Jobs serão inicializados digitando-se uma 
linha de comando ou clicando-se em um ícone. E outro extremo, uma ferramenta 
de escalonamento gerencia a execução de todos os Jobs, entende-se quando um 
Job executa com sucesso, espera-se o status de vários sistemas para ser satisfeito 
e conduz a comunicação com supervisores humanos caso haja algum alerta de 
emergência e, finalmente, gera-se um relatório de status.
 » Tratamento de exceções – Não deverá ser uma série randômica de pequenos 
alertas Ad hoc e comentários deixados em arquivos, mas, sim, devem estar em um 
sistema abrangente, tal como mecanismos uniformes para relatar todas as instâncias 
de exceções do processo de ETL em um banco de dados separado com o nome do 
processo, o tempo da exceção, com diagnóstico de severidade, a ação tomada e o 
último status de resolução da exceção. Assim, todo Job deve ser projetado para 
relatar esses registros de exceção gravando em um repositório de dados.
 » Gestão de qualidade – Similarmente, você deve decidir em uma resposta em 
comum para as questões de qualidade que surgem no processamento dos dados. 
Além de provocar um relatório com registros de exceções, todos os problemas de 
qualidade tem que ser gerados um registro de auditoria anexado nos dados dos 
fatos e dimensões. Dados corrompidos ou suspeitos devem ser manipulados com 
um pequeno número de respostas uniformes, tal como preencher dados textuais 
nulos com uma marcação ou fornecer o mínimo de valores numéricos tendenciosos 
que foram corrompidos antes de ser entregue no DW.
 » Recuperação e reinicialização de Jobs – Inicialmente, você precisa construir 
seu sistema de ETL com uma estratégia de recuperação de carga por um termino 
anormal e reiniciar o processo. Jobs de ETL devem ser reentrantes, senão seria 
inacessível realizar atualizações múltiplas de erro. Por exemplo, um Job que subtrai 
uma marca específica, resultando em uma categoria de produto global que não é 
permitida rodar duas vezes. Esse tipo de pensamento necessita reconstruir cada 
18
UNIDADE I │ CICLO DE VIDA DE UM ETL
Job de ETL, pois mais cedo ou mais tarde, a execução desses Jobs terminar-se-ão 
abruptamente ou perder-se-ão mais de uma vez. Em algum lugar, de alguma forma, 
você deve impedir que isso de acontecer.
 » Metadados – Metadados das tabelas de SGBD e das ferramentas de desenho de 
modelagem são facilmente de serem capturados, mas provavelmente compõem 
apenas 25% do metadados que necessários para entender e controlar o sistema. 
Outros 25% são gerados pela etapa de limpeza do ETL. Mas, os maiores desafios 
dos metadados para uma equipe de ETL é como e onde armazenar a informação 
de fluxo de dados. Uma vantagem importante das ferramentas de ETL é que elas 
mantêm os metadados dos fluxos de dados automaticamente. Caso se codifique o 
ETL na mão, é necessário desenvolver seu próprio repositório de metadados.
 » Segurança – Em um ambiente de ETL é menos granular do que o ambiente do 
usuário final. Porém, uma abordagem sistemática para demandas de segurança 
garantem a cobertura das tabelas e cada backup fisicamente e administrativamente 
em um ambiente de ETL. Os datasets mais delicados e importantes devem ser 
orquestrados com relatórios operacionais impressos monitorando cada acesso e cada 
comando realizado por todos os administradores desse ambiente. O log impresso 
deverá ser produzido por uma impressora dedicada fechada em uma sala, que não 
pode ser aberta por nenhuma equipe normal de TI (Tecnologia da Informação). 
O arquivamento desses datasets dever-se-á ser armazenado com checksum para 
garantir que eles não foram alterados.
implementação
Como o foco principal desse material é a implementação de rotinas para cada tabela de fatos e de 
dimensões em que foi ensinado na disciplina de modelagem de dados.Essa etapa será detalhada na 
próxima Unidade, bem como o Teste e a Entrega.
19
CAPítulo 2
Passos de um Etl
descrição de fluxo de dados
Há quatro passos intermediários (ou etapas) presentes na maioria dos DWs, conforme a Figura 
4, a seguir. Ao longo deste material, será admitido que todo processo de ETL irá suportar o DW 
estruturado com esses passos e que o dado é escrito no disco em paralelo com a transferência para 
a próxima etapa.
Figura 4. Fluxo de Dados
Fonte: Kimball; ralph (2004).
Extração
Os dados crus oriundos dos sistemas origens são, geralmente, escritos diretamente no disco, 
com o mínimo de estruturação. Dados de sistemas origens estruturados (como banco de dados 
hierárquicos IMS (Information Management System) ou XML (Extensible Markup Language) 
datasets), geralmente, são escritos em um flat file ou em tabelas relacionais nessa etapa. Isso permite 
que a extração original seja simples e rápida quando possível e permite grande flexibilidade para 
reiniciar a extração se houver uma interrupção. Inicialmente, capturam-se os dados que podem ser 
lidos várias vezes quanto necessários para suportar as etapas sucessoras. Em alguns casos, os dados 
capturados são removidos após a conclusão da etapa de limpeza, e, em outros casos, os dados são 
mantidos em backup de arquivo em longo prazo. A captura inicial dos dados pode ser armazenada 
em pelo menos em um ciclo de modo a que as diferenças entre as extrações sucessivas podem ser 
computadas. Foram guardadas as transformações de conteúdo severas para a etapa de limpeza e 
conformidade, mas o melhor lugar para resolver certos problemas de formatos dos dados legados 
é nessa etapa. Os problemas de formatações incluem resolver grupos repetidos, redefinir colunas 
sobrecarregadas e também realizar conversões de baixo nível como converter bit em caractere, 
EBCDIC (Extended Binary Coded Decimal Interchange Code) para ASCII (American Standard 
Code for Information Interchange) e decimal para inteiro.
20
UNIDADE I │ CICLO DE VIDA DE UM ETL
limpeza
Na maioria dos casos, o nível aceitável de qualidade dos dados para os sistemas origens é diferente 
dos requisitos de qualidade de um DW. O processamento de Data Quality pode envolver muitos 
passos discretos, incluindo validação de valores (o CEP [Código de Endereçamento Postal] está 
presente e está no intervalo correto?), assegurar consistência sobre os valores (o CEP é daquela 
cidade?), remover duplicados (o mesmo consumidor aparece duas vezes com poucos atributos 
diferentes) e verificar se as regras e procedimentos complexos de negócios foram aplicados (os 
clientes platinum tiveram o status de extensão de credito associada?). A transformação de dados 
pode ainda envolver intervenção humana e exercitar o julgamento sobre alguma regra. Os resultados 
dessa etapa são frequentemente armazenados de forma quase permanente, visto que os requisitos 
de transformações são irreversíveis normalmente possuem diversas regras.
Além disso, um pergunta interessante que emerge nesses ambientes é se o dado limpo pode ser 
realimentado para os sistemas origens de forma a reduzir a necessidade de processar o mesmo 
problema no dado várias vezes em cada extração. Mesmo que os dados não possam ser realimentados 
fisicamente para o sistema origem, as exceções devem ser reportadas para construir um caso para 
melhoria no sistema origem. Essas questões de dados são também importantes para a comunidade 
de usuários finais de BI.
Conformidade
A Conformidade de Dados é necessária quando dois ou mais sistemas origens são integrados no 
DW. Origens de dados separadas não podem ser consultadas juntas ao menos que alguns ou todos 
os rótulos textuais dessas origens fora feito identicamente e ao menos medidas numericamente 
similares tenham sido matematicamente fracionadas para que diferentes taxas entre essas medidas 
façam sentido. A Conformidade de Dados é um passo significativo considerado mais do que uma 
simples limpeza de dados. Apresenta como premissa, um acordo global da organização para utilizar 
domínios e medidas padronizadas.
Carga
A questão da camada back room é transformar os dados prontos para consulta. O último e crucial 
passo é fisicamente estruturar os dados em uma séria de esquemas simples e simétricos conhecidos 
como modelos dimensionais ou modelos estrela. Esses modelos reduzem significativamente 
o tempo de uma query e simplifica o desenvolvimento de uma aplicação. Modelos dimensionais 
são requisitos de muitas ferramentas de consultas e esses modelos são a base da construção de 
cubos OLAP. 
Para obter mais informações de tratamentos sobre modelagem dimensional, tenha 
como referência o livro Data Warehouse Toolkit, Second Edition (WILEY, 2002).
21
unidAdE iiEXtrAção dE 
dAdoS
Esta Unidade se destina ao auxílio na decisão de utilizar ou não uma área de Staging, e sua 
estruturação e planejamento. E, também, nas possíveis técnicas de extrações de dados de diversos 
sistemas origens para prover subsídio às etapas de transformação e de conformação de dados da 
área de Back Room.
A estrutura de dados primária para um sistema de banco de dados será revisada, iniciando-se 
a análise em camada de Staging, para as necessidades transiente e permanente. Deve-se ser 
especialmente aplicado em apoiar os requisitos financeiros e legais. Nesse caso, não ocorre apenas 
o processo de armazenamento dos dados, mas também há a obrigatoriedade de documentar as 
regras pelas quais o dado foi criado. Se isso não for suficiente, dever-se-á provar que o dado não 
foi adulterado.
O passo de extração do ETL será destacado para estudo e será necessário o aprofundamento desse 
passo, a fim de observar-se se aquela extração poderá ser relevante. Há a opção de realiza-la ou 
não com a ferramenta de Data-Profiling, que irá revelar se os dados estão com qualidade suficiente 
para atender o objetivo do negócio. O próximo grande passo será criar um mapa lógico de dados que 
conecta os dados do sistema origem aos dados finais documentando suas regras de transformações. 
Obrigando-se a manter esse documento conforme ocorrência de uma nova alteração, tornando a 
descrição mais valiosa do seu sistema de ETL.
CAPítulo 1
Estrutura de dados
A área de Back Room de um DW tem sido chamada frequentemente de área de Stage. Staging, nesse 
contexto, significa escrita em disco e, no mínimo, é recomendado dado staging nos quatros passos 
do fluxo de dados. A equipe de ETL necessitará de diferentes estruturas de dados para atender a 
todas as necessidades legítimas de staging. Assim, o objetivo deste Capítulo é descrever todos os 
tipos de estruturas de dados que, provavelmente, se possa precisar.
22
UNIDADE II │ EXTRAÇÃO DE DADOS
To stage or not to stage?
A decisão de armazenar os dados em uma área de stage física versus o processamento em memória 
é a escolha fundamental de um arquiteto do ETL. A habilidade desenvolver um processo de ETL 
eficiente depende em até certo ponto na capacidade de determinar o equilíbrio entre I/O (Input/
Output) físico e processamento em memória.
O desafio de alcançar esse delicado equilíbrio entre físico e memória em um processo de ETL é uma 
tarefa que deve ser avaliada com o objetivo de criar um processo otimizado. 
Os questionamentos de se criar ou não uma área de stage dependem de dois objetos conflitantes:
 » obter os dados da fonte de origem para o destino final o mais rápido possível;
 » ter a capacidade de recuperar-se de falha sem reiniciar desde o início do processo.
A decisão de estagiar dados varia de acordo com o seu ambiente e requisitos de negócio. Se você 
pretende fazer todo o processamento de dados em memória, tenha em mente que cada Data 
Warehouse, independentemente de sua arquitetura ou ambiente, inclui uma área de stage de 
alguma forma ou de outra.
Considere as seguintes razões para estagiar os dados antes de serem carregados para o Data 
Warehouse:
 » Recuperabilidade – Na maioria dos ambientes corporativos, é uma boa 
prática estagiar os dadosassim que eles forem extraídos do sistema origens e, 
em seguida, novamente, imediatamente após cada um dos passos importantes 
de transformação, assumindo que, para um quadro especial, os passos de 
transformação são significativos. Estas tabelas de staging (em um sistema de 
banco de dados ou arquivo) servem como pontos de recuperação. Ao implementar 
essas tabelas, o processo não terá que invadir o sistema fonte novamente se as 
transformações falharem. Além disso, o processo não terá de transformar os dados, 
caso o processo de carregamento falha. Quando estagiar dados é puramente para 
fins de recuperação, os dados devem ser armazenados em um arquivo sequencial no 
sistema de arquivos, em vez de em um banco de dados. Staging para recuperação 
é especialmente importante quando se extrai a partir de sistemas operacionais que 
substituem seus próprios dados.
 » Backup – Muitas vezes, o enorme volume de dados impede que o Data Warehouse 
de ser backup confiável no patamar de banco de dados. Já ocorreram catástrofes 
documentais que poderiam ter sido evitados se apenas os arquivos de carga fossem 
salvos, comprimidos e arquivados. Se as tabelas de teste estão no sistema de 
arquivos, elas podem facilmente ser compactadas em um espaço muito reduzido e 
guardadas em sua rede. Então, se você precisar recarregar o Data Warehouse será 
suficiente simplesmente descompactar os arquivos de carga e recarregá-los.
23
 EXTRAÇÃO DE DADOS │ UNIDADE II
 » Auditoria – Muitas vezes, a linhagem de dados entre a fonte e de destino é perdida 
no código de ETL. Quando chega a hora de auditar o processo de ETL, tendo 
estagiados os dados, fazer auditoria entre as diferentes partes dos processos de ETL 
é muito mais simples porque os auditores (ou programadores) podem simplesmente 
comparar o arquivo de entrada original com as regras de transformação lógicas 
contra o arquivo de saída. Essa staging de dados é especialmente útil quando o 
sistema de origem substitui sua história. Quando as perguntas sobre a integridade 
da informação nos dias de superfície de armazenamento de dados ou mesmo 
semanas após um evento ocorreu, revelando a encenado extrair dados a partir do 
período de tempo em questão pode restaurar a confiabilidade do Data Warehouse. 
Uma vez que se decidiu estagiar pelo menos alguns dos dados, deve-se resolver 
sobre a arquitetura apropriada de sua área de stage. Como é o caso com qualquer 
outro banco de dados, se a área de stage de dados não é planejada cuidadosamente, 
ele irá falhar. Projetar área de stage de dados corretamente é mais importante do 
que projetar as aplicações habituais por causa do grande volume de área de stage de 
dados (às vezes, fica maior do que o Data Warehouse em si). 
Projetando a área de stage
A staging area de dados armazena em seu caminho para a área de apresentação final do Data 
Warehouse. Às vezes, os dados na área de stage são preservados para apoiar funcionalidades que 
requerem histórico, enquanto outros dados são eliminados com cada processo. Quando o histórico é 
mantido na área de stage, esta é, muitas vezes, referenciada como uma área de stage persistente. 
Quando os dados são removidos em cada carga, a área é considerada transitória. É perfeitamente 
válida para a área de stage de dados, ser um híbrido, composto por uma mistura de tabelas staging 
persistentes e transitórias.
Certifique-se do uso apropriado da área de stage, visto que este desempenha vários 
papéis nas operações contidas em um Data Warehouse. Há mais papéis no stage do 
que apenas construir os arquivos temporários para apoiar a execução do próximo 
Job. Um determinado arquivo temporário também pode ser usado para reiniciar o 
fluxo de Jobs se um problema grave acontecer. O arquivo pode ser uma forma de 
auditoria ou prova de que os dados tinham um conteúdo específico, quando foi 
processado.
Independentemente da persistência dos dados na área de stage, algumas regras básicas deverão 
ser seguidas quando a área de stage for projetada e implantada. As seguintes regras têm a 
mesma premissa para todos: Quem não compuser a equipe de ETL, deverá afastar-se! Deverão 
ser estabelecidas e praticadas as seguintes regras para que o projeto de Data Warehouse seja 
bem-sucedido.
 » A área de stage deve pertencer à equipe de ETL. O acesso à área de stage de 
dados, e todos os dados dele, é vedado para qualquer pessoa que não seja a equipe de 
24
UNIDADE II │ EXTRAÇÃO DE DADOS
ETL. A área de stage de dados não é projetado para a apresentação. Não há índices 
ou agregações para apoiar a consulta na área de stage. Não existem quaisquer 
acordos de nível de serviço para acesso a dados ou a consistência na área de stage. 
Todos estes requisitos de acesso de dados são tratados na área de apresentação.
 » Os usuários não são permitidos na área de stage, por qualquer motivo. 
Dados na área de stage devem ser considerados uma área de canteiro de obras. 
Permitir o acesso de pessoas não autorizadas na área pode causar problemas. 
Usuários curiosos com acesso à área de stage, podem muitas vezes, utilizar 
indevidamente os dados, e com isso, podem reduzir a percepção da integridade do 
Data Warehouse.
 » Relatórios não podem acessar os dados da área de stage. A área de stage de 
dados é um local de trabalho. As tabelas são adicionadas, removidas ou modificadas 
pela equipe de ETL sem notificar a comunidade de usuários. Este conceito não 
significa que a área é liberada com as tabelas sendo adicionadas, removidas, e 
modificada por programadores à vontade. No entanto, isso não significa que 
a área seja destina a ser uma bancada de trabalho, não é um caso de exibição. A 
área é um ambiente controlado, ou seja, as modificações nas tabelas na área de 
stage em produção devem passar pelo mesmo ciclo de vida de tabelas na camada 
de apresentação de Data Warehouse. No entanto, ao contrário das alterações das 
tabelas de produção do DW , tabelas de dados staging podem ser alterados sem 
que os usuários sejam notificados, quebrando relatórios que possam estar usando 
a tabela alterada. Assim, não permita que quaisquer relatórios sejam direcionados 
para a área de stage, mesmo quando tais apontamentos sejam temporários.
 » Apenas processos de ETL podem ser lidos e escritos na área de stage. 
Cada Data Warehouse exige conjuntos de dados que não possuem uma fonte externa 
convencional, como uma tabela de tipos de status de qualidade de dados. Quando 
o Data Warehouse requer dados que não existem em qualquer ambiente de banco 
de dados externo existente, no entanto, ele tem que vir para a área de staging de 
dados como outros dados. É importante compreender que a área de stage de dados 
não é um ambiente transacional e que não se deve permitir que os dados sejam 
inseridos manualmente. Se as tabelas manuais devem ser mantidas, um aplicativo 
deve ser desenvolvido fora da área de stage de dados, e os dados resultantes devem 
ser fornecidos para a equipe de ETL e incorporado à área de stage por meio de um 
processo de ETL.
O grupo de ETL é dono da área de stage de dados. Isso significa que o arquiteto de ETL projeta as 
tabelas dentro dela e decide se uma tabela pertence ao banco de dados ou, com base nos requisitos 
de seus respectivos processos de ETL, é mais adequado para o sistema de arquivos. 
Quando a área de stage é inicialmente configurada, o arquiteto de ETL deve fornecer à equipe 
de administradores de banco de dados (DBA) e os administradores de sistema operacional com 
uma medida geral de armazenamento de dados da área de stage para que eles possam estimar as 
25
 EXTRAÇÃO DE DADOS │ UNIDADE II
alocações de espaço e configurações de parâmetros para o banco de dados de staging, arquivo de 
sistemas e estruturas de diretório.
Figura 5. Planilha volumétrica das tabelas da área de stage
Fonte: Kimball; ralph (2004).
A Figura 5 demonstra um exemplo da planilha de volumetria de uma staging area, concentrando-se 
nas tabelas entregues no final do fluxo de dados de ETL. Um sistema de rastreamentovolumétrico 
completo teria planilhas semelhantes para cópias de dados de origem e os arquivos de staging que 
se seguiram às etapas de limpeza e conformidade.
A planilha de volumetria lista cada tabela na área de stage com as seguintes informações.
 » Nome da tabela – O nome da tabela ou do arquivo na área de stage. Há uma linha 
na planilha para cada tabela de staging.
 » Estratégia de atualização – Esse campo mostra como a tabela é mantida. Se 
for uma tabela staging persistente, ela terá dados acrescentados, atualizados e 
talvez removidos. Uma staging temporária são truncadas e recarregadas com cada 
processo.
 » Frequência de carga – Mostra com que frequência a tabela é carregada ou 
alterada pelo processo de ETL. Quase frequentemente, isso é diário, mas pode ser 
semanal, mensal ou qualquer outro intervalo de tempo. Em ambiente em tempo 
real, tabelas na área de stage podem ser atualizadas constantemente.
26
UNIDADE II │ EXTRAÇÃO DE DADOS
 » ETL Job(s) – Tabelas de staging são preenchidas ou atualizadas via Job de ETL. 
O Job de ETL é o Job ou programa que afeta a tabela stage ou arquivos. Quando 
muitos Jobs afetam uma única tabela stage, deverão ser listados todos os Jobs nesta 
seção da planilha.
 » Contagem inicial de linhas – A equipe de ETL deve estimar a quantidade de 
linha que cada tabela da área de stage deverá conter inicialmente. A contagem 
inicial é baseada inicialmente nas linhas das tabelas origens e/ou destino.
 » Tamanho médio de uma linha – Com o propósito estimar tamanho do banco 
de dados que irá armazenar os dados da área de stage, você deve fornecer ao DBA 
o comprimento médio de linha de cada tabela de staging. Em um ambiente Oracle, 
cria-se a tabela em um ambiente de desenvolvimento, executam-se estatísticas, e 
reúnem-se essas informações da tabela sys.all_tables. Por exemplo, no Oracle, o 
pacote STATS DBMS pode ser usado para preencher as colunas com estatísticas 
adequadas.
 » Crescer com – Mesmo que tabelas são atualizadas em um intervalo programado, 
elas não crescem necessariamente cada vez que são tocadas. O campo “Crecer Com” 
é baseado em regras de negócio. É necessário definir-se quando cada tabela na área 
de stage cresce. Por exemplo, uma tabela de status cresce à medida que um novo 
status é adicionado. Embora a tabela seja tocada diariamente para procurar por 
alterações, a adição de novos status é bastante rara.
 » Linhas mensais esperadas – Esta estimativa é baseada no histórico e em regras 
de negócios. A previsão de crescimento é necessária para o DBA para alocar espaço 
apropriado para a tabela. A contagem mensal de linhas é um alicerce para calcular 
quantos bytes a tabela cresce a cada mês.
 » Bytes esperados mensalmente – É uma conversão das Linhas mensais 
esperadas.
 » Tamanho inicial da tabela – É geralmente representada em bytes ou em 
megabytes. É uma conversão da contagem inicial de linhas.
 » Tamanho estimado em 6 (seis) meses - Uma estimativa de tamanho de tabela 
depois de seis meses de atividade ajuda a equipe de DBA a estimar o crescimento do 
banco de dados de ou sistema de arquivos da staging. Essa medição é normalmente 
representada em megabytes.
27
CAPítulo 2
técnicas de extração
Uma vez que seu projeto de Data Warehouse é lançado, percebe-se que a integração de todos os 
sistemas díspares em toda a empresa é o verdadeiro desafio para a obtenção do Data Warehouse 
para um estado em que ele é utilizável. Sem os dados, o Data Warehouse é inútil.
O primeiro passo da integração é extrair dados com sucesso dos sistemas de fontes primárias. Cada 
fonte de dados tem o seu conjunto específico de características que precisam ser geridas de forma a 
extrair dados de forma eficaz para o processo de ETL.
Como as empresas evoluem, eles adquirem ou herdam vários sistemas de computador para ajudar 
a empresa a gerir os seus negócios, onde a lista de sistemas pode ir e ir aumentando. Pior ainda, 
não são apenas os sistemas separados e adquiridos em épocas diferentes, mas muitas vezes eles são 
logicamente e fisicamente incompatíveis.
O processo de ETL precisa efetivamente integrar os sistemas que são diferentes.
 » Sistemas Gerenciadores de Bancos de Dados
 » Sistemas Operacionais
 » Hardware
 » Protocolos de Comunicação
Antes de iniciar a construção de seus sistemas de extração, você precisa de um mapa de dados lógico 
que documenta a relação entre os campos da fonte original e campos de destino final das tabelas que 
você irá entregar para o front-end. 
Há quinze anos, pensava-se que o Data Warehouse era imutável: a enorme biblioteca de dados 
write-once. Com o benefício de muita experiência nos anos seguintes, sabe-se agora que Data 
Warehouses precisam constantemente ser atualizados, corrigidos e alterados. 
Parte 1: mapeamento lógico de dados
A implementação física pode resultar em uma catástrofe se não for cuidadosamente arquitetado 
antes de ser implementado. Assim como com qualquer outro tipo de construção, dever-se-á realizar 
um planejamento eficiente antes de iniciar qualquer ação.
28
UNIDADE II │ EXTRAÇÃO DE DADOS
Antes de começar a desenvolver um único processo ETL, é necessário certificar-se de que há 
a documentação necessária para o processo de conformidade lógica e física com as políticas 
estabelecidas de ETL, procedimentos e padrões.
O mapa de dados lógico descreve a relação entre os pontos extremos de partida e os pontos extremos 
de destino do seu sistema de ETL.
Projetando o lógico antes físico
Introduzir-se diretamente no mapeamento de dados físicos desperdiça tempo e exclui a 
documentação. Esta seção descreve como desenvolver o processo ETL lógico e usá-lo para mapear 
sua implementação física de ETL. Os seguintes passos deverão ser realizados antes de iniciar 
qualquer desenvolvimento físico ETL.
1. Possuir um plano – O processo de ETL deve ser planejado de forma lógica 
e documentado. O mapa de dados lógico é fornecido pelo arquiteto de Data 
Warehouse e é a especificação para a equipe de ETL para criar os Jobs do ETL 
físico. Este documento, às vezes, é referido como o relatório de linhagem de dados. 
O mapa lógico de dados é a base dos metadados, que é eventualmente apresentado 
aos testadores de garantia de qualidade (Quality Assurance - QA) e, finalmente, 
para os usuários finais, para descrever exatamente o que é feito entre o sistema 
fonte final e Data Warehouse.
2. Identificar fonte de dados candidata – Começando com os objetivos de 
negócios de mais alto nível, identificar as possíveis fontes de dados dos candidatos 
que poderão apoiar as decisões necessárias para a comunidade de negócio. 
Identificar também nessas fontes elementos de dados específicos que se acredita 
serem fundamentais para os dados do usuário final. Estes elementos de dados são, 
então, as entradas para o passo de perfil de dados.
3. Analisar os sistemas fonte com uma ferramenta de perfilamento de 
dados (Data Profiling) – Dados nos sistemas fonte devem ser examinados 
para a qualidade dos dados, integridade e aptidão para o efeito. Dependendo da 
sua organização, a qualidade dos dados pode ou não cair sob a responsabilidade 
da equipe de ETL, mas este passo de perfilamento de dados deve ser realizado por 
alguém com um olho para as necessidades dos tomadores de decisões que irão 
utilizar o Data Warehouse. Os dados em cada sistema origem devem ser analisados. 
Qualquer anomalia de dados detectada deve ser documentado, e os esforços devem 
ser feitos para aplicar regras de negócio adequadas para corrigir os dados antes 
de serem carregados para o Data Warehouse. Deverá permanecer em aberto a 
possibilidade de que o projeto pare com essa etapa! Se os dados não podem apoiar 
os objetivos de negócio, este é o tempo para descobrir isso.
29
 EXTRAÇÃO DE DADOS │ UNIDADE II
4. Definir linhagem de dados e regras de negócio – Uma vez que as fontes 
de dados foram qualificadas pelo passo de perfilamento de dados e o modelo de 
dados de destino final é entendido, o arquiteto de Data Warehouse eo analista 
de negócios devem direcionar o arquiteto e os desenvolvedores de ETL por meio 
da linhagem de dados e as regras de negócio para extrair, transformar e carregar 
as áreas do Data Warehouse. Compreensão completa da linhagem de dados e 
regras de negócio não será alcançada até que a equipe de ETL tenha encontrado 
todas as realidades nos dados; no entanto, esta etapa tem como objetivo 
transferir conhecimento, tanto quanto possível para a equipe de ETL. No passo 
de perfilamento de dados deve ser criado duas subcategorias de regras de negócio 
específicas de ETL:
 › alterações necessárias aos dados durante as etapas de limpeza;
 › coerções nas dimensões e fatos para alcançar a conformidade padrão em fontes 
de dados separados.
5. Definir o modelo físico do DW – A equipe de ETL deve entender 
completamente o modelo de dados físico do Data Warehouse. Esse entendimento 
inclui conceitos de modelagem dimensional. Compreender os mapeamentos de 
forma tabela-por-tabela não é bom o suficiente. A equipe de desenvolvimento 
deve ter um entendimento completo de como as dimensões, fatos e outras 
tabelas especiais no modelo dimensional trabalhem juntos para implementar 
soluções ETL de sucesso. É importante lembrar-se de que o principal objetivo 
do sistema de ETL é entregar os dados de forma mais eficaz para as ferramentas 
do usuário final.
6. Validação de cálculos e fórmulas – Verifique com os usuários finais quaisquer 
cálculos especificados na linhagem de dados. É útil para certificar se os cálculos 
estejam corretos antes de gastar tempo de codificação dos algoritmos errados em 
seu processo de ETL.
detalhando o mapeamento lógico de dados
Antes de detalhar as diferentes fontes que você vai encontrar, precisa-se explorar o desenho atual 
do documento de mapeamento lógico de dados (Figura 6). O documento contém a definição de 
dados para os sistemas fonte do Data Warehouse de toda a empresa, o modelo dados para Data 
Warehouse-alvo e a manipulação exata dos dados necessários para transformá-lo a de seu formato 
original para seu destino final.
30
UNIDADE II │ EXTRAÇÃO DE DADOS
Figura 6. Mapeamento lógico dos dados
Fonte: Kimball; ralph (2004).
Algumas ferramentas de ETL e de Modelagem de dados (Por exemplo: ERWin, Power Designer, 
EA etc.) possuem funcionalidades para registrar o mapeamento lógico, tendo como boas práticas 
documentar tudo no mesmo repositório.
Não subestimar o tempo para entendimento dos dados das fontes – extremamente 
necessário (dados e sistemas).
Fases da análise das fontes de dados
O mapeamento lógico dos dados não pode existir até que os sistemas de fontes sejam identificados 
e analisados. A análise do sistema fonte é geralmente dividida em duas fases principais:
Fase de descoberta dos dados
Depois de entender o que o destino tem de se parecer, é preciso identificar e analisar as fontes de 
dados se atentando com os tópicos a seguir.
 » Geralmente apenas o “maior sistema” é identificado com fonte de dados (ex.: ERP, 
CRM - Customer Relationship Management).
31
 EXTRAÇÃO DE DADOS │ UNIDADE II
 » Algumas vezes, alguns sistemas escolhidos como fonte não são realmente as 
melhores origens dos dados.
 » É de responsabilidade da Equipe de ETL descobrir requisitos de dados, determinando 
exatamente quais serão as bases, tabelas e atributos que farão parte do processo de 
ETL (análises completas podem salvar muito tempo do projeto).
 » É necessário listar e documentar todos os sistemas fonte com artefatos (ex.: 
notas de entrevistas, relatórios, modelos ER – Entidade Relacionamento etc.).
 » É fundamental identificar “Quem usa esses dados na organização?” – mapeamento 
de usuários x fontes de dados.
 » É de responsabilidade da equipe de ETL sempre rastrear os possíveis sistemas fonte 
na organização.
Tracking report (monitoramento de sistemas-fonte)
Monitorar os sistemas-fonte por meio da planilha (Figura 7). Mantê-los é atividade conjunta da 
equipe de ETL com os ADs – Administradores de Dados (servirá para fases futuras do DW).
Figura 7. relatório de rastreamento dos sistemas Fonte
Fonte: Kimball; ralph (2004).
System-of-Record: Sistema de registros principal da empresa (transacional), geralmente é uma fonte 
de dados (ex.: ERP) mandatória para aquele Data Mart. Assim, é necessário lidar com o “mesmo 
dado” duplicado, movimentado, manipulado em diversos sistemas fonte, algumas vezes identificar 
bases de dados ou nome de arquivos não é trivial (depende da arquitetura dos sistemas legados). É 
recomendável verificar também se algum esforço para integração dos dados dos sistemas fonte já 
foi feito, tais como:
 » levantar informações de quais fontes foram utilizadas, o processo, regras de negócio 
envolvidas, motivo de possíveis falhas do projeto;
32
UNIDADE II │ EXTRAÇÃO DE DADOS
 » analisar os sistemas fonte: entender o seu conteúdo;
 » aquisição de modelo de ER (se for baseado em banco relacional);
 » considerar o uso de Engenharia Reversa para obter o modelo físico da base;
 » procurar por descrições de alto nível dos bancos de dados, tabelas e colunas (atributos);
 » Data Profiling Identificar as chaves primárias e as chaves naturais da fonte.
 › Identificar os tipos de dados e seus ranges.
 › Identificar os relacionamentos entre as tabelas (levar em consideração falta de 
FK físico).
 › Identificar os relacionamentos implícitos na tabela (look-up table). Ex.: Na tabela 
Pedido existe o atributo NomeProduto (mesmo existindo a chave estrangeira 
ProdutoId).
 › Identificar cardinalidade dos relacionamentos (1:1, 1:N, N:M).
 › Procurar por atributos com mesmo nome em tabelas diferentes.
Análise do conteúdo dos dados
Compreendendo o conteúdo dos dados é crucial para determinar a melhor abordagem para a 
recuperação. Normalmente, não é até que se inicie o trabalho com os dados que, ao analisa-los, irá 
perceber as anomalias que existem nela. As anomalias mais comuns que se devem incluir são as 
seguintes.
 » Valores nulos: importante identificar onde existem.
 » Se forem FK atentar para as junções: utilizar OUTER JOIN (INNER JOIN causará 
perda de dados!);
 » Sempre que possível utilizar valores padronizados para os campos nulos (descrição 
de negócio para ser nulo).
 » É importante verificar se existem dados de data/hora em colunas que não são do 
tipo DATE (ou DATETIME).
 » Muitos sistemas legados implementam as datas através de campos STRING.
 » É necessário verificar os formatos diferentes das datas: parte importante de qualquer 
DW, o tempo! (ex.: “13-JAN-11”, “13/01/2011”, “January, 13, 2011”).
 » Atentar para configurações de região (Regional Settings).
33
 EXTRAÇÃO DE DADOS │ UNIDADE II
Coleta de regras de negócio
Você pode pensar que nesta fase do processo que todas as regras de negócio devem ter sido colhidos. 
Como poderiam os modeladores de dados criarem um modelo de dados sem conhecer todas as 
regras de negócio, certo? Errado. As regras de negócio necessárias para a equipe de modelagem de 
dados são bastante diferentes daquelas exigidas pela equipe de ETL. Por exemplo, a definição da 
dimensão do estado de modelagem de dados pode ser algo como:
 » não se basear apenas nas regras mapeadas pelos ADs;
 » geralmente o nível de descrição das regras de negócio é muito mais detalhado para 
a equipe de ETL;
 » além da descrição da coluna, é necessário saber como estão os dados e que regras 
foram aplicadas durante o input;
 » regras de negócio para o ETL são mais técnicas;
 » ao descobrir anomalias nos dados é importante documentar, levantar como eles 
devem ser levados para o DW (aprovado pelo responsável).
integração de fontes heterogêneas
Mais que coletar dados e uni-los no mesmo repositório, o objetivo é sempre conformar entidades 
(dimensões) em prol do negócio da organização, unificando os seus conceitos. Com isso, garante-se 
o sucesso do projeto de DW.
Uma boa prática ao carregar dados na Staging, sempre indicar de qual(is) sistema(s) 
aquele registro está vindo!!!Extração de dados modificados
Durante a carga inicial, capturar alterações no conteúdo dos dados na fonte é importante porque é 
mais provável extrair a fonte de dados inteira ou uma porção a partir de um determinado ponto no 
tempo incrementalmente. Com isso, deve-se atentar aos seguintes itens.
 » Uma vez que a extração inicial é completa, capturar as mudanças nas fontes se torna 
prioridade.
 » Não é uma tarefa trivial - Necessário planejamento de estratégia de captura 
de mudanças incrementais por meio de pesquisa de comportamento da fonte 
(dependendo das situações específicas).
 » Nunca assumir o uso de uma coluna sem verificar seus dados!
34
UNIDADE II │ EXTRAÇÃO DE DADOS
 » “Manutenção do DW” significa manter os dados atualizados.
 » Escolher da técnica de detecção de mudança dependerá das características de 
acesso, modelagem, indexação das tabelas nos banco de dados fonte.
técnicas de detecção de dados modificados
Existem várias maneiras de capturar alterações nos dados de origem e todas elas são eficazes, 
dependendo do modo como o sistema origem foi desenhado.
 » Utilização de colunas de auditoria
 › Geralmente colunas adicionadas no “final” das tabelas (CreateDate e 
LastModified).
 › Valores podem ser inseridos/atualizados através de triggers ou sistema.
 › Necessário analisar e testar os valores dessa coluna.
 › Quando o sistema for NULL (CreateDate), melhor escolher outra técnica.
 › Importante ter cuidado quando o sistema for responsável pela atualização desse 
campo e existir a possibilidade de execução de script “por fora”: alto risco.
 › Nesse caso, estipular procedimento de comunicação dos scripts executados.
 › Lógica: comparar a última data de modificação com o que existe no Staging.
 › Caso a última data de modificação seja nula, forçar valor de referência. Ex.: select 
max (greatest( nvl( create_date, ‘01-JAN-0001’), nvl( last_mod_date, ‘01-JAN-
0001’))).
 › Nos casos em que os registros das tabelas-fato nunca sejam alterados, ignorar a 
coluna de última modificação.
 › Criar uma tabela onde existam as informações de cada extração, de cada tabela e 
a data do último registro extraído.
 » Utilização de arquivos de Log de bases
 › O Log guarda todas as transações efetuadas na base de dados.
 › Tomar cuidado com essa abordagem, pois muitas vezes a política de “purga” 
efetuada pelos DBAs pode levar à perda das informações.
35
 EXTRAÇÃO DE DADOS │ UNIDADE II
 › É recomendável utilizar as funcionalidades que algumas ferramentas de ETL 
possuem para leitura de arquivos Log (não ler o arquivo como texto diretamente).
 » Extrações “Temporais”
 › Selecionar todos os registros com CreateDate ou LastModified maior que 
SYSDATE-1.
 › Abordagem “perigosa”: pode levar a duplicação de dados, principalmente caso 
alguma falha ocorra durante o último processamento.
 › Utilizada quando o volume de dados é muito pequeno e/ou há tratamento mais 
elaborado de dados duplicados.
 » Processo de Eliminação
 › Preserva exatamente a cópia de toda a (Staging Area) carregada na última 
extração.
 › O processo compreende as tabelas fonte inteiras e realiza a comparação com a 
última carregada na base.
 › Não é a abordagem mais eficiente, mas é a mais segura/confiável.
 › Comparação entre tabelas novas e anteriores registro a registro.
 › Considerar a utilização de BULK COPY.
 » Extração Incremental e Inicial
 › Utilizar tabelas: ExtraçãoAnterior e ExtraçãoCorrente.
 › Inicialmente, carregue tudo na ExtraçãoCorrente (*).
 › Quando o processo de extração finalizar, renomear o ExtraçãoCorrente para 
ExtraçãoAnterior e limpar a ExtraçãoCorrente.
 › (*) Selecionar a ExtraçãoCorrente MINUS ExtraçãoAnterior dará todos os 
registros modificados.
 › MINUS pode ser uma operação muito demorada: considerar componentes 
existentes nas ferramentas de ETL.
36
UNIDADE II │ EXTRAÇÃO DE DADOS
dicas para extração
 » Utilizar colunas da fonte com índices
 › Avaliar com o DBA que as colunas utilizadas na cláusula WHERE possuem 
índice (caso contrário às consultas podem provocar FULL SCAN).
 » Recuperar apenas os dados necessários
 › Otimizar consultas para descartar dados desnecessários.
 » Utilizar DISTINCT moderadamente
 › Verificar qual melhor estratégia: efetuar o DISTINCT na consulta ou trazer todos 
os dados e agregá-los na AS.
 » Utilizar UNION, MINUS, INTERSECT moderadamente
 › Operações de conjunto (SET OPERATIONS) tem custo alto. Levar em 
consideração o uso de UNION ALL ao invés de UNION.
 » Forçar utilização de índice quando necessário
 › Na consulta, utilizar HINT para forçar o emprego de índice, sobretudo quando 
IN ou OR for utilizado na cláusula WHERE.
 » Evitar o uso de NOT
 › A maioria dos SGBDs acaba efetuando um FULL TABLE SCAN quando NOT ou 
<> é utilizado.
 » Evitar o uso de funções na cláusula WHERE
 › Tentar empregar palavras-chave em comparações. LIKE ‘J%’ em vez de 
SUBSTR(‘LAST_NAME’,1,1 ) = ‘J’
 › EFF_DATE BETWEEN ‘01-JAN-2002’ AND ‘31-JAN-2002’ em vez de TO_
CHAR(EFF_DATE, ‘YYY-MON’ ) = ‘2002-JAN‘.
O objetivo final das consultas de Extração é coletar todas as chaves naturais e 
medidas relevantes.
37
 EXTRAÇÃO DE DADOS │ UNIDADE II
detecção de registros excluídos e sobrescritos na 
fonte
Exclusão ou mudança de registros nos sistemas-fonte pode ser cruciais para o projeto caso não 
sejam notificadas. Deve-se considerar:
 » negociar com os “donos” dos sistemas fonte como/quando serão essas notificações;
 » checar histórico de total de registros de medidas na fonte e verificar qual a mudança 
o quanto antes;
 » adicionar um registro na tabela fato, identificando o registro excluído na fonte.
38
unidAdE iii
trAnSForMAção 
E CArgA dE 
dAdoS
Essa Unidade irá abordar os quatro grandes tópicos na transformação de dados.
 » Objetividade – reduz erro nos dados, melhora a qualidade, deixa os dados mais 
úteis e padroniza os principais atributos textuais e numéricos compartilhados por 
toda organização.
 » Técnicas de qualidade de dados – abrange desde a definição de um campo 
no nível de banco de dados (propriedade de uma coluna) até a verificação de 
consistência campo a campo (estrutura) e verificações específicas nos dados com 
relação às regras de negócio.
 » Metadados – contém técnicas em conjunto com as regras de negócio. Será descrita 
uma metodologia para construir uma forma de representar as investigações de 
qualidade dos dados.
 » Medições de qualidade de dados – Porpor-se-á um conjunto de medições para 
que a equipe de ETL possa criar um fluxo de processamento de qualidade dos dados.
E, na etapa de carga, serão apresentadas técnicas de desenvolvimento para carregar informações 
das dimensões e dos fatos de um Data Warehouse. Apresentando boas práticas de desenvolvimento 
para dimensão histórica chamada Slowly Change Dimension nos seus três tipos, respectivamente, 
e técnicas de pipelining de-para de Surrogates-Key para as fatos.
CAPítulo 1
técnicas de limpeza e conformidade 
de dados
Limpeza e Conformidade são os principais passos em que o sistema de ETL agrega mais valor. As 
outras etapas de extração e carga são evidentemente necessárias, mas elas só movem e reformatam 
os dados. Os passos de limpeza e conformidade geram um potente metadados. Observando-se em 
direção às fontes, este potente metadados é um diagnóstico do que está errado nos sistemas-fonte. 
Em última análise, os dados sujos podem ser corrigidos apenas mudando a maneira como esses 
sistemas fonte coletam os dados. Pode-se considerar Reengenharia de Processos de Negócios?
39
TRANSFORMAÇÃO E CARGA DE DADOS │ UNIDADE III
Metadados gerados nas etapas de limpeza e conformidade acompanham dados reais até a área 
de trabalho do usuário, ou pelo menos deveria possuir este desempenho. A equipe de ETL deve 
disponibilizar um potente metadados para limpeza e conformidade, e é aí que a dimensão de 
auditoria aparece. Poderá surgir o seguinte questionamento: “O que se deve focar a princípio?” 
Talvez a melhor respostaseja: “Realizar a melhor análise de perfil de dados possível”. 
definição de qualidade de dados
Serão alinhados alguns vocabulários básicos focados na acurácia. Dados precisos significam que os 
dados são assim classificados.
 » Corretos - Valores e descrições do dado descrevem fielmente (com certeza) seus 
objetos associados. Ex.: Se um cliente mora no Rio de Janeiro, então o atributo 
Cidade da tabela Cliente deve conter exatamente Rio de Janeiro.
 » Não ambíguos - Valores e descrições do dado devem ter sentido único. Ex.: 
Anápolis existe em vários estados (ambíguo), mas Anápolis-GO não.
 » Consistentes - Valores e descrições do dado devem ter termos convencionados. 
Ex.: Termos “Rio”, “Rio de Janeiro”, “R.Jan.” convencionados: “Rio de Janeiro”.
 » Completos - Assegurar que os valores individuais e descrições do dado sejam 
definidos (não nulo) para cada instância. O Número total de registros é completo, 
ou seja, nada foi perdido durante o fluxo.
Valores nulos devem ter representação de termos de negócio vinculados a eles, 
mesmo que sejam termos como “Inválido” ou “Sem descrição”.
Parte 1: projete objetivos
Esta parte discute as pressões inter-relacionadas que formam os objetivos das iniciativas de 
qualidade de dados e as prioridades, por vezes conflitantes, que a equipe de ETL deve aspirar ao 
equilíbrio. Foram propostas algumas abordagens para atingir esse equilíbrio e formular uma política 
de qualidade de dados que atenda às necessidades de importantes grupos de usuários.
O (sub) sistema de análise da qualidade dos dados (QA) deve prover informações para os perfis.
 » Gerente de DW - Responsabilidade de tomar decisões do dia-a-dia, garantindo 
que as regras de negócio estão sendo aplicadas nos dados de forma correta. O 
Sistema de QA deve prover histórico das transformações dos dados.
 » Analista de Negócio - Responsabilidade de definir a estratégia das informações 
do DW (objetivos analíticos, indicadores, fontes de informações etc.). O Sistema de 
40
UNIDADE III │ TRANSFORMAÇÃO E CARGA DE DADOS
QA deve prover as métricas sobre a adesão das informações do DW operacional com 
as políticas de negócio preestabelecidas (verificando informações sobre a qualidade 
do fluxo implementado.).
 » Líder de QA - Responsabilidade de detectar, corrigir e analisar questões de 
qualidade. Deve trabalhar em conjunto com o Analista de Negócio para definir 
políticas de limpeza dos dados. O Sistema de QA deve prover medidas que descrevam 
a frequência e severidade de todas as questões detectadas de qualidade dos dados.
 » Gerente de Dimensões - Responsabilidade de criar e publicar dimensões 
conformadas, aplicar labels nos atributos, criar e atribuir chaves surrogadas e 
controlar versões.
 » Provedor de Fatos - Responsabilidade por receber as dimensões dos gerentes 
de dimensões e aplicar as mudanças necessárias no fato, como converter as chaves 
naturais pelas chaves surrogadas (substitutas). Geralmente, está no papel de DBA 
da instância do fato.
Figura 8. Prioridade da qualidade dos dados
Fonte: Kimball; ralph (2004).
Quatro pressões ou prioridades interligadas moldam os objetivos de seu sistema de qualidade de 
dados conforme ilustrado na Figura 8. Mas, é impossível para o subsistema de limpeza resolver 
em termos absolutos, todos esses fatores simultaneamente. É necessário equilibrar, refletindo nas 
prioridades de cada situação.
41
TRANSFORMAÇÃO E CARGA DE DADOS │ UNIDADE III
 » Completude vs. Velocidade
 O ETL de qualidade dos dados não pode ser otimizado tanto a velocidade como 
completude. Em vez disso, nós aspiramos a encontrar um ponto apropriado na 
curva de relação exponencial (ver Figura 9), que atinge o equilíbrio que buscamos.
Figura 9. relação entre a Completude e Velocidade de Implementação
Fonte: Kimball; ralph (2004).
 Aplicar questões conflitantes com os usuários do DW sobre latência e qualidade 
de dados, como por exemplo, “Quando as informações se tornam obsoletas para 
você?” ou “Quão importante é obter as informações comprovadamente corretas?”.
 » Corretude vs. Transparência
 Muita transparência no sistema pode resultar num DW fraco que não enderece 
as necessidades do negócio. Por outro lado, excesso de corretude no sistema pode 
esconder deficiências operacionais e atrasar o progresso da organização (é válido 
levantar os problemas encontrados na fonte). Assim, é necessário estabelecer um 
limite entre os tipos de defeitos, catalogando-os e provendo uma forma fácil de 
verificá-los usando dimensão de Auditoria.
Figura 10. Questões Políticas de Qualidade de Dados
Fonte: Kimball; ralph (2004).
42
UNIDADE III │ TRANSFORMAÇÃO E CARGA DE DADOS
 Ilustrado na Figura 10, trata-se de um método para categorizar o conjunto de 
desafios de qualidade de dados enfrentados em projetos de Data Warehouse e 
isolar aqueles que devem ser abordados pelos subsistemas de ETL de qualidade de 
dados.
 › Categoria A - Falta de informações básicas (bugs de sistemas, falhas de 
processo etc).
 › Categoria B - Resolvidas (tecnicamente) com melhor custo/benefício na fonte.
 › Categoria C - Resolvidas (tecnicamente) com melhor custo/benefício no ETL.
 › Categoria D - Resolvidas somente pelo ETL, como por exemplo, informações 
incompletas ou incorretas em alguns sistemas fonte. É muito rara a implementação 
desse processo de ETL.
Parte 2: entregáveis da etapa de limpeza
Uma empresa séria, com o intuito melhorar a qualidade dos dados, deve basear-se em medições 
rigorosas. Isto deveria manter registros precisos dos tipos de problemas de qualidade de dados que 
se procura, quando se observa, o que se observa, e os seus resultados.
Informações devem ser capazes de responder as análises.
 » O processo de QA está evoluindo?
 » Quais sistemas fonte têm maior ocorrência de problemas?
 » Existem padrões ou tendências identificadas nos resultados de QA?
 » Existe alguma relação da qualidade dos dados com a performance da empresa?
 » Quais processos de limpeza custam mais (tempo) e o porquê?
E para responder esses questionamentos, os entregáveis são os seguintes.
 » Data Profiling (Perfilamento de Dados) - Limpeza de dados deve realmente 
começar antes da primeira etapa da construção do sistema de ETL. É extremamente 
recomendável realizar uma análise de perfilamento de dados completa das fontes 
de dados durante o planejamento inicial e a fase de projeto.
 » Uma boa análise de perfilamento de dados tem a forma de um repositório de 
metadados específico descrevendo desse modo.
 › Definições de esquemas
 › Objetos de negócio
43
TRANSFORMAÇÃO E CARGA DE DADOS │ UNIDADE III
 › Domínios
 › Fontes de dados
 › Definições de tabelas
 › Sinônimos
 › Regras de dados
 › Regras de valores
 › Questões a serem tratadas
Perfilamento de dados não é a única ferramenta de avaliação quantitativa de 
suas fontes de dados, esta saída deve influenciar fortemente o conteúdo das 
duas entregas operacionais. Apêndice B do livro de Jack Olson, Data Quality: The 
Accuracy Dimension tem uma lista abrangente de subcategorias expandindo a lista 
acima, que deve ser criado por meio de análise de perfil de dados para formar a base 
do repositório de metadados.
 » Fato de eventos de erro – Esse entregável é estruturado como modelo de 
dados dimensional do tipo star ou snowflake, conforme a Figura 11, para capturar 
eventos de limpeza. Cada erro de qualidade de dados ou problema identificado pelo 
subsistema de limpeza de dados é capturado como uma linha na tabela de fatos de 
evento de erro. Em outras palavras, o grão desta tabela fato é cada ocorrência de 
erro de cada verificação da qualidade dos dados. Lembre-se de que a verificação 
da qualidade é uma tela. Então, caso sejam executadas dez telas separadas contra 
algum conjunto de dados e a cada tela identificou dez registros defeituosos, um total 
de 100 registros seriam gravados na tabela fato de erro. 
Figura 11. Esquema da Tabela de Evento de Erros
Fonte: Kimball; ralph (2004).
44
UNIDADE III │ TRANSFORMAÇÃOE CARGA DE DADOS
 » Dimensão de Auditoria - Os eventos da tabela de erros podem acontecer sem 
ser em nível de registro (grão). Essa dimensão serve para associar indicadores de 
QA com as tabelas fato do DW, descrevendo o contexto completo de cada registro 
de uma tabela fato (toda sua linhagem) conforme o layout identificado na Figura 
12. Os registros dessa tabela são criados após a finalização da etapa de limpeza e 
conformação e deve conter uma descrição textual das mudanças que ocorreram. No 
caso da etapa ser finalizada com sucesso apenas um registro seria criado.
Figura 12. Dimensão de Auditoria
Fonte: Kimball; ralph (2004).
 » Se o processamento ocorrer com sucesso, mesmo com alguns registros sendo 
rejeitados durante os checks de QA (por exemplo, valores muito altos, fora do 
domínio) apenas 2 registros serão incluídos na dimensão. Atributos de Data Quality 
são calculados por meio de todos os eventos da tabela-fato de erro de determinado 
registro ou fonte de dados. Seus campos textuais são úteis para descrever as 
condições de erro no nível de negócio, pode conter a quantidade total de eventos de 
erro e o código de severidade máximo e é lugar ideal para registrar a linhagem dos 
dados.
45
TRANSFORMAÇÃO E CARGA DE DADOS │ UNIDADE III
 » Maior vantagem: levar essas informações para os usuários, que podem cruzá-las 
com informações do cubo (de negócio). Ex.: quantidade de vendas com valores fora 
do domínio.
Parte 3: relatórios e suas medidas
Um nível mais abaixo, a seção de relatórios define um conjunto de pontos de controle e filtros que 
você configurou em muitos lugares para medir a qualidade dos dados. Com os relatórios, estamos 
a construir uma abordagem unificada para capturar eventos de qualidade de dados e responder a 
esses eventos com ações apropriadas.
 » Fase detecção de anomalia: A anomalia de dados é um pedaço de dados que 
não se encaixam no domínio com resto dos dados que estão armazenados. Detectar 
estas anomalias requer técnicas específicas e implica análise analítica. 
Amostragem de dados - A maneira mais simples para verificar se há anomalias é contar as linhas 
em uma tabela, enquanto agrupa na coluna em questão. Esta consulta simples, cujos resultados 
são apresentados na Figura 13, mostra a distribuição dos valores e exibe dados potencialmente 
corruptos.
Exemplo:
select state, count(*)
from order_detail
group by state;
Figura 13. Exemplo de Anomalias de Dados
Fonte: Kimball; ralph (2004).
46
UNIDADE III │ TRANSFORMAÇÃO E CARGA DE DADOS
Como você pode-se observar na Figura 13, anomalias de dados são imediatamente expostas. Os 
outliers no conjunto de resultados são anomalias de dados e devem ser apresentados ao proprietário 
do negócio com uma forte recomendação de que sejam limpas no sistema. As Ferramentas de 
Perfilhamento de Dados foram desenvolvidas para ajudar nesse tipo de análise de amostragem de 
dados.
 » Tipos de verificações de QA - É útil dividir os vários tipos de verificações de 
qualidade de dados em quatro grandes categorias.
 › Propriedades de coluna (domínio)
 › Verificação se atributo do registro contém valores esperados.
 › Verificação de NULL em colunas exigidas.
 › Valores numéricos que estejam fora de limite mínimo/máximo (range).
 › Colunas com tamanho muito pequeno ou muito grande.
 › Estrutura
 › Foca na estrutura de dados e não no dado em si (como acima).
 › Verificação de integridade dos dados: relações entre colunas (por exemplo, FK - 
Foreign Key), verificação de chaves primárias (forçar identidade) etc.
 › Regras de dados ou valores
 › Verificação de regras de negócio entre os atributos de um registro, das mais 
simples às mais complexas.
Ex.: Se um cliente tem no campo [limite de saque] o valor 1000, então o campo [status] deve conter 
“Cliente padrão”.
47
CAPítulo 2
técnicas de carga
dimensões e estratégias de carga
Tabelas de dimensão são o “coração” do Data Warehouse. Elas fornecem o contexto para as tabelas 
de fatos e, portanto, para todas as medidas.
Embora as tabelas de dimensão sejam geralmente menores do que as tabelas de fatos, elas são 
fundamentais para o sucesso do Data Warehouse, pois fornecem os pontos de entrada para as 
tabelas de fatos.
O processo de entrega começa com os dados limpos e conformados, resultante dos subsistemas de 
origem.
O plano de carga básica é relativamente simples: executam-se transformações básicas nos dados 
para construção das linhas da dimensão para então carregar na tabela de apresentação final. 
Isso, normalmente, inclui atribuição de uma surrogate key, pesquisas de código (Lookups) para 
fornecer descrições apropriadas, dividindo ou combinando colunas para apresentar os valores 
de dados apropriados, ou aplicar a estrutura de tabela na terceira forma normal em dimensões 
desnormalizadas.
Estratégias de cargas históricas em dimensões
Slowly Change Dimensions (SCd) tipo 1
Esta é a abordagem mais simples em que é feita a substituição de um ou mais atributos de um 
registro já existente na dimensão. É útil sempre que os valores antigos do atributo não possuem 
nenhum significado ou devem ser descartados (por exemplo, a correção de um erro) ou se não 
houver interesse em manter a história dos valores anteriores e não houver necessidade de executar 
relatórios históricos. 
Uma substituição é sempre realizada por UPDATE nos dados, e embora a inserção de novos registros 
em um tipo de SCD requer a geração de novas chaves de dimensão, as alterações em um SCD tipo 1 
nunca afetam as chaves de tabela dimensão ou das chaves das tabelas fato e, em geral, têm o menor 
impacto sobre os dados dos três tipos de SCD. 
Vantagem
 » Rápido e fácil
48
UNIDADE III │ TRANSFORMAÇÃO E CARGA DE DADOS
Desvantagem
 » Perde-se o histórico das alterações dos atributos. Observa-se apenas os atributos 
descritivos como eles existem na atualidade.
No exemplo a seguir, ao observar-se o comércio do jogo Sim City ao longo do tempo, percebe--
se que, em momentos sazonais, há um aumento considerável de suas vendas, mas não se sabe o 
porquê!
Linha original
Chave do Produto ID do Produto Descrição Departamento
12345 SC3000 Sim City 3000 Educacional
Linha atualizada
Chave do Produto ID do Produto Descrição Departamento
12345 SC3000 Sim City 3000 Estratégico
Devido ao SCD tipo 1 sobrescrever os dados, a técnica de mais fácil implementação 
é utilizar instruções SQL UPDATE para conseguir com que todos os atributos da 
dimensão reflitam corretamente os valores atuais.
Infelizmente, como o SQL UPDATE é uma transação de baixo desempenho e pode 
inflar a Janela de carga ETL. A dica de melhor maneira de reduzir essa sobrecarga é 
empregar sua carga em massa (Bulk loader).
Da seguinte maneira: Preparam-se os novos registros da dimensão em uma 
tabela separada. Em seguida, apagam-se esses registros da tabela de dimensão e 
recarregam-nos com o comando SQL Insert em carga em massa (Bulk Loader).
Slowly Change Dimensions tipo 2
O SCD Tipo 2 é a técnica padrão para acompanhar com precisão as mudanças nas entidades 
dimensionais e associá-las corretamente com as tabelas de fatos.
A ideia básica é muito simples. Quando o Data Warehouse é notificado de que um registro de 
dimensão existente precisa ser mudado, ao invés de substituir, o Data Warehouse cria um novo 
registro na dimensão no momento da mudança. A esse novo registro de dimensão é atribuído uma 
nova Surrogate Primary Key (Chave primária substituta), e essa chave é utilizada a partir desse 
momento, em todas as tabelas de fatos que fazem referência a essa dimensão como uma chave 
estrangeira. 
Quando a nova chave é atribuída imediatamente no momento da mudança, nenhum registro já 
existente em qualquer tabela de fatos precisa ser atualizado ou alterado, e também em nenhuma das 
tabelas de fatos agregadas precisam ser recalculadas.
49
TRANSFORMAÇÃO E CARGA DE DADOS │ UNIDADE III
Figura 14. sCD Tipo 2 - Partições perfeitamente históricas
Fonte: Kimball; ralph (2004).
Na Figura 14, pode-se ilustrar

Outros materiais

Outros materiais