Você está na página 1de 29

March 5

ODI
Series

2012

Este tutorial demonstra os passos necessrios para criar um


projeto e uma interface no Oracle Data Integrator (ODI)
para exportar uma tabela do banco de dados relacional
para um arquivo texto.

Exportando
Tabelas

Viso Geral
Uma tarefa comum realizada com o Oracle Data Integrator exportar dados de uma
tabela de um banco de dados relacional e gerar um arquivo texto. Esta tarefa comum
quando temos sistemas que precisam ser alimentados mas no possuem conectores,
ou esses conectores tem um custo muito elevado e a soluo de integrao se resume
em gerar um arquivo texto para que ele seja utilizado na carga dos dados.
Este tutorial tem como misso principal guiar o leitor atravs dos passos necessrios
para a gerao deste arquivo.
Sero utilizados os mdulos Designer e Operator. Com o Designer iremos criar o
projeto e as interfaces necessrias, assim como parametrizar todo o ambiente para a
gerao do arquivo e o mdulo Operator para validar a execuo do processo.

Cenrio de Trabalho
Imagine-se trabalhando como DBA (Database Administrator) para uma empresa de
Telecomunicaes. Nesta empresa, voc responsvel por gerenciar os bancos de
dados e suprir as necessidades de integrao de dados com outros sistemas. Em
particular voc responsvel por todas as atividades de Carga, transformao e
validao dos dados.
Para comear esse projeto voc precisa criar ou ter um ambiente de trabalho
(repositrios Master e Work no ODI), caso queira criar um novo ambiente no ODI e
no sabe como leia o artigo - http://idcube.blogspot.com/2012/02/odi-tutorialiniciando-um-projeto.html, neste artigo voc ir encontrar todo o necessrio para a
criao de um novo ambiente de trabalho.
Com o ambiente criado ser necessrio criar um projeto e um interface para exportar
os dados da tabela relacional para o arquivo texto e lembre-se sempre ORGANIZE SEU
PROJETO NO INCIO.

Pr-resquisitos
Antes de iniciar as atividades do projeto, garanta que seu ambiente contempla os prrequisitos abaixo mencionados:
1.
2.
3.
4.

Ter
Ter
Ter
Ter

instalado o banco de dados Oracle Database 10g ou posterior


iniciado os servios e componentes do bando de dados
instalado o Oracle Data Integrator 10g
criado o ambiente de trabalho do ODI, repositrios, usurios e etc

ODI Configurao do Projeto


Para criar um novo projeto com o Oracle Data Integrator, siga os seguintes passos:
1. Inicie o ODI Designer: Start > Programs > Oracle > Oracle Data
Integrator > Designer. Selecione OracleDI Tutorial Series Work
Repository na tela de Login (campo Login Name). Entre o usurio e senha de
acesso, DW_DBA no campo user e DW_DBA no campo password. Clique OK
para efetuar o Login.

2.

Dentro do mdulo Designer, na pasta Projects, clique no cone Insert


Project

3. Uma nova tela aparecer, configure o campo Name com Export-TabelasTexto, este campo o nome do novo projeto que estamos criando para este
artigo. Veja que o campo Code carregado automaticamente. Quando
terminar clique no boto OK. Observe que ao lado esquerdo da tela de Projetos
ir aparecer o nome do Projeto que acabamos de criar conforme as figuras
abaixo.

4. Vamos parametrizar os Knowledge Modules necessrios para exportar dados


das tabelas para um arquivo texto. Precisamos do IKM SQL to File Append e
LKM SQL to SQL. Para importar um KMs, expanda a pasta de Projetos no
painel direito, encontre o diretrio Knowledge Modules e clique com o boto
direito, selecione a opo Import Knowledge Modules.

5. Na prxima tela iremos selecionar os KMs que vamos utilizar, clique no Loading
(LKM) e com o boto direito escolha Import KM e aps essa seleo encontre
na tela o KM a ser importado LKM SQL to SQL, depois repita o procedimento
para o Integration (IKM) e selecione o KM IKM SQL to File Append conforme
a figura abaixo demonstra, aps as selees clique OK.

6. Aps importar os KMs a viso da pasta no estrutura de projeto dever ser


idntica a que apresento na figura abaixo:

ODI Configurao do Banco de Dados


Precisamos criar um datastore, onde teremos as tabelas que sero utilizadas para o
nosso Projeto. Sigas os passos abaixo para poder criar e popular a tabela:
1. Crie a tabela fonte e popule executando os comandos SQL providos abaixo.
Expanda a conexo DW_ORIGEM > Tables > SRC_CITIES e verifique se a
tabela foi criada com sucesso.

