Este documento fornece instruções para importar dados de um arquivo de texto para uma tabela de banco de dados usando o Oracle Data Integrator (ODI). Ele descreve como criar um projeto e interface no ODI para ler dados de um arquivo texto e atualizar uma tabela relacional. Além disso, explica como mapear os campos entre a origem e o destino e executar a interface para validar a carga dos dados.
Exercícios - Tutorial ETL com Pentaho Data Integration
ODI Series - Importar Arquivos Texto para Tabelas
1. March 11
2012
ODI
Series
Este tutorial demonstra os passos necessários para cria um
projeto e uma interface no Oracle Data Integrator (ODI) Importando
para importar um arquivo texto para uma tabela do banco
de dados relacional.
Tabelas
2. Visão Geral
Uma tarefa comum realizada com o Oracle Data Integrator é importar dados de um
arquito texto e atualizar uma tabela do banco de dados relacional. 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 importar esses dados. No post anterior caminhamos pelos passos para gerar um
arquivo texto e iremos utilizar essa mesma estrutura para realizar a tarefa de hoje.
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
leitura do arquivo texto e geração da tabela 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.
3. Pré-requisitos
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 banco 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.
5. Ter feito o tutorial ODI Series – Exportar Tabelas para Arquivo Texto -
http://idcube.blogspot.com/2012/03/odi-series-exportar-tabelas-para.html,
neste artigo você irá encontrar as parametrizações necessárias para a
manipulação de arquivo texto.
4. 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 Import-Texto-
Tabela, 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.
5. 4. Vamos parametrizar os Knowledge Modules necessários para importar o
arquivo texto para dentro da nossa tabela de Cidades. Precisamos do IKM SQL
Incremental Update, LKM File to SQL e CKM SQL. Para importar um KM,
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.
6. 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 File to SQL, depois repita o procedimento
para o Integration (IKM) e selecione o KM IKM SQL Incremental Update e o
último passo é para o Check (CKH) e selecione o KM CKM SQL conforme a
figura abaixo demonstra, após as seleções clique OK.
7. 6. Após importar os KMs a visão da pasta, a estrutura de projeto deverá ser
idêntica a que apresento na figura abaixo:
8. ODI – Criação da Interface para Importação
Podemos perceber que não fizemos a configuração de Modelo de Dados tão pouco de
Topologia, isto devido ao fato que iremos utilizar a mesma tabela criada no artigo
anterior (SRC_CITIES) e também iremos utilizar o mesmo Arquivo Texto
(EXP_CIDADES.TXT).
Faça um backup do arquivo EXP_CIDADES.TXT, e em seguida preencha o arquivo de
acordo com a figura abaixo:
9. Para criar a nossa interface siga os passos abaixo:
1. No módulo ODI Designer, clique na aba Project. Expanda nosso projeto
Import- Texto-Tabelas, então expanda a pasta Import-Txt-Tbl. 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 Imp-ArqTxt-Tbl
Optimization Contexto Global
Staging Area Different From Target Marcar
Selecione LOGICAL_DW_ORIGEM
10. 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 o modelo
SRC_CITIES para a janela Target DataStore e o modelo CITIES
(EXP_CIDADES.TXT) para a janela Sources.
4. No momento em que você arrastou o modelo SRC_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 que iremos fazer. Clique no botão Yes.
5. Se você ver bem o único campo preenchido automaticamente foi o campo
STATE. Conforme explicamos anteriormente.
11. 6. Para mapear os demais campos clique no campo Mapping e uma tela igual 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 dos campos.
Field Name Mapping
CD_CITY (null) CIT.CD_CITIES
NM_CITY (null) CIT.NM_CITIES
STATE (null) CIT.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:
12. Na caixa Source devemos selecionar o LKM que definimos no primeiro passo
deste artigo, LKM File to SQL.
Na caixa Target + Staging Area, devemos selecionar o IKM correto, IKM SQL
Incremental Update e marcar as opções da caixa Option como Yes de
acordo com o demonstrado na tabela abaixo:
Option Value
INSERT YES
UPDATE YES
COMMIT YES
DELETE_TEMPORARY_OBJECTS YES
13. 9. Com a configuração da aba Flow finalizada, clique na aba Control. E selecione
o KM correpondente, neste caso é o CKM SQL.
10. 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.
11. Agora que a interface Imp-ArqTxt-Tbl foi executa devemos verificar se foi
executada com sucesso e em seguida validar a carga dos dados na tabela. Abra
o módulo Operator e no painel de sessões procure a execução da sua
14. interface, neste caso fiz a pesquisa em All Executions e como podem ver na
figura abaixo a interface foi executada com sucesso.
12. Agora vamos verificar se a tabela foi carregada corretamente.
Abra o SQL Developr e monte um código SQL para listar apenas o Estado do
Rio de Janeiro conforme a figura acima. Veja que a cidade com o código 9608
está com o nome de AMERICANA, mas deveria ser NITEROI, o arquivo que
15. acabamos de carregar está com este pequeno erro. Para corrigir edite o arquivo
texto e altere AMERICANA por NITEROI e execute a interface novamente.
Após a correção do arquivo e re-execução da interface, veja que a tabela foi
corrigida, isso se deve ao fato de sido utilizado um IKM que permitiu a Inserção
de registros quando os mesmos não existiam e quando existiam permitiu a
Atualização do mesmo. Sempre quando for começar uma interface planeje
sempre toda a execução do código e as necessidade de comandos e
permissões dentro do banco de dados.