ODI Series - Exportar Tabelas para Arquivo Texto

3,135 views

Published on

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.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,135
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
317
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

ODI Series - Exportar Tabelas para Arquivo Texto

  1. 1. March 5 2012ODISeriesEste tutorial demonstra os passos necessários para criar umprojeto e uma interface no Oracle Data Integrator (ODI) Exportandopara exportar uma tabela do banco de dados relacionalpara um arquivo texto. Tabelas
  2. 2. Visão GeralUma tarefa comum realizada com o Oracle Data Integrator é exportar dados de umatabela de um banco de dados relacional e gerar um arquivo texto. Esta tarefa é comumquando 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 resumeem 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áriospara a geração deste arquivo.Serão utilizados os módulos Designer e Operator. Com o Designer iremos criar oprojeto e as interfaces necessárias, assim como parametrizar todo o ambiente para ageração do arquivo e o módulo Operator para validar a execução do processo.Cenário de TrabalhoImagine-se trabalhando como DBA (Database Administrator) para uma empresa deTelecomunicações. Nesta empresa, você é responsável por gerenciar os bancos dedados e suprir as necessidades de integração de dados com outros sistemas. Emparticular você é responsável por todas as atividades de Carga, transformação evalidaçã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 enã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 acriação de um novo ambiente de trabalho.Com o ambiente criado será necessário criar um projeto e um interface para exportaros dados da tabela relacional para o arquivo texto e lembre-se sempre ORGANIZE SEUPROJETO NO INÍCIO.Pré-resquisitosAntes 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. 3. ODI – Configuração do ProjetoPara 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. 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. 5. 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. 6. 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:
  7. 7. ODI – Configuração do Banco de DadosPrecisamos criar um datastore, onde teremos as tabelas que serão utilizadas para onosso 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. 8. Nota: No final deste arquivo será disponibilizado os dois scripts de comandosSQL completos.
  9. 9. ODI – Configuração do Modelo de DadosPara 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. 10. 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.
  11. 11. 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:
  12. 12. ODI – Configuração de Topologia para ArqTxtDepois de criar o modelo de dados para o banco de dados devemos configurar autilização de arquivos textos dentro do Oracle Data Integrator. Para essa tarefateremos que utilizar dois módulos do ODI, o módulo Topology para configurar oarmazenamento físico do arquivo e o módulo Designer para configurar o modelo dedados para este arquivo texto.Para criar o esquema físico para um novo modelo de arquivo texto siga os seguintespassos: 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.
  13. 13. 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.
  14. 14. 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.
  15. 15. 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.
  16. 16. 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.
  17. 17. ODI – Configuração de Modelo para ArqTxtDepois de criar a topologia física e lógica para o nosso arquivo texto é o momento paraconfigurar o modelo de dados para o arquivo texto. Para criar o modelo de dados sigaos 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
  18. 18. 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:
  19. 19. 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:
  20. 20. Parâmetro (Aba Definition) ValorName CITIESAlias CITDatastore Type TableOLAP Type <Undefined>Resource Name EXP_CIDADES.TXT Parâmetro (Aba Files) ValorFile Format DelimitedHeading (Number of Lines) 1Record Separator MS-DOSField Separator OtherSymbol Field Separator “;”
  21. 21. 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 26. 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.
  22. 22. ODI – Criação da Interface para ExportaçãoPara 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.
  23. 23. 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
  24. 24. 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.STATE7. 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:
  25. 25. Na caixa Source devemos selecionar o LKM que definimos no primeiro passodeste artigo, LKM SQL to SQL.Na caixa Staging Area não devemos marcar nenhuma opção, pois para o nossoexemplo não é necessário.Na caixa Target, devemos selecionar o IKM correto, IKM SQL to File Appende também marcar todas as opções da caixa Option como Yes. Parâmetro ValorINSERT YesTRUNCATE YesGENERATE_HEADER Yes
  26. 26. 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.
  27. 27. 11. Agora vamos até o diretório onde o arquivo texto foi criado.12. Visão final do arquivo texto criado.
  28. 28. Comandos SQLComando 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);

×