29
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

ODI Series - Exportar Tabelas para Arquivo Texto

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: ODI Series -  Exportar Tabelas para Arquivo Texto

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

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

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

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

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

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

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

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

SQL completos.

Page 9: ODI Series -  Exportar Tabelas para Arquivo Texto

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

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

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
Page 13: ODI Series -  Exportar Tabelas para Arquivo Texto

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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');