Escolar Documentos
Profissional Documentos
Cultura Documentos
Uso da ferramenta Oracle Data Integrator (ODI) para a construo de processos ETL
(Extract, Transform, Load). Neste artigo, utilizaremos o ODI para integrar dados de
diferentes origens (SGBD Oracle, Firebird e arquivo texto) para uma base de destino
Oracle.
Por ser uma ferramenta visual, o ODI proporciona um ambiente de fcil desenvolvimento
e manuteno. Os diagramas ETL das interfaces do ODI so de fcil entendimento,
onde at pessoas sem um grande conhecimento tcnico entendem o processo ETL que
ser efetuado. Os Mdulos de Conhecimento (KMs) trazem uma padronizao e
facilidade de manuteno de cdigo incrvel.
INSERT: usada para inserir um registro (formalmente uma tupla) a uma tabela
existente;
Iniciando o desenvolvimento
Pacotes: so os objetos que serviro para modelar o nosso fluxo no processo de ETL.
No pacote so armazenados os objetos utilizados e a ligao entre eles. Depois que
finalizamos a construo de um pacote, geramos a partir dele, um Cenrio, que a
verso compilada do nosso pacote. Faamos uma analogia a um programa comum.
Os pacotes contm os arquivos fonte do programa e os cenrios so os executveis
gerados a partir dos arquivos fonte;
LKM - Load Knowledge Module (Carga): o responsvel por carregar os dados das
tabelas de origens no nosso processo de ETL quando estas tabelas se encontram em
servidores de dados (Data Servers) diferentes;
SKM - Service Knowledge Modules (Servio): utilizado para publicar dados utilizando
Web Services. Pode ser utilizado para gerar e manipular dados via Web Services para
arquiteturas SOA (Service Oriented Architecture Arquitetura Orientada a Servios);
Nesta fase de nosso projeto ainda no temos nenhum KM. A cada novo projeto
fundamental a escolha de quais KMs iremos utilizar. Para o nosso projeto vamos
importar os KMs necessrios, que so dois:
IKM: para fazer a integrao efetiva dos nossos dados para o destino;
No Mdulo Designer, acessamos a aba Projetos e clicamos com o boto direito sobre
a opo Importar e escolhemos a opo Importar Knowledge Modules.... Devemos
ento informar o diretrio onde se encontram os KMs a serem importados.
Originalmente os KMs que fazem parte da instalao do ODI esto na pasta
oracledi\oracledi\impexp.
LKM File to SQL: Carrega dados de arquivos texto e traz para uma rea de
armazenamento temporrio (ou rea de estagiamento, ou stagging, onde ficam as
tabelas temporrias que o ODI cria automaticamente no processo de ETL);
Quando os KMs j estiverem importados podemos ter uma definio do que cada um
faz, bastando clicar duas vezes sobre o mesmo, surgindo assim uma tela com a
descrio e a funcionalidade do mesmo.
Para este processo de ETL no importamos todos os KMs, pois isso dificultaria a
seleo dos mesmos no momento do desenvolvimento devido grande quantidade de
KMs existentes. Portanto, uma boa prtica importar para o seu projeto apenas os KMs
que sero realmente utilizados, a fim de trabalhar com um ambiente mais limpo e com
menos chances de selecionar um KM errado. Em relao aos KMs importados para o
nosso projeto, suas funcionalidades ficaro mais claras no decorrer do Projeto, mais
precisamente no momento do desenvolvimento das Interfaces.
Portanto, dentro do Mdulo Designer, mais precisamente na aba Modelos, vamos criar
pastas para melhor organizao. Vamos inserir duas pastas de modelos: uma chamada
Destinos e outra Origens.
Agora vamos inserir as pastas de modelos para ambas. Para isso, basta clicar com o
boto direito sobre a pasta Destinos e selecionar a opo Inserir Pasta de Modelos.
Vamos inserir a pasta ORACLE, onde ficaro as tabelas de destino da tecnologia
ORACLE, e repetimos a tarefa para as Origens, criando trs pastas: FILE, FIREBIRD
e ORACLE, onde ficaro as tabelas de origem das suas respectivas tecnologias.
Vamos criar nosso Modelo da Origem ORACLE. Para esta tarefa devemos clicar com o
boto direito sobre a Pasta de Modelo ORACLE que acabamos de criar e escolher a
opo Inserir Modelo.
Na janela que se abre devemos inserir o nome para o nosso modelo, selecionar a
tecnologia (ORACLE) e a qual Esquema Lgico (ORACLE_ORIGEM) o modelo ir se
referenciar.
nome
de
nosso
Modelo
auto-explicativo
(MODELO_ORACLE_ORIGEM).
Ainda nas configuraes do Modelo vamos acessar a aba Reverter, pois devemos
setar o Contexto que iremos utilizar para importar as nossas tabelas. Em nosso Projeto
o Contexto selecionado o Desenvolvimento. Nesta aba tambm devemos selecionar
quais tipos de objetos queremos que a reversa importe para o ODI. Para o nosso caso
selecionamos apenas Tabelas, pois queremos reverter apenas as tabelas criadas nos
scripts (que se encontram no site da SQL Magazine). Nesta aba de configurao
poderamos tambm aplicar alguma mscara de filtro para que no momento da reversa
A prxima aba de configurao a Reverso Seletiva (Figura 2). Nesta aba devemos
escolher, das tabelas que passaram no filtro anterior, quais tabelas importar para o ODI.
Para o nosso projeto iremos importar as quatro tabelas que esto alocadas no banco de
dados. Aps selecionar as tabelas podemos clicar na opo Aplicar, e aps em
Reverter.
Uma mensagem de confirmao ser exibida: Deseja fazer engenharia reversa neste
modelo antes de fechar esta janela? Se anteriormente j clicamos na opo Reverter
podemos clicar em No nesta confirmao. Depois de revertido, teremos as tabelas
da nossa origem ORACLE no ODI.
Devemos agora inserir o Modelo de Dados tambm para o Firebird. Faremos o mesmo
processo detalhado anteriormente apenas alterando a Tecnologia escolhida.
Terminada a incluso dos Modelos de Dados ORACLE e Firebird vamos partir para a
incluso do Modelo de Dados do tipo FILE. Para esta tecnologia existem algumas
particularidades que devem ser observadas. Vamos proceder com a criao do modelo
de forma normal seguindo os padres da incluso da Tecnologia ORACLE. Nomeamos
Para isso devemos estar no Repositrio de Trabalho do ODI, e clicar com o boto direito
no MODELO_FILE_ORIGEM que se encontra dentro da pasta FILE. Devemos
escolher a opo Inserir Armazenamento de Dados.
Na janela que ser exibida, na aba Definio, devemos colocar um nome para o
modelo de dados e devemos escolher o arquivo correspondente que queremos reverter.
Neste caso o arquivo do tipo TXT (dtempo.txt) e armazena as informaes referentes
dimenso tempo de nosso Data Warehouse. Depois de feita a seleo do arquivo,
vamos para a aba Arquivos (Figura 4), onde devemos informar se o arquivo possui ou
no delimitao. No nosso caso, escolhemos que ele Delimitado. Neste ponto
informamos que o caractere separador de campos do arquivo dtempo.txt o ; (ponto
e vrgula). Tambm nesta estrutura de configurao podemos informar se o arquivo
possui cabealho e de quantas linhas o mesmo formado. Para este caso informamos
o valor 0 (zero). Se algum valor fosse informado, a quantidade de linhas informada seria
retirada do incio do arquivo e seria desprezada.
Outra opo que precisamos definir diz respeito ao Separador de Registros. Podemos
selecionar se o arquivo tem separador do tipo:
Neste ponto tambm podemos indicar qual separador decimal os nossos valores esto
utilizando, o que no se aplica neste caso.
Por padro as colunas ficam com nomes C1, C2, C..., mas podem ser renomeadas
conforme necessidade e\ou organizao.
da
tecnologia
Oracle
para
Origem.
Nomeamos
modelo
como
Para iniciarmos o desenvolvimento das interfaces vamos alternar da aba Modelos para
a aba Projetos no Mdulo Designer. Nesta aba vamos alterar o nome da Primeira
Pasta para DW. Esta alterao pode ser feita dando duplo clique sobre a estrutura.
Neste ponto poderamos selecionar qualquer esquema para ser a Stagging, mas vamos
mant-lo no Esquema de Trabalho do destino. Aps inserir esta nova Interface devemos
acessar
a aba Diagrama.
Na estrutura do Diagrama vamos montar a regra de ETL para o nosso destino. Primeiro
devemos
clicar
na
aba
Modelos
selecionar
estrutura
Podemos notar ao clicar no join (Figura 12) que vrias opes so apresentadas (todas
so auto-explicativas), como por exemplo, se o join vai ser um inner join ou um left outer
join. Clicando nos diferentes tipos de joins, o ODI nos diz o que ir acontecer em cada
caso.
IMPORTANTE: Neste ponto temos a opo de executar este join na origem ou na rea
de teste (stagging). Se for na stagging, o ODI trar as duas tabelas inteiras para o
esquema de trabalho e depois far o join entre elas. Se a opo na origem, o ODI far
o join na origem e trar apenas o resultado daquele join para o esquema de trabalho.
Esta escolha depende de cada caso. No nosso exemplo mais eficiente resolver o join
na origem e trazer resolvido para o destino, pois isso resultar em trazer apenas os
registros que obedeceram regra do join, tornando assim o volume de dados trafegados
de uma ponta a outra menor.
Estas PKs devem ser populadas com um nmero nico de uma sequence chamada
SEQ_DESTINOS, que se encontra criada no banco de destino.
teis. A lista completa destas funes podem ser encontradas no manual de referncia
da ferramenta.
Para este exemplo em vez de ter uma sequence com o esquema prefixado
(ESQUEMA_DESTINO.SEQ_DESTINOS) substituiramos pela funo denominada
getShemaName,Figura 15.
Janela: indica que o campo ser resolvido na origem e ser avaliado durante o
processo do ETL;
Martelo: indica que o campo ser resolvido na rea de stagging e ser avaliado
durante o processo do ETL;
Alvo: indica que o campo ser resolvido apenas no destino, o que significa que ele
no ser avaliado durante o ETL e ser apenas inserido no destino;
Chave: indica a chave da tabela. Por default, o ODI escolhe para ser a chave a prpria
chave primria (PK) da tabela, mas, como veremos neste caso, podemos modificar a
chave para fazer com que o ODI resolva o ETL da maneira que ns desejamos.
Podemos trocar o local que o campo ser executado (resolvido) clicando na coluna que
desejamos modificar e em seguida na opo Executar em:, selecionando o local
escolhido. No caso da sequence, iremos especificar que ir executar no ambiente de
destino. Esta troca de diretrio tem um motivo: a sequence no deve ser avaliada
durante o processo de ETL e deve ser executada somente no momento da insero do
novo registro no destino. Se no for estruturada desta maneira causar um erro na sua
execuo.
Outra tarefa necessria a alterao da chave da tabela Cliente. Esta tabela tem como
PK o campo ID_CLIENTE e populado por uma sequence. Isso significa que o valor da
PK sempre muda e novos registros seriam inseridos na tabela sempre que a Interface
fosse executada. Se executssemos dez vezes a carga, os clientes estariam dez vezes
duplicados na tabela de destino.
O correto para a tabela Cliente existir apenas um cdigo por cliente, ou seja,
precisamos que a coluna CDCLI seja a chave natural (NK Natural Key). Para o ODI
levar em considerao a coluna CDCLI como chave e no a atual PK ID_CLIENTE
devemos proceder com a alterao conforme aFigura 17. Ao clicar sobre a tabela de
destino DIM_CLIENTE percebemos que na opo Atualizar Chave est selecionado
DIM_CLIENTE_PK que representa a PK da tabela no ODI.
Trocamos o Atualizar Chave para a opo sem definio e agora temos a liberdade
de selecionar a chave que necessitamos. Selecionamos ento a coluna CDCLI e
clicamos em chave, conformeFigura 18.
Com isso a chave para o ODI passa a ser CDCLI. Clicando sobre as colunas, podemos
notar na estrutura Atualizar, check-boxes de Inserir, Atualizar, UD1, UD2, etc.
(Figura 19). Estes checks funcionam para configurar se o campo ser inserido no
destino, se ele ser atualizado no destino ou se ele executar alguma das funes
definidas pelo usurio (UD User Defined). No nosso caso, todos os campos por padro
esto marcados como Inserir e Atualizar. Porm, no caso da coluna ID_CLIENTE
devemos desmarcar a opo Atualizar (Figura 19), pois a sequence no pode
participar do passo de update gerado pelo KM sob o risco de erros serem gerados na
execuo. Este processo ficar mais claro no momento da execuo da interface que
ser explicado a seguir.
Concluda as configuraes vamos para a aba Fluxo. Na tela de Fluxo (Figura 20)
representada a forma como a ferramenta ir fazer a execuo da Interface.
Para este caso o ODI demonstra apenas um nico exemplo com a utilizao do IKM,
que por si s ir resolver todo processo de ETL. Esta estrutura nica devido s tabelas
que estamos utilizando como origem e as tabelas que queremos popular (tabelas de
destino) se encontrarem em um mesmo Data Server (uma mesma Origem) configurado
na topologia.
Ao clicar sobre a caixa denominada Alvo-rea de Teste (Figura 20) podemos observar
que o KM utilizado por padro o IKM (Oracle incremental Update). Resumidamente
este KM faz cargas incrementais, ou seja, ele verifica a chave definida na interface
(CDCLI neste caso) e se esta chave ainda no existe no destino o processo faz a
insero da mesma de forma automtica. Se esta chave j existe o processo apenas
faz o Update nas colunas selecionadas com a opo Atualizar (Figura 19).
Podemos notar tambm que o KM vem com vrias opes de valores padres. Ao clicar
sobre cada opo, ao lado, apresenta-se a sua descrio. Para este trabalho iremos
modificar apenas a opo Flow Control que devemos mudar para opo no (Figura
20). Quando a opo descrita estiver selecionada como Sim o ODI ir invocar o CKM
(Validaes Ver explicao sobre CKM neste artigo) selecionado e far a verificao
dos dados durante o processo de ETL. Como no criamos nenhuma validao para esta
tabela, podemos retirar a opo de Flow Control desta interface.
Para realizar a execuo da interface basta clicar sobre o boto Executar no canto
inferior direito da interface (Figura 21). Neste momento ser apresentada uma tela
questionando em qual contexto executar, neste caso o contexto de Desenvolvimento;
qual o agente, vamos executar no agente local; e o nvel de registro, que indica o grau
de informaes que deve ser gerado no log do ODI, que podemos deixar o valor padro
5.
Verificando a execuo (Figura 22), podemos observar os passos criados pelos KMs
do ODI. Reparamos que a primeira palavra escrita Integrao. Isto significa que
todos os passos gerados por esta Interface foram de um IKM.
Esta Interface (CLIENTES_IN) inseriu sete linhas na tabela de destino. Se esta Interface
fosse executada novamente veramos novamente os mesmos onze passos, mas no
processo nenhuma nova linha seria inserida. Como esta Interface incremental, ela
carrega apenas as linhas que ainda no foram carregadas e faz a atualizao de linhas
quando a mesma no existir.
DICA: Para compreender melhor como funcionam as configuraes feitas no ODI, tente
marcar a opo Atualizao no campo ID_CLIENTE que carregada juntamente com
a sequence ou mude o local de execuo de Destino para Stagging e compare os
passos de uma execuo e outra. No comeo parece complicado, mas depois que
aprendemos os pequenos truques da ferramenta verificamos que o ODI uma
poderosa e flexvel ferramenta para processos ETL.
Desenvolvimento da Interface Carga Destino DIM_PRODUTO
O prximo passo para o projeto criar a Interface que carrega a tabela DIM_PRODUTO.
A tarefa para montagem da carga a mesma explanada anteriormente. Desta forma,
vamos direto para o Diagrama da Interface (Figura 23). Todas as tabelas desta estrutura
so provenientes da origem FIREBIRD.
Clicando na estrutura da aba Fluxo temos uma novidade: a caixa do LKM (Figura
24). Esta estrutura se encontra presente devido necessidade de carregar dados que
se encontram em outro banco de dados (neste caso o Firebird).
Com isso o ODI primeiro extrai estes dados da base de origem repassando os mesmos
para a stagging rea. Em relao ao IKM, este ter o papel de pegar os dados e inserir
nas tabelas de destino.
Para a carga da tabela destino DIM_PRODUTO, vamos utilizar o LKM SQL to Oracle.
J em relao ao IKM selecionamos o IKM Oracle Incremental Update no esquecendo
que neste devemos modificar a opo de Flow Control para No.
Para criar a interface de vendedores basta seguir os mesmos passos das interfaces
anteriores: selecionamos o nosso destino, a nossa origem, mapeamos os campos,
Esta carga possui somente o IKM, pois se trata do mesmo banco de dados e far a
carga com a estratgia incremental (IKM Oracle Incremental Update). Modificamos a
opo do Flow Control para No e executamos a interface.
Para a carga da dimenso tempo temos uma particularidade. A origem para esta carga
um arquivo texto com uma estrutura simples (Figura 28).
populando
um
campo
do
tipo
DATE
Na aba fluxo para este caso teremos um LKM e um IKM. O LKM que iremos utilizar ser
o LKM File to SQL. Para o IKM utilizaremos o Oracle Incremental, onde devemos setar
a opo Flow Control igual a No. Executando a interface podemos ver o resultado
no Operator, como explicado anteriormente.
Esta interface j tem uma lgica mais elaborada (Figura 30): estamos buscando as
informaes de duas origens: a tabela VENDA que tem sua origem proveniente do
banco de dados Oracle e da tabela ITVENDA que vem do banco de dados Firebird.
Alm dessas origens ainda fazemos joins com as nossas tabelas de Dimenses, pois
precisamos buscar os IDs que foram gravados anteriormente nas nossas interfaces. Os
joins que so realizados so os seguintes:
VENDA.NUMNF=ITVENDA.NUMNF;
VENDA.CDCLI=DIM_CLIENTE.CDCLI;
(DIM_PRODUTO.CDITEM=ITVENDA.CDITEM)
AND
DIM_PRODUTO.CDGRUPO=ITVENDA.CDGRUPO;
DIM_VENDEDOR.CDVEND=VENDA.CDVEND;
VENDA.DTVENDA=DIM_TEMPO.DATA_DIA.
Para este caso vamos inserir outro filtro (para reforar o exemplo de utilizao):
DIM_TEMPO.TURNO = 'Manh'. Notamos na Figura 30 que a estrutura DIM_TEMPO
possui, assim como explicado anteriormente, um pequeno funil amarelo representando
que existe um filtro no processo de carga desta estrutura.
No fluxo selecionamos o LKM SQL to Oracle para ler as tabelas do banco Firebird e o
IKM Oracle Incremental Update para fazer a carga. Marcamos tambm a opo Flow
Control no IKM para No. Como padro, podemos executar a interface e ver o seu
resultado no Operator.
Para inserir um novo Pacote, no projeto DW, clique com o boto direito sobre a opo
Pacotes e em seguida selecione Inserir Pacote. Na aba Definio nomeamos o
pacote. na aba Diagrama que ser desenvolvido o fluxo do processo de ETL. Nesta
mesma tela pode-se encontrar vrias funcionalidades (em forma de botes) que podem
ser detalhados com o simples passar do mouse sobre cada um.
A caixa de ferramentas do ODI contm diversos objetos que podem ser includos no
fluxo ETL do nosso pacote. Entre eles temos objetos de envio de e-mail, execuo de
comandos do sistema operacional, processo de espera de eventos (tempo limite ou
espera de algum registro em alguma tabela especfica), manipulao de arquivos, entre
outros. O detalhamento de cada componente pode ser visto no arquivo de ajuda do ODI,
que se encontra no menu Ajuda na parte superior da tela.
Para montar o fluxo devemos colocar as interfaces no diagrama do pacote. Para isso,
clicamos
sobre
alguma
interface
arrastamos
para
dentro
do
diagrama,
Para criar este fluxo devemos clicar no boto ok (Etapa seguinte ao xito) que contm
uma flecha verde, na barra superior. Aps este passo deve-se clicar sobre o objeto de
origem e arrastar at o objeto de destino, conforme Figura 32. Temos tambm o boto
ko (Prxima etapa ao falhar) que contm uma flecha vermelha, que desviar o fluxo
se algum erro acontecer. Aplicaremos o fluxo de erro em momentos onde for pertinente.
O mesmo procedimento deve ser repetido para o restante das Interfaces (Figura 33).
Aps isso, executaremos o pacote clicando no boto Executar (canto inferior direito).
OBSERVAO: Para manipular o local dos objetos no pacote, escolha o primeiro boto
(o cursor branco Escolha livre) na barra superior.
Outra tarefa importante pode ser realizada neste Pacote. Vamos implementar um LOG
personalizado para guardar as informaes importantes relacionadas a execuo deste
Pacote. Para isso usaremos a tabela LOG_CARGA que conter o ID da sesso do ODI
correspondente execuo e uma descrio informando se todos os processos da
carga executaram com sucesso ou com erro. Para completar esta demanda vamos
precisar criar uma Varivel e dois novosProcedimentos: um para inserir os dados e
outro para retornar o ID da sesso. Para completar esta tarefa precisamos entender
melhor o que uma Varivel e um Procedimento no ODI.
Criando Variveis
Para criar uma Varivel devemos acessar o projeto PROJETO_ETL, na aba projetos,
clicar com o boto direito sobre a opo Variveis e escolher Inserir Varivel. Na aba
Definio, colocamos o nome da varivel, escolhemos o seu tipo de dado e a sua Ao
(Figura 35).
Historiar: O ODI manter na aba Histrico todos os valores que a varivel j recebeu
durante as suas execues;
Valor mais recente: O ODI manter na aba Histrico o ltimo valor que a varivel
recebeu durante as suas execues;
Tabela dual Oracle: A tabela DUAL uma pequena tabela no dicionrio de dados
que o Oracle ou qualquer usurio pode referenciar para garantir um resultado
conhecido. Esta tabela possui apenas uma coluna, chamada DUMMY com apenas uma
linha, contendo o valor X. A DUAL criada automaticamente pelo Oracle, sob o
esquema SYS, mas pode ser acessada por outros usurios. Sempre que precisamos
verificar um resultado conhecido, como a data e hora do servidor ou o valor atual de
uma sequence, simplesmente fazemos a consulta referenciando a tabela DUAL. Isto por
que toda consulta SQL deve envolver uma tabela, porm, se utilizarmos qualquer tabela
povoada nesta consulta, teremos uma srie de inconvenientes, como estratgia de
acesso ou eventual utilizao de ndices, etc.
O teste para verificar se o procedimento foi realizado com sucesso pode ser feito ao
clicar no boto Renovar. Se a Ao da varivel Historiar ou Valor mais recente,
podemos ver o valor da varivel na aba Histrico (Figura 37).
CREATE: cria um objeto (uma Tabela, por exemplo) dentro da base de dados;
Alguns sistemas de banco de dados (Oracle, por exemplo) usam o comando ALTER,
que permite ao usurio alterar um objeto, por exemplo, adicionando uma coluna a uma
tabela existente. Outros comandos DDL: ALTER TABLE, CREATE INDEX, ALTER
INDEX, DROP INDEX, CREATE VIEW, DROP VIEW.
Nosso prximo passo adicionar a varivel no pacote e setarmos a mesma para ser
executada como demanda inicial, pois queremos ter o nmero da sesso para gravar
no log antes de comear o processo de ETL. Quando clicamos sobre a varivel,
podemos observar as suas propriedades, entre elas o Tipo, que pode ser setado de
vrias formas (o cone no pacote e suas propriedades mudaro conforme o que for
setado). As opes de Tipo so:
Declarar varivel: utilizado para receber um valor passado por parmetro quando
executamos um cenrio compilado;
Avaliar varivel: utilizado para fazer um teste lgico (=, <>, >, <, etc.) sobre o valor
da varivel. Se o teste lgico retornar verdadeiro, o fluxo segue para a prxima etapa
seguinte ao xito (flecha verde). Se retornar falso, o fluxo segue a prxima etapa ao
falhar (flecha vermelha);
Para o nosso pacote, escolheremos o tipo Renovar varivel, pois queremos que a
varivel contenha o valor retornado do select da aba Atualizando. Isto faz com que
tenhamos o valor da sesso do ODI atribuda a nossa varivel, com o objetivo de
gravarmos posteriormente no log (Figura 38).
Criando Procedimentos
Para criar Procedimentos no ODI devemos acessar a pasta DW, clicar com o boto
direito sobre a opo Procedimentos e depois em Inserir Procedimento (Figura 39).
Podemos clicar em OK para fechar esta janela (Figura 40). Observe que poderamos
incluir quantos comandos fossem necessrios, bastando apenas clicar no boto
Adicionar. Poderamos inclusive executar comandos de N tecnologias diferentes em
ordem seqencial.
parmetros
que
so
repassados
para
o Procedimento. Para inserirmos uma Opo clicamos com o boto direito sobre
o Procedimento e em seguida Inserir Opo.
Ser inserida uma Opo para indicar ao Procedimento se desejamos gravar uma
mensagem de sucesso ou erro. Uma Opo pode ser de trs tipos:
Marcar Caixa: Opo do tipo checkbox, onde possvel escolher entre as opes
SIM/NO;
Texto: Recebe um valor alfanumrico com capacidade ilimitada. O acesso a este tipo
de opo mais lenta do que o tipo Valor.
As flechas verdes indicam o fluxo sem erros no pacote. As flechas vermelhas indicam o
fluxo a ser tomado se algum erro ocorrer.
Para incluir as flechas vermelhas, clique no boto ko na barra superior, clique no objeto
origem e arraste para o objeto destino. Para as flechas verdes, funciona da mesma
forma, mas selecionando o boto ok. A ltima tarefa necessria para execuo do
pacote setar a Opo de cada procedimento de Update conforme a sua finalidade.
Temos, portanto dois procedimentos, um que registrar as mensagens de erro e outro
Executando um Pacote
Executando uma carga com sucesso (Figura 45) podemos notar na nossa tabela de
log (LOG_CARGA) o seguinte registro: A CARGA DA SESSAO 77001 TERMINOU
COM SUCESSO!
Neste ponto podemos simular um erro para verificar a diferena com o processo de
carga anterior. Para esta simulao vamos dropar a tabela FATO_VENDAS do banco
de destino. Executando o cenrio observamos que o fluxo foi desviado para o
procedimento de LOG e foi gravado o seguinte registro (Figura 46): A CARGA DA
SESSAO 79001 TERMINOU COM ERRO! VEJA OPERATOR PARA MAIS
DETALHES.
Percebe-se que existe uma diferena entre a Figura 45, que teve a execuo da carga
aplicada com sucesso e a Figura 46 que resultou em erro.
Gerando um Cenrio
Agora que temos nosso pacote completo, falta apenas criar um cenrio, que nada mais
do que a verso compilada do pacote. este cenrio que ser mandado para outros
ambientes (testes, produo, etc.) e que ser utilizado para rodar as cargas. Para gerar
um cenrio, basta clicar com o boto direito sobre o pacote e depois em Gerar cenrio
(Figura 47).
Quando geramos um cenrio, temos a opo de colocar uma verso para o mesmo e
tambm a opo de dizer quais so as variveis que o cenrio receber de entrada.
Neste exemplo no temos variveis de entrada, logo, podemos desmarc-las.
Pronto! Temos nosso cenrio criado, como pode ser visto na Figura 48.
Este cenrio funciona como qualquer programa compilado, onde no sofre mais
alteraes. possvel ento fazer modificaes nas nossas interfaces, modificar o fluxo
do pacote, etc., porm este cenrio continuar com a verso compilada anteriormente.
Podemos, no entanto, recriar o cenrio para refletir as modificaes que por ventura
foram realizadas, bastando para isso clicar com o boto direito sobre o cenrio gerado
e escolher a opo Regenerar....
Concluso
Links
PRODUCT
ORACLE:
The
Official
www.oracle.com/products/middleware/odi/oracle-data-integrator.html
Site
TECNOLOGIAS
ODI:
The
www.oracle.com/technology/software/products/odi/index.html
Official
Site