![Page 1: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/1.jpg)
ODI Series
March 5
2012 Este tutorial demonstra os passos necessários 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
![Page 2: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/2.jpg)
Visão 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 não possuem conectores,
ou esses conectores tem um custo muito elevado e a solução de integração se resume
em gerar um arquivo texto para que ele seja utilizado na carga dos dados.
Este tutorial tem como missão principal guiar o leitor através dos passos necessários
para a geração deste arquivo.
Serão utilizados os módulos Designer e Operator. Com o Designer iremos criar o
projeto e as interfaces necessárias, assim como parametrizar todo o ambiente para a
geração do arquivo e o módulo Operator para validar a execução do processo.
Cenário de Trabalho
Imagine-se trabalhando como DBA (Database Administrator) para uma empresa de
Telecomunicações. Nesta empresa, você é responsável por gerenciar os bancos de
dados e suprir as necessidades de integração de dados com outros sistemas. Em
particular você é responsável por todas as atividades de Carga, transformação e
validação dos dados.
Para começar esse projeto você precisa criar ou ter um ambiente de trabalho
(repositórios Master e Work no ODI), caso queira criar um novo ambiente no ODI e
não sabe como leia o artigo - http://idcube.blogspot.com/2012/02/odi-tutorial-
iniciando-um-projeto.html, neste artigo você irá encontrar todo o necessário para a
criação de um novo ambiente de trabalho.
Com o ambiente criado será necessário 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 INÍCIO.
Pré-resquisitos
Antes de iniciar as atividades do projeto, garanta que seu ambiente contempla os pré-
requisitos abaixo mencionados:
1. Ter instalado o banco de dados Oracle Database 10g ou posterior
2. Ter iniciado os serviços e componentes do bando de dados
3. Ter instalado o Oracle Data Integrator 10g
4. Ter criado o ambiente de trabalho do ODI, repositórios, usuários e etc
![Page 3: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/3.jpg)
ODI – Configuração 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 usuário e senha de
acesso, DW_DBA no campo user e DW_DBA no campo password. Clique OK
para efetuar o Login.
2. Dentro do módulo Designer, na pasta Projects, clique no ícone Insert
Project .
3. Uma nova tela aparecerá, configure o campo Name com Export-Tabelas-
Texto, este campo é o nome do novo projeto que estamos criando para este
artigo. Veja que o campo Code é carregado automaticamente. Quando
terminar clique no botão OK. Observe que ao lado esquerdo da tela de Projetos
irá aparecer o nome do Projeto que acabamos de criar conforme as figuras
abaixo.
![Page 4: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/4.jpg)
4. Vamos parametrizar os Knowledge Modules necessários 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 diretório Knowledge Modules e clique com o botão
direito, selecione a opção Import Knowledge Modules.
![Page 5: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/5.jpg)
5. Na próxima tela iremos selecionar os KMs que vamos utilizar, clique no Loading
(LKM) e com o botão direito escolha Import KM e após essa seleção 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, após as seleções clique OK.
![Page 6: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/6.jpg)
6. Após importar os KMs a visão da pasta no estrutura de projeto deverá ser
idêntica a que apresento na figura abaixo:
![Page 7: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/7.jpg)
ODI – Configuração do Banco de Dados
Precisamos criar um datastore, onde teremos as tabelas que serão 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 conexão 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.
![Page 8: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/8.jpg)
Nota: No final deste arquivo será disponibilizado os dois scripts de comandos
SQL completos.
![Page 9: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/9.jpg)
ODI – Configuração 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. Após 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
informações tal qual descrita na tabela abaixo:
Parâmetro Valor
Name SRC_TABLES
Technology Oracle
Logical Schema LOGICAL_DW_ORIGEM
![Page 10: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/10.jpg)
3. Agora clique na aba Reverse e vamos parametrizar a engenharia reversa das
tabelas e importar para dentro do ODI a estrutura física das tabelas que estão
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 botões Apply e Reverse nesta sequência.
![Page 11: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/11.jpg)
O resultado podemos ver a esquerda do painel de modelo de dados, veja que
na estrutura abaixo do modelo que criamos SRC_TABLES existem vários
objetos sendo que um deles é a nossa tabela SRC_CITIES.
4. Após 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 botão direito do mouse e em
seguida selecione a opção Data ou View Data.
Você deverá ter uma visão dos dados semelhante a figura mostrada abaixo:
![Page 12: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/12.jpg)
![Page 13: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/13.jpg)
ODI – Configuração de Topologia para ArqTxt
Depois de criar o modelo de dados para o banco de dados devemos configurar a
utilização de arquivos textos dentro do Oracle Data Integrator. Para essa tarefa
teremos que utilizar dois módulos do ODI, o módulo Topology para configurar o
armazenamento físico do arquivo e o módulo Designer para configurar o modelo de
dados para este arquivo texto.
Para criar o esquema físico para um novo modelo de arquivo texto siga os seguintes
passos:
1. Entre no módulo Topology. Já dentro do módulo, click na pasta Physical
Architecture e selecione Technologies > File. Clique com o botão direito e
em seguida selecione a opção Insert Data Server.
2. Uma nova janela irá abrir e nela devemos fazer duas parametrizações, na
primeira aba denominada Definition dê um nome para o esquema físico, no
nosso caso o nome será EXPORT-TBL-ARQTXT conforme mostrado na figura
abaixo.
![Page 14: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/14.jpg)
3. Clique na aba JDBC para configurar a conexão para o arquivo texto. O
parâmetro JDBC Driver deve ser preenchido com
com.sunopsis.jdbc.driver.file.FileDriver e o parâmetro JDBC Url deve ser
preenchido com jdbc:snps:dbfile.
4. Clique no botão Test para verificar se a parametrização feita está correta e em
seguida clique no botão Apply para continuar a configuração do esquema
físico.
![Page 15: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/15.jpg)
5. Após clicar no botão Apply uma nova janela vai se abrir, para os campos
Directory (Schema) e Directory (Work Schema) entre o caminho
(diretório) onde os arquivos serão gerados, para nosso projeto utilize o
seguinte caminho C:\PROCESSO\INTEGRACAO\ARQUIVOS.
![Page 16: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/16.jpg)
6. Ao clicar no botão Apply para continuar a configuração será apresentada uma
mensagem de aviso, onde informa que o esquema não possui Context. Neste
instante não há problema pois ainda iremos configurar o esquema lógico e o
contexto, resolvendo o problema. Caso não façamos essa configuração não
será possível utilizar as estruturas de arquivo texto. Clique no botão OK.
7. Para verificar se o esquema físico foi criado corretamente veja ao lado esquedo
da tela de navegação se exite o esquema EXPORT-TBL-ARQTXT criado,
abrindo o esquema como se fosse um diretório (clicando no símbolo “+”)
devemos ter a mesma visão que a figura abaixo nos mostra.
8. Dentro do módulo Logical Architecture vá até Technologies > File, com o
botão direito selecione a opção Insert Logical Schema.
![Page 17: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/17.jpg)
9. Uma nova janela será aberta, nela devemos parametrizar o esquema lógico
para geração do arquivo texto, lembrando que no momento em que estamos
desenvolvendo uma interface o objeto atribuído como esquema de trabalho de
parametrização sempre é o esquema lógico por isso sua importância é vital.
Para manter a padronização iremos utilizar o mesmo nome do esquema físico
no esquema lógico EXP-TBL-ARQTXT. Neste passo também devemos definir
quais são 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 físico correpondente e em seguida clique no botão OK.
10. Valide se o esquema lógico foi criado, veja no painel de navegação se o
esquema lógico foi criado.
![Page 18: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/18.jpg)
ODI – Configuração de Modelo para ArqTxt
Depois de criar a topologia física e lógica 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 módulo Designer vá até a aba Models e clique com o botão direito sobre
o diretório que já criamos anteriormente DW_ORIGEM, selecione a opção
Insert Model conforme apresentado na figura abaixo:
2. Uma nova janela será apresentada, iremos preencher os parâmetros nas abas
Definition e Reverse, conforme a tabela abaixo e as figuras ilustrativas:
Parâmetro Valor
Name SRC_FILES
Technology File
Logical Schema EXPORT-TBL-ARQTXT
Context Global
Type of object to Reverse-Engineer Table
![Page 19: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/19.jpg)
Aba Definition.
Aba Reverse.
Diferentemente do modelo de dados do banco de dados, não devemos fazer o
Reverse-engineer pois não temos o arquivo criado, logo não haverá referência
para a engenharia-reversa.
Após a configuração clique no botão OK.
3. Veja se o modelo de dados foi criado, navegando no painel a esquerda, o
resultado deve ser algo semelhante a figura abaixo:
![Page 20: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/20.jpg)
4. Agora você deve criar a estrutura do arquivo texto, para isso clique com o
botão direito sobre o modelo criado SRC_FILES e selecione a opção Insert
Datastore.
5. Uma nova janela será aberta, nela devemos configurar as abas Definition,
Files e Columns. Utilze a tabela abaixo para configuração dos campos:
![Page 21: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/21.jpg)
Parâmetro (Aba Definition) Valor
Name CITIES
Alias CIT
Datastore Type Table
OLAP Type <Undefined>
Resource Name EXP_CIDADES.TXT
Parâmetro (Aba Files) Valor
File Format Delimited
Heading (Number of Lines) 1
Record Separator MS-DOS
Field Separator Other
Symbol Field Separator “;”
![Page 22: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/22.jpg)
Para criar os campos manualmente clique no botão .
Name Type Physical Length Logical Length
CD_CITIES String 8 8
NM_CITIES String 80 80
STATE String 2 2
6. Terminada a configuração clique no botão OK e verifique no painel de
navegação a esquerda se o seu modelo de dados foi criado.
![Page 23: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/23.jpg)
ODI – Criação da Interface para Exportação
Para criar a nossa interface siga os passos abaixo:
1. No módulo ODI Designer, clique na aba Project. Expanda nosso projeto
Export-Tabelas-Texto, então expanda a pasta Export-Tbl-Txt. Clique com
o botão direito no componente Interfaces e selecione Insert Interface.
2. Na próxima tela, configure os parâmetros da aba Definition de acordo com a
tabela abaixo:
Parâmetro Valor
Name Exp-Tbl-ArqTxt
Optimization Context Global
Staging Area Different From Target 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.
![Page 24: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/24.jpg)
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 é possível fazer o mapeamento dos
campos automaticamente e é isso iremos fazer. Clique no botão 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
![Page 25: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/25.jpg)
contido na tabela na janela Sources. Outra forma também é digitando o
conteúdo do campos.
Field Name Mapping
CD_CITIES (null) SRC_CITIES.CD_CITY
NM_CITIES (null) SRC_CITIES.CD_CITY
STATE (null) SRC_CITIES.STATE
7. Com a configuração da aba Diagram finalizada, clique na aba Flow. A
primeira visão 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 transição ou Staging
Area e a última caixa é o ambiente destino ou Target. Ao clicar sobre cada
uma das caixas teremos as visões mostradas nas figuras abaixo:
![Page 26: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/26.jpg)
Na caixa Source devemos selecionar o LKM que definimos no primeiro passo
deste artigo, LKM SQL to SQL.
Na caixa Staging Area não devemos marcar nenhuma opção, pois para o nosso
exemplo não é necessário.
Na caixa Target, devemos selecionar o IKM correto, IKM SQL to File Append
e também marcar todas as opções da caixa Option como Yes.
Parâmetro Valor
INSERT Yes
TRUNCATE Yes
GENERATE_HEADER Yes
![Page 27: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/27.jpg)
9. Terminada essas configurações clique no botão Apply e a partir deste instante
você poderá clicar no botão OK e sair da interface ou clicar no botão Execute
e submeter a interface, ou seja, executar o código que acabamos de criar.
Vamos optar pela segunda opção, clique no botão Executar. Selecione o
Contexto Global e clique no botão OK. Em seguida clique no botão OK
novamente.
10. Agora que a interface Exp-Tbl-ArqTxt foi executada devemos verificar se foi
executada com sucesso e em seguida validar a criação do arquivo texto,
entrando no diretório e abrindo o arquivo. Abra o módulo Operator e no painel
de sessões procure a execução da sua interface, neste caso fiz a pesquisa por
data e como podem ver na figura abaixo a interface foi executada com sucesso.
![Page 28: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/28.jpg)
11. Agora vamos até o diretório onde o arquivo texto foi criado.
12. Visão final do arquivo texto criado.
![Page 29: ODI Series - Exportar Tabelas para Arquivo Texto](https://reader036.vdocuments.pub/reader036/viewer/2022081719/5579a548d8b42ac1148b4a5a/html5/thumbnails/29.jpg)
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');