Você está na página 1de 31

ETL e integrao de dados

Prof. Mrcio Fuckner

Mapa do Mdulo
Semana Assunto

Professor

Temas Abordados

Data Warehouse

Gilmar

Teoria: Definio de DW,


OLAP, OLTP, Data Mart, Data
Mining, Arquitetura.

Data Warehouse

Gilmar

Modelagem Multidimensional:
Fatos, Dimenses e Medidas,
Star Schema e Snowflake
Schema; Implementaes
OLAP: MOLAP, ROLAP e
HOLAP; Tcnicas: Drill Down,
Drill Up, Slice and Dice

BI

Mrcio

Conceitos e Infra-estrutura de
um BI

BI

Mrcio

Prtica: Modelagem
Multidimensional e Design de
um Datawarehouse

BI

Mrcio

Data Mining

BI

Mrcio

Prtica: ETL e Integrao de


Dados

Contedo

Integrao de Dados
Ambiente Operacional BI
Definio de ETL
Atividades ETL

Integrao de Dados
Processos que tem por objetivo reunir dados de
diferentes origens em uma fonte de dados
consolidada.
Uma atividade que requer conhecimento acerca de
diferentes tecnologias de integrao e transformao
de dados.
um passo essencial para viabilizar um ambiente
operacional de Business Intelligence.

Ambiente Operacional do BI
BUSINESS
INTELLIGENCE
OLAP

DATA
WAREHOUSE

Data
Warehouse
(REPOSITRIO
DE DADOS)

Converses e
organizao de
dados

EXTRAO DE
DADOS
OPERACIONAIS

ETL
EXTRAO,
TRANSFORMAO
e
CARGA

FONTES DE DADOS
(Dados externos, ERPs, Bancos de
Dados)

Extrado de: http://www.slideshare.net/fabiolagrijo/aplicao-de-business-intelligence-em-laboratrios-clnicos-como-ferramenta-para-tomada-de-de

O que ETL?
Extrao (Extraction)
Obteno de dados a partir de diferentes origens.
Um exemplo tpico a obteno e carga de todos os clientes
adicionados ou alterados desde a ltima carga de dados.

Transformao (Transformation)
Alterao da estrutura original dos dados para se adequar a
estrutura do data warehouse modelado.
Um exemplo pode ser realizar a busca dos nomes de cidades e
estados a partir de cdigos

Carga (Load)
Armazenar os dados no data warehouse

Atividades ETL (1 de 3)
Extrao
Captura de dados alterados
Na maioria dos casos a atividade de extrao deve se limitar a
poro de dados alterados ou includos desde a ultima extrao.
Atividade conhecida na literatura como Change Data Capture.

Data Staging
Nem sempre ser possvel transformar imediatamente os dados
extrados. Muitas vezes a extrao armazenada em uma rea
temporria para futuramente passar pela transformao.
A rea de Data Staging em um DW em geral implementado em
bancos de dados relacionais e servem apenas como um buffer
entre o sistema origem e o DW.

Atividades ETL (2 de 3)
Transformao
Validao de Dados
Verificao de integridade de dados e filtragem de dados invlidos.

Limpeza de Dados
Correo de dados invlidos.

Decodificao e Alterao
Transformar dados operacionais, chaves estrangeiras em dados
humanamente legveis.

Agregao
Realizar sumarizaes e clculos prvios.

Gerenciamento de Chaves
Novas linhas em tabelas de dimenso recebem chaves surrogadas
(surrogate keys). Nesta fase ocorre a gerao e o gerenciamento
dessas chaves

Atividades ETL (3 de 3)
Carga
Carga de dados em tabelas de fatos
Em geral as tabelas de fatos recebem novos dados e raramente
sofrem atualizaes.

Carga de dados em tabelas de dimenses


As dimenses podem receber novos dados assim como receber
atualizaes frequentes.

Processo de Extrao
Algumas estratgias de captura de dados:
Recuperao de dados alterados a partir de eventos naturais
nas bases de dados. Por exemplo, a data de emisso de uma
nota fiscal, a data de alterao de um cliente ou a data de
registro de inventrio de um produto.
Usando as chaves sequenciais dos sistemas de origem
Alimentando tabelas de transio a partir de triggers. Em alguns
sistemas possvel instalarmos triggers.
Leitura da log dos bancos de dados.

Ferramentas de ETL
Algumas ferramentas usadas para captura de dados:
Uso de programas batch para processar dados, gerar arquivos
e realizar a carga.
Uso de stored procedures.
Uso de ferramentas de replicao de dados.
Uso de ferramentas de ETL.
Combinao de diversas tcnicas.

Processo de Extrao Surrogate Keys


uma boa prtica de design em DW
Consiste na criao de uma chave tcnica, tipicamente
implementada por um campo numrico (integer)
Melhor desempenho se comparado com chaves
complexas tpicas de bases de dados operacionais
Permite mudana de estratgias de carga sem
comprometer o modelo de dados.
Limitaes
Necessrio criar mecanismos de transformao de
chave (de/para) durante o ETL. No chega a ser
complexo uma vez que a grande maioria das
ferramentas ETL implementam essas transformaes.

Processo de Extrao
Em geral o processo de extrao tem por objetivo
alimentar tabelas de dimenses ou fatos
Extrair fatos uma tarefa relativamente simples, uma
vez que esse tipo de tabela apenas alimentada com
novas informaes e raramente sofre atualizaes
Por outro lado, as dimenses sofrem pequenas adies
e atualizaes, raramente remoes.
Ralph Kimball prope um pacote de estratgias para
atualizao de dimenses
Este pacote de estratgia chamam-se Slowly Changing
Dimensions ou resumidamente SCD.

SCD 0
Nesta estratgia no h atualizao. A dimenso possui
um conjunto estvel de dados.
Quando uma carga ocorre, os dados so prviamente
truncados

SCD 1
Nesta estratgia todo dado antigo substitudo por
dados novos
Os dados histricos no so armazenados

ID

Nome

Cidade

01

Joaquim Cruz

Florianpolis
Atualizao na mesma tupla. Sem histrico

ID

Nome

Cidade

01

Joaquim Cruz

Curitiba

SCD 2
Nesta estratgia, os dados histricos so mantidos.
Colunas do tipo data e hora so usados para identificar
a vigncia
Colunas que indicam qual o registro corrente tambm
so usados em geral.

Id

Nome

Cidade

Inic Vig

Fim Vig

Atual

Joaquim Cruz

Florianpolis

01/01/0001 10/05/2010 0

Joaquim Cruz

Curitiba

11/05/2010 12/05/2010 0

Joaquim Cruz

So Paulo

13/05/2010 31/12/9999 1

SCD 3
um meio termo entre SCD 1 e SCD 2
Consiste em criar uma coluna para armazenar o dado
anterior.

ID

Nome

Cidade

Cidade_ant

01

Joaquim Cruz

Florianpolis

null

Atualizao na mesma tupla. Histrico anterior apenas.

ID

Nome

Cidade

Cidade_ant

01

Joaquim Cruz

Curitiba

Florianpolis

Resumo
Existem outras variaes de SCD disponveis na
literatura
As estratgias no precisam ser necessriamente
implementadas em isolamento, sendo comum
implement-las em conjunto. Exemplo: No interessa ao
usurio se um cliente alterou seu CPF, mas importante
saber se ele mudou a categoria.
Para saber mais, consulte o livro The Datawarehouse
Tookit,

Exerccio Prtico - Objetivos


O objetivo deste exerccio prtico :
Apresentar o processo de migrao de um modelo de dados
operacional para um modelo de dados multidimensional
Preparar as etapas de extrao, transformao e carga usando
uma ferramenta de ETL
Criar uma consulta OLAP para o modelo gerado.

Exerccio Prtico Modelo de Dados

Modelo de dados base do exerccio

Exerccio - Preparao
Usando um cliente SQL, execute os scripts abaixo:
criar_base_operacional.sql
popular_base_operacional.sql

Estes scripts criaro as tabelas, ndices e sequncias do


banco de dados operacional, assim como popularo o
banco de dados com exemplos.

Caso seja necessrio remover os


objetos use o script
remover_base_operacional.sql

Exerccio Modelo Estrela


Surr
ogat
e Ke
y

Surrogate Key

Modelo de dados estrela gerado

Exerccio Prtico - Preparao


Usando um cliente SQL, execute o script abaixo:
criar_base_estrela.sql

Este script criar as tabelas, ndices e sequncias do


banco de dados que sero usados nas consultas BI.

Caso seja necessrio remover os


objetos use o script
remover_base_estrela.sql

Exerccio Prtico Ferramenta de ETL


Usaremos a ferramenta de integrao de dados do
Pentaho Data Integration chamada Spoon para realizar
as transformaes.
Instrues de Instalao:
1.
2.
3.
4.

Descompacte o arquivo pdi-ce-3.2.0-stable.zip em uma pasta.


Execute o arquivo Spoon.bat.
A tela de boas-vindas ser apresentada.
Clique em No repository. No usaremos um repositrio
central.

Exerccio - Planejamento
Uma vez que o modelo estrela foi criado, a prxima
etapa preparar os scripts ETL que sero executados
periodicamente para alimentar o modelo estrela.
Sero criados os seguintes processos ETL:
1.
2.
3.
4.

Extrao e carga da dimenso cliente


Extrao e carga da dimenso produto
Extrao e carga da dimenso data
Extrao e carga do fato emprstimos

Exerccio - Dimenso cliente

A estratgia utilizada para atualizar a dimenso cliente foi SCD tipo 1.


Foi criada uma surrogate key para esta tabela com o nome id.
A chave primria da tabela foi armazenada no atributo id_orig
Foi criado o atributo dt_atualiz para armazenar a data e hora da ltima
atualizao

Exerccio - Dimenso produto

A dimenso produto foi desnormalizada para armazenar o tipo do filme,


sendo que a origem do dado um join entre as tabelas dvds e tipos_dvds.
A estratgia utilizada para atualizar a dimenso produto foi SCD tipo 1.
Foi criada uma surrogate key para esta tabela com o nome id.
A chave primria da tabela foi armazenada no atributo id_orig
Foi criado o atributo dt_atualiz para armazenar a data e hora da ltima
atualizao

Exerccio - Dimenso data

A dimenso data comum em diversos modelos multidimensionais


A carga de dimenses do tipo data em geral realizada a partir de stored
procedures que geram os calendrios periodicamente.
Este tipo de tabela contem informaes desnormalizadas de datas para
facilitar a consulta hierrquica permitindo por exemplo visualizar meses por
extenso, dias da semana, semestres, bimestres, feriados, etc.
Neste cenrio, as datas sero carregadas a partir de uma planilha do Excel.

Exerccio - Fato de emprstimos

Tabelas de fatos em geral sofrem apenas incluses e rarissimas


atualizaes.
Este caso especfico sofrer atualizaes uma vez que a carga pode
recuperar emprstimos em andamento. Estes por sua vez, aps a sua
devoluo devero ser atualizados no DW.
A ateno especial fica por conta da necessidade de transformao da
chave original dos dados de cliente, produto e data nas chaves surrogate

Exerccio - Finalizao
Crie uma consulta OLAP do modelo proposto usando o
fato de emprstimos e as dimenses de data de
emprstimo, data de devoluo, cliente e produto.

Referncias
Pentaho Solutions, Ed. Wiley & Sons
Roland Bouman e Jos Van Dogen

The Datawarehouse Toolkit


Ralph Kimball