2. Agora execute os comandos SQL para popular a tabela SRC_CITIES.

Nota: No final deste arquivo ser disponibilizado os dois scripts de comandos


SQL completos.

ODI Configurao do Modelo de Dados


Para criar um novo modelo de dados, siga os passos descritos abaixo:
1. Abra o ODI Designer. Clique em na pasta Models e selecione Insert Model
Folder. Digite DW_ORIGEM no campo Name. Este passo importante para
organizar os modelos de dados.

2. Aps criar a pasta, vamos criar a estrutura do modelo de dados. Para o nosso
Projeto o ambiente fonte (origem de dados) uma tabela, vamos parametrizar
este ambiente para poder utilizar a tabela criada no passo anterior. Preencha as
informaes tal qual descrita na tabela abaixo:
Parmetro
Name
Technology
Logical Schema

Valor
SRC_TABLES
Oracle
LOGICAL_DW_ORIGEM

3. Agora clique na aba Reverse e vamos parametrizar a engenharia reversa das


tabelas e importar para dentro do ODI a estrutura fsica das tabelas que esto
no banco de dados Oracle. Selecione o Contexto Desenvolvimento, o Tipo de
Objeto a ser parametrizado uma tabela portanto, selecione Table e depois
clique nos botes Apply e Reverse nesta sequncia.

O resultado podemos ver a esquerda do painel de modelo de dados, veja que


na estrutura abaixo do modelo que criamos SRC_TABLES existem vrios
objetos sendo que um deles a nossa tabela SRC_CITIES.
4. Aps fazer a engenharia reversa das tabelas, verifique se realmente a tabela foi
criada e para isso veja a sequencia abaixo, o primeiro que devemos fazer
selecionar a tabela que queremos:

Em seguida clique na tabela SRC_CITIES com o boto direito do mouse e em


seguida selecione a opo Data ou View Data.

Voc dever ter uma viso dos dados semelhante a figura mostrada abaixo:

ODI Configurao de Topologia para ArqTxt


Depois de criar o modelo de dados para o banco de dados devemos configurar a
utilizao de arquivos textos dentro do Oracle Data Integrator. Para essa tarefa
teremos que utilizar dois mdulos do ODI, o mdulo Topology para configurar o
armazenamento fsico do arquivo e o mdulo Designer para configurar o modelo de
dados para este arquivo texto.
Para criar o esquema fsico para um novo modelo de arquivo texto siga os seguintes
passos:
1. Entre no mdulo Topology. J dentro do mdulo, click na pasta Physical
Architecture e selecione Technologies > File. Clique com o boto direito e
em seguida selecione a opo Insert Data Server.

2. Uma nova janela ir abrir e nela devemos fazer duas parametrizaes, na


primeira aba denominada Definition d um nome para o esquema fsico, no
nosso caso o nome ser EXPORT-TBL-ARQTXT conforme mostrado na figura
abaixo.

3. Clique na aba JDBC para configurar a conexo para o arquivo texto. O


parmetro
JDBC
Driver
deve
ser
preenchido
com
com.sunopsis.jdbc.driver.file.FileDriver e o parmetro JDBC Url deve ser
preenchido com jdbc:snps:dbfile.

4. Clique no boto Test para verificar se a parametrizao feita est correta e em


seguida clique no boto Apply para continuar a configurao do esquema
fsico.

5. Aps clicar no boto Apply uma nova janela vai se abrir, para os campos
Directory (Schema) e Directory (Work Schema) entre o caminho
(diretrio) onde os arquivos sero gerados, para nosso projeto utilize o
seguinte caminho C:\PROCESSO\INTEGRACAO\ARQUIVOS.

6. Ao clicar no boto Apply para continuar a configurao ser apresentada uma


mensagem de aviso, onde informa que o esquema no possui Context. Neste
instante no h problema pois ainda iremos configurar o esquema lgico e o
contexto, resolvendo o problema. Caso no faamos essa configurao no
ser possvel utilizar as estruturas de arquivo texto. Clique no boto OK.

7. Para verificar se o esquema fsico foi criado corretamente veja ao lado esquedo
da tela de navegao se exite o esquema EXPORT-TBL-ARQTXT criado,
abrindo o esquema como se fosse um diretrio (clicando no smbolo +)
devemos ter a mesma viso que a figura abaixo nos mostra.

8. Dentro do mdulo Logical Architecture v at Technologies > File, com o


boto direito selecione a opo Insert Logical Schema.

9. Uma nova janela ser aberta, nela devemos parametrizar o esquema lgico
para gerao do arquivo texto, lembrando que no momento em que estamos
desenvolvendo uma interface o objeto atribudo como esquema de trabalho de
parametrizao sempre o esquema lgico por isso sua importncia vital.
Para manter a padronizao iremos utilizar o mesmo nome do esquema fsico
no esquema lgico EXP-TBL-ARQTXT. Neste passo tambm devemos definir
quais so os Contextos que iremos utilizar, para o nosso projeto iremos utilizar
os Contextos Global e Desenvolvimento. Para parametrizar basta clicar no
campo Physical Schema que um Drop List ser apresentado, selecione o
esquema fsico correpondente e em seguida clique no boto OK.

10. Valide se o esquema lgico foi criado, veja no painel de navegao se o


esquema lgico foi criado.

ODI Configurao de Modelo para ArqTxt


Depois de criar a topologia fsica e lgica para o nosso arquivo texto o momento para
configurar o modelo de dados para o arquivo texto. Para criar o modelo de dados siga
os passos abaixo:
1. No mdulo Designer v at a aba Models e clique com o boto direito sobre
o diretrio que j criamos anteriormente DW_ORIGEM, selecione a opo
Insert Model conforme apresentado na figura abaixo:

2. Uma nova janela ser apresentada, iremos preencher os parmetros nas abas
Definition e Reverse, conforme a tabela abaixo e as figuras ilustrativas:
Parmetro
Name
Technology
Logical Schema
Context
Type of object to Reverse-Engineer

Valor
SRC_FILES
File
EXPORT-TBL-ARQTXT
Global
Table

Aba Definition.

Aba Reverse.

Diferentemente do modelo de dados do banco de dados, no devemos fazer o


Reverse-engineer pois no temos o arquivo criado, logo no haver referncia
para a engenharia-reversa.
Aps a configurao clique no boto OK.
3. Veja se o modelo de dados foi criado, navegando no painel a esquerda, o
resultado deve ser algo semelhante a figura abaixo:

4. Agora voc deve criar a estrutura do arquivo texto, para isso clique com o
boto direito sobre o modelo criado SRC_FILES e selecione a opo Insert
Datastore.

5. Uma nova janela ser aberta, nela devemos configurar as abas Definition,
Files e Columns. Utilze a tabela abaixo para configurao dos campos:

Parmetro (Aba Definition)


Name
Alias
Datastore Type
OLAP Type
Resource Name

Valor
CITIES
CIT
Table
<Undefined>
EXP_CIDADES.TXT

Parmetro (Aba Files)


File Format
Heading (Number of Lines)
Record Separator
Field Separator
Symbol Field Separator

Delimited
1
MS-DOS
Other
;

Valor

Para criar os campos manualmente clique no boto


Name
CD_CITIES
NM_CITIES
STATE

Type
String
String
String

Physical Length
8
80
2

Logical Length
8
80
2

6. Terminada a configurao clique no boto OK e verifique no painel de


navegao a esquerda se o seu modelo de dados foi criado.

ODI Criao da Interface para Exportao


Para criar a nossa interface siga os passos abaixo:
1. No mdulo ODI Designer, clique na aba Project. Expanda nosso projeto
Export-Tabelas-Texto, ento expanda a pasta Export-Tbl-Txt. Clique com
o boto direito no componente Interfaces e selecione Insert Interface.

2. Na prxima tela, configure os parmetros da aba Definition de acordo com a


tabela abaixo:
Parmetro
Name
Optimization Context
Staging Area Different From Target

Valor
Exp-Tbl-ArqTxt
Global
Marcar
Selecione SUNOPSIS_MEMORY_ENGINE

3. Clique na aba Diagram, no painel esquerdo da tela clique na aba Models para
selecionar os modelos de dados de origem e destino. Arraste a modelo
SRC_CITIES
para
a
janela
Sources
e
o
modelo
CITIES
(EXP_CIDADES.TXT) para a janela Target DataStore.

4.

No momento em que voc arrastou o modelo CITIES para a janela Target


Datastore apareceu uma mensagem igual a figura abaixo, essa mensagem
indica que no modelo de origem e no modelo de destino tem alguns campos
e/ou todos com o mesmo nome, logo possvel fazer o mapeamento dos
campos automaticamente e isso iremos fazer. Clique no boto Yes.

5. Se voc ver bem o nico campo preenchido automaticamente foi o campo


STATE. Conforme explicamos anteriormente.

6. Para mapear os demais campos clique no campo Mapping e uma tela igua a
que mostrada abaixo ir aparecer, basta selecionar e arrastar o campo

contido na tabela na janela Sources. Outra forma tambm digitando o


contedo do campos.
Field Name
CD_CITIES (null)
NM_CITIES (null)
STATE (null)

Mapping
SRC_CITIES.CD_CITY
SRC_CITIES.CD_CITY
SRC_CITIES.STATE

7. Com a configurao da aba Diagram finalizada, clique na aba Flow. A


primeira viso que teremos e a mesma da figura abaixo:

8. Clique sobre cada uma das caixas, perceba que a primeira caixa representa o
ambiente origem ou Source, a caixa do meio a rea de transio ou Staging
Area e a ltima caixa o ambiente destino ou Target. Ao clicar sobre cada
uma das caixas teremos as vises mostradas nas figuras abaixo:

Na caixa Source devemos selecionar o LKM que definimos no primeiro passo


deste artigo, LKM SQL to SQL.

Na caixa Staging Area no devemos marcar nenhuma opo, pois para o nosso
exemplo no necessrio.

Na caixa Target, devemos selecionar o IKM correto, IKM SQL to File Append
e tambm marcar todas as opes da caixa Option como Yes.
Parmetro
INSERT
TRUNCATE
GENERATE_HEADER

Valor
Yes
Yes
Yes

9. Terminada essas configuraes clique no boto Apply e a partir deste instante


voc poder clicar no boto OK e sair da interface ou clicar no boto Execute
e submeter a interface, ou seja, executar o cdigo que acabamos de criar.
Vamos optar pela segunda opo, clique no boto Executar. Selecione o
Contexto Global e clique no boto OK. Em seguida clique no boto OK
novamente.

10. Agora que a interface Exp-Tbl-ArqTxt foi executada devemos verificar se foi
executada com sucesso e em seguida validar a criao do arquivo texto,
entrando no diretrio e abrindo o arquivo. Abra o mdulo Operator e no painel
de sesses procure a execuo da sua interface, neste caso fiz a pesquisa por
data e como podem ver na figura abaixo a interface foi executada com sucesso.

11. Agora vamos at o diretrio onde o arquivo texto foi criado.

12. Viso final do arquivo texto criado.

Comandos SQL
Comando SQL para criar a tabela:
-- Create Table SRC_CITIES
CREATE table "SRC_CITIES"
( "CD_CITY" NUMBER(8,0) NOT NULL,
"NM_CITY" VARCHAR2(80),
"STATE" VARCHAR2(2),
primary key("CD_CITY")
);

Comando SQL para popular a tabela:


-- Populate Table SRC_CITIES
insert into "SRC_CITIES" values ('00105','ADAMANTINA','SP');
insert into "SRC_CITIES" values ('00204','ADOLFO','SP');
insert into "SRC_CITIES" values ('00303','AGUAI','SP');
insert into "SRC_CITIES" values ('00402','AGUAS DA PRATA','SP');
insert into "SRC_CITIES" values ('00501','AGUAS DE LINDOIA','SP');
insert into "SRC_CITIES" values ('00550','AGUAS DE SANTA BARBARA','SP');
insert into "SRC_CITIES" values ('00600','AGUAS DE SAO PEDRO','SP');
insert into "SRC_CITIES" values ('00709','AGUDOS','SP');
insert into "SRC_CITIES" values ('00758','ALAMBARI','SP');
insert into "SRC_CITIES" values ('00808','ALFREDO MARCONDES','SP');
insert into "SRC_CITIES" values ('01004','ALTINOPOLIS','SP');
insert into "SRC_CITIES" values ('01103','ALTO ALEGRE','SP');
insert into "SRC_CITIES" values ('01152','ALUMINIO','SP');
insert into "SRC_CITIES" values ('01202','ALVARES FLORENCE','SP');
insert into "SRC_CITIES" values ('01301','ALVARES MACHADO','SP');
insert into "SRC_CITIES" values ('01400','ALVARO DE CARVALHO','SP');
insert into "SRC_CITIES" values ('01509','ALVINLANDIA','SP');
insert into "SRC_CITIES" values ('01608','AMERICANA','SP');
insert into "SRC_CITIES" values ('01707','AMERICO BRASILIENSE','SP');
insert into "SRC_CITIES" values ('01806','AMERICO DE CAMPOS','SP');
insert into "SRC_CITIES" values ('01905','AMPARO','SP');
insert into "SRC_CITIES" values ('02002','ANALANDIA','SP');
insert into "SRC_CITIES" values ('02101','ANDRADINA','SP');
insert into "SRC_CITIES" values ('02200','ANGATUBA','SP');
insert into "SRC_CITIES" values ('02309','ANHEMBI','SP');
insert into "SRC_CITIES" values ('02507','APARECIDA','SP');