Download - ODI - Configurando Topologia
-
ODI Tutorial
February 17
2012 Uso da ferramenta Oracle Data Integrator (ODI) para a construo de processos ETL (Extract, Transform and Load). Nesta srie de tutoriais, utilizaremos o ODI para integrar dados de diferentes origens (bancos de dados diferentes e arquivos texto) para uma base de destino Oracle.
Topologia
-
Configurando as Topologias
Neste tutorial vamos definir e parametrizar a arquitetura fsica e lgica do nosso
projeto de ETL. No ODI o mdulo responsvel por organizar, armazenar e disponibilizar
as bases e objetos de origem e destino o Topology. As origens e destinos podem ser
definidas por Tecnologia, ou seja, podemos definir desde servidores de arquivo texto,
Oracle, MySQL, Jython e etc.
Para o nosso tutorial, a principio, iremos configurar somente topologias de origem e
destino para trabalhar com banco de dados Oracle.
Na figura acima, podemos ver os componentes do mdulo Topology, no tutorial
passado trabalhamos com o componente Repositories onde definimos o repositrio
de trabalho do nosso projeto. Neste tutorial iremos trabalhar com os componentes
Physical Architecture, Logical Architecture e Context.
Physical Architecture (Arquitetura Fsica)
A arquitetura fsica define quais so os parmetros de acesso ao ambiente fsico de
dados origem ou destino que estamos utilizando. Como por exemplo, armazenamento
de informaes do sistema, caractersticas de usurios, tipo do banco de dados
(Oracle, DB2, SQL Server,etc), formato de arquivo (XML, File), tipo de conexo e etc.
Em resumo a arquitetura fsica, armazena as informaes reais dos servidores de
dados assim como suas caractersticas de acesso.
Logical Architecture (Arquitetura Lgica)
A arquitetura lgica utilizada para fazer os agrupamentos dos esquemas fsicos. No
processo de desenvolvimento a referncia aos bancos de dados se d atravs do
esquema lgico e no atravs do esquema fsico. Isso nos permite uma grande
flexibilidade de parametrizao.
Contexts (Contextos)
O contexto o responsvel por fazer a unio entre o esquema fsico e o esquema
lgico.
-
O conceito aqui exposto muito importante para a continuidade e para as boas
prticas de utilizao do ODI, portanto para que fique bem claro o conceito dos
elementos, vamos imaginar um cenrio onde temos o seguinte desenho de ambientes:
Desenvolvimento, Testes, Homologao e Produo.
Para cada ambiente devemos criar um banco de dados fsico, pois cada um possui
estrutura, processamento, usurios de conexo e etc distintos. Por consequncia
teremos quatro arquiteturas fsicas para representar nosso cenrio.
Seguindo neste exemplo, iremos precisar de apenas uma arquitetura lgica para fazer
a ligao com os esquemas fsicos.
Veja a representao na tabela abaixo de como ficaria o desenho desta soluo:
Arquitetura Lgica Contexto Arquitetura Fsica
ORCL_ORIGEM Desenvolvimento ORCL_DESENV
ORCL_ORIGEM Teste ORCL_TESTE
ORCL_ORIGEM Homologao ORCL_HOMOL
ORCL_ORIGEM Produo ORCL_PROD
Como podemos observar, temos quatro contextos, para quatro esquemas fsicos
distintos, e apenas um esquema lgico. Com isso, o desenvolvimento do nosso projeto
ir utilizar uma determinada arquitetura lgica parametrizada para acessar as
informaes de um determinado banco de dados fsico dependendo do contexto
utilizado.
Quando for fazer o processamento de uma carga e o contexto for selecionado, o ODI
automaticamente ir buscas as informaes necessrias no esquema correspondente.
Por exemplo: a interface de dados est sendo executada com o contexto de
Homologao, os dados sero capturados do esquema fsico ORCL_HOMOL.
Outra vantagem e uma importante caracterstica do ODI a fcil reestruturao de sua
plataforma de desenvolvimento. Ainda seguindo o exemplo dado acima, vamos
imaginar que o banco de dados de testes teve que mudar de servidor e trocaram o
nome de identificao, vamos chamar de ORCL_TST. As alteraes que precisam ser
feitas esto relacionadas criao de uma nova arquitetura fsica, depois fazer a troca
do parmetro da arquitetura lgica ORCL_ORIGEM no contexto de Teste para esta
nova arquitetura fsica. Com esta flexibilidade no preciso nenhuma modificao nas
estruturas j desenvolvidas, estamos apenas redefinindo os parmetros das novas
arquiteturas fsicas a uma arquitetura lgica e no a um banco de dados ou recurso
fsico.
-
Criando a arquitetura Fsica
Relembrando: Quando criamos uma arquitetura fsica estamos direcionando um
ponteiro de conexo para um banco de dados fsico, para o nosso projeto devemos
criar os esquemas fsicos para as informaes de origem e destino.
No mdulo Topology como j havia falado anteriormente possui diversas tecnologias
para definir os servidores de dados, no nosso projeto iremos utilizar a tecnologia
ORACLE.
Antes de iniciar a parametrizao da arquitetura fsica garanta que os usurios de
banco de dados schemas/users que sero utilizados possua os grants necessrios
para visualizar as tabelas, as vises, e etc. Os schemas/users que iremos utilizar so
os mesmos criados no tutorial anterior. Para relembrar segue a relao na tabela
abaixo:
SCHEMA/USER PASSWORD
DW_ORIGEM DW_ORIGEM
DW_DESTINO DW_DESTINO
DW_TEMP DW_TEMP
Neste projeto vamos trabalhar com trs repositrios fsicos, um representando o
esquema de origem dos dados, um representando o esquema de destino, esse
desenho nos mostra um repositrio tipo DW (origem) e um repositrio tipo DM
(destino). Ainda temos mais um repositrio o DW_TEMP, quando estamos definindo a
arquitetura fsica, devemos parametrizar dois banco de dados fsicos que so
chamados de Schema(Schema) e Schema(Work Schema) vamos traduzir como
Esquema Principal e Esquema de Trabalho.
O Esquema Principal nos informa qual ser o esquema no banco de dados que
conter as tabelas que iremos fazer consultas ou gravar dados, ou seja, as tabelas
envolvidas diretamente no processo de ETL.
O Esquema de Trabalho indica o banco de dados que o ODI ir utilizar para criar os
objetos temporrios durante o processo de integrao (objetos com prefixos I$, C$,
etc).
Configurando o Esquema Fsico
Para inserir um servidor de dados acesse o mdulo Topology. Procure a aba Physical
Architecture, clique na pasta Technology, ir abrir vrias opes de tecnologia,
encontre e selecione a tecnologia ORACLE, neste instantes ser apresentada uma
opo identica a figura abaixo:
-
Agora pressione o boto direito do mouse e escolha a opo Insert Data Server,
conforme a figura abaixo.
Uma nova janela ser aberta, nesta etapa teremos duas atividades importantes por
fazer. A primeira delas configurar os acessos, identificar o servidor, colocar usurio e
senha de acesso ao banco de dados que ser o repositrio e a segunda atividade
configurar a forma de acesso, no nosso caso atravs de JDBC. Vamos ver como fazer a
primeira tarefa:
-
Data Server Parmetro
Name DW_ORIGEM
Technology Oracle
Instance / dblink (Data Server) Xe
User dw_origem
Password dw_origem
O prximo passo fazer a configurao do JDBC, para tanto, selecione a aba JDBC
dentro desta mesma janela de configurao, lembre-se que se voc clicar em qualquer
boto de validao ir produzir erro, pois o JDBC ainda no est parametrizado.
Quando abrir a janela do JDBC voc deve ver a seguinte figura:
-
JDBC Parmetro
JDBC Driver oracle.jdbc.driver.OracleDriver
JDBC Url jdbc:oracle:thin:@localhost:1521:xe
Aps fazer essas duas parametrizaes, teste a conexo. Clique no boto teste, dever
aparecer as prximas duas janelas, na primeira janela selecione o agent, deixe como
Local e pressione o boto Test.
-
Se o teste for bem sucedido aparecer a figura abaixo:
At esse instante s definimos o repositrio mestre para os servidores de origem e a
forma de conexo, ainda falta fazer a parametrizao mais importante, que definir a
rea de trabalho e a rea temporria. Clique em OK para seguir a configurao. Agora
devemos clicar no boto Apply, neste momento uma nova janela ir abrir. Nesta janela
iremos parametrizar o Esquema Fsico, veja na figura abaixo:
-
Nesta figura temos muitas informaes importante. A primeira coisa que devemos
fazer parametrizar os campos Schema (Schema) e Schema (Work Schema). O
parmetro Schema (Schema) representa o local fsico onde as tabelas do DW iro ser
armazenadas, o parmetro Schema (Work Schema) representa a rea temporria que
ser utilizada pelo ODI para gerar tabelas temporrias no processo de integrao.
Adotando o critrio de melhores prticas sempre parametrize com schemas distintos,
pois o ODI possui a caracterstica E-LT, ou seja, a transformao pode ocorrer tanto na
origem, quando no destino, sem a necessidade de um hardware proprietrio fazendo
as transformaes no meio do processo.
Nesta mesma janela podemos ver informaes sobre os prefixos das tabelas
temporarias (Work Tables) e tambm das tabelas de jornalizao (Journalizing
elements). Voc deve estar se perguntando para que serve esses dois conceitos ?
A jornalizao o conceito de manuteno de registros dirios, o propsito da mesma
garantir a integridade dos metadados.
-
As tabelas temporrias so criadas como espelho, de acordo com a necessidade do
processo de integrao. Todas as tabelas (trabalho e jornalizao) so criadas
automaticamente durante o processo de integrao dentro do schema/user definido
como esquema de trabalho (Work Schema). No ODI existe o conceito de Stagging
Area, que responsvel pela criao e armazenamento dos objetos temporrios do
ETL, este conceito ser revisto e abordado profundamente no momento em que
estivermos construndo as interfaces de integrao.
O que significa as extenses ? Abaixo segue uma breve explicao de cada prefixo:
E$: quando utilizamos tratamento de erros no ODI, os erros gerados so
gravados nesta tabela que criada por default como
E$_;
C$: criada quando estamos buscando os dados de um banco diferente do
destino. O ODI cria esta tabela, popula com as informaes da origem e depois
utiliza a mesma no processo de ETL. Criada por default como
C$_;
I$: criada durante o processo de ETL. Nesta tabela so resolvidos todos os
relacionamentos entre as tabelas envolvidas no processo, e depois de pronta
utilizada para popular a tabela de destino. Criada por default como
I$_;
J$, JV$ e T$: so tabelas criadas quando se est trabalhando com o conceito
de jornalizao.
Neste instante terminamos a parametrizao do Esquema Fsico de origem, repita todo
esse processo para o Esquema Fsico de destino, alterando o parmetro Schema
(Schema) para DW_DESTINO mas, mantendo o Schema (Work Schema) com
DW_TEMP, iremos utilizar o mesmo repositrio temporrio utilizado nos parmetros do
Esquema Fsico de origem, fazemos isso por praticidade e segurana, sabendo que
todos os objetos temporrios envolvidos no projeto sero criados no mesmo
repositrio. Esse tipo de deciso deve ser adotada de projeto para projeto, arquitetura
de banco de dados para arquitetura.
Data Server:DW_ORIGEM Parmetro
Name DW_ORIGEM.DW_ORIGEM
Schema (Schema) DW_ORIGEM
Schema (Work Schema) DW_TEMP
Data Server:DW_DESTINO Parmetro
Name DW_DESTINO.DW_DESTINO
Schema (Schema) DW_DESTINO
Schema (Work Schema) DW_TEMP
-
Criando Contextos
Os contextos que permitem que possamos ligar um Esquema Fsico a um Esquema
Lgico, relembrando que no momento de desenvolvimento o nico esquema disponvel
o esquema lgico, portanto criar os contextos de suma importncia para o nosso
projeto.
Para este projeto criaremos 4 (quatro) contextos para representar: desenvolvimento,
teste, homologao e produo.
No mdulo Topology, clique na aba Context, em seguida selecione o contexto Global,
este contexto criado automaticamente pelo ODI, clique com o boto direito, uma
nova jalena ser mostrada, conforme a figura abaixo:
Selecione a opo Insert e a janela abaixo ser apresentada:
-
Digite o nome do contexto e clique em OK para validar. Repita o procedimento para
criar todos os contextos. Aps o processo devemos ter a seguinte viso da janela de
contextos:
Criados os contextos, devemos agora parametrizar o esquema lgico.
-
Configurando o Esquema Lgico
Chegamos ao ltimo passo da configurao de Topologias do nosso projeto, lembrando
que esse trabalho dentro de uma estrutura de projeto ETL dinmica e a qualquer
momento poder surgir a necessidade da criao de novos servidores de dados
(baseados em sua tecnologia), como por exemplo, criar uma conexo com arquivo
texto.
No mdulo Topology clique na aba Logical Architecture e posteriormente na estrutura
Tecnologia Oracle, conforme figura abaixo:
Aps selecionada a tecnologia Oracle, clique com o boto direito no mouse, abrir a
janela mostrada acima, clique em Insert Logical Schema.
-
Vamos trabalhar o projeto apenas com o contexto de Desenvolvimento, e neste
instante definimos o nome do Logical Schema para os repositrios de Origem e
Destino, veja os parmetros na tabela abaixo:
Logical Schema Parmetro
Name LOGICAL_DW_ORIGEM
Context Desenvolvimento
Physical Schemas DW_ORIGEM.DW_ORIGEM
Devemos repetir o processo para o repositrio Destino:
Logical Schema Parmetro
Name LOGICAL_DW_DESTINO
Context Desenvolvimento
Physical Schemas DW_DESTINO.DW_DESTINO
Os demais contextos criados sero utilizados em Tutoriais futuros, at o final deste
tutorial apenas o contexto de Desenvolvimento ser utilizado.