March 5




                               2012
ODI
Series
Este tutorial demonstra os passos necessários para criar um
projeto e uma interface no Oracle Data Integrator (ODI)       Exportando
para exportar uma tabela do banco de dados relacional
para um arquivo texto.
                                                              Tabelas
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
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.
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.
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.
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:
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.
Nota: No final deste arquivo será disponibilizado os dois scripts de comandos
SQL completos.
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
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.
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:
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.
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.
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:PROCESSOINTEGRACAOARQUIVOS.
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.
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.
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
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:
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:
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           “;”
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.
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.
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
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:
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
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.
11. Agora vamos até o diretório onde o arquivo texto foi criado.




12. Visão 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');

ODI Series - Exportar Tabelas para Arquivo Texto

  • 1.
    March 5 2012 ODI Series Este tutorial demonstra os passos necessários para criar um projeto e uma interface no Oracle Data Integrator (ODI) Exportando para exportar uma tabela do banco de dados relacional para um arquivo texto. Tabelas
  • 2.
    Visão Geral Uma tarefacomum 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
  • 3.
    ODI – Configuraçãodo 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.
  • 4.
    4. Vamos parametrizaros 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.
  • 5.
    5. Na próximatela 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.
  • 6.
    6. Após importaros KMs a visão da pasta no estrutura de projeto deverá ser idêntica a que apresento na figura abaixo:
  • 7.
    ODI – Configuraçãodo 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.
  • 8.
    Nota: No finaldeste arquivo será disponibilizado os dois scripts de comandos SQL completos.
  • 9.
    ODI – Configuraçãodo 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
  • 10.
    3. Agora cliquena 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.
  • 11.
    O resultado podemosver 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:
  • 13.
    ODI – Configuraçãode 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.
  • 14.
    3. Clique naaba 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.
  • 15.
    5. Após clicarno 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:PROCESSOINTEGRACAOARQUIVOS.
  • 16.
    6. Ao clicarno 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.
  • 17.
    9. Uma novajanela 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.
  • 18.
    ODI – Configuraçãode 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
  • 19.
    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:
  • 20.
    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:
  • 21.
    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 “;”
  • 22.
    Para criar oscampos 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.
  • 23.
    ODI – Criaçãoda 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.
  • 24.
    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
  • 25.
    contido na tabelana 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:
  • 26.
    Na caixa Sourcedevemos 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
  • 27.
    9. Terminada essasconfiguraçõ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.
  • 28.
    11. Agora vamosaté o diretório onde o arquivo texto foi criado. 12. Visão final do arquivo texto criado.
  • 29.
    Comandos SQL Comando SQLpara 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');