ODI Tutorial
February 11
2012
Uso da ferramenta Oracle Data Integrator (ODI) para a construção de processos ETL (Extract, Transform e Load). Neste séries de tutoriais, utilizaremos o ODI para integrar dados de diferentes origens (banco de dados: diferentes e arquivo texto) para uma base de destino Oracle.
Repositórios Mestre e Trabalho
Configuração repositórios Mestre e Trabalho
Para este tutorial iremos utilizar o ODI na plataforma Microsoft XP versão 10.1 e o banco de dados Oracle 10g Express Edition.
Será necessário criar os seguintes esquemas no banco de dados:
REP_ODI_MASTERo Criar na base Oracle um ”schema” para conter o repositório
Mestre do ODI. Este repositório conterá as estruturas das diferentes tecnologias usadas no ODI, informações de segurança de acesso, versionamento dos projetos e modelos desenvolvidos;
REP_ODI_WORKo Criar na base Oracle um ”schema” para conter o repositório
de Trabalho do ODI. Este repositório conterá as informações dos objetos desenvolvidos, modelo de dados, projetos, interfaces e como eles são utilizados, seus valores e propriedades;
DW_ORIGEMo Contém as tabelas de origem que serão utilizadas neste
tutorial;
DW_DESTINOo Contém as tabelas de destino que serão populadas;
DW_TEMPo Contém as tabelas temporárias do processo de ETL, este
esquema será utilizado para conexão tanto do banco de origem quanto o banco de destino;
Para criar os repositórios acima devemos seguir os seguintes passos:
Inicie o SQL Developer ou outro utilitário para criação do novo esquema/usuário, lembrando que devemos criar o esquema e setar as permissões básicas para tanto utilize o comando SQL abaixo:
Depois de criar o esquema/usuário crie uma conexão com o mesmo nome, isto irá facilitar no momento de validar as informações no banco de dados.
Repita o processo até que todos os repositórios tenham sido criados.
Criação do repositório Mestre
A primeira atividade que deve ser feita após a liberação do ambiente é a criação do repositório mestre (Master Repository). Para realizar esta tarefa devemos acessar a aplicação Master Repository Creation, o caminho padrão pode ser visto na figura abaixo:
No Master Repository Creation (Figura acima) devemos indicar qual esquema do banco de dados será o repositório Mestre do ambiente, neste caso REP_ODI_MASTER.
Master Repository ParâmetroDriver oracle.jdbc.driver.OracleDriverURL jdbc:oracle:thin:@localhost:1521:xeUser rep_odi_masterPassword rep_odi_masterTechnology Oracle
Após a configuração verificamos no repositório Mestre se as tabelas de configuração e suporte (prefixo SNP) foram criadas (veja figura abaixo). Utilize o SQL Developer para realizar essa tarefa.
Relação de tabelas criadas na configuração do repositório Mestre
SNP_ACTIONSNP_AGENTSNP_ALLOC_AGENTSNP_CONNECTSNP_CONNECT_PROPSNP_CONTEXTSNP_CONV_DTSNP_DATASNP_DTSNP_ENT_IDSNP_ENTITYSNP_FF_VALUEMSNP_FIELDSNP_FIELD_LOOKUPSNP_FLEX_FIELD
SNP_GRP_ACTIONSNP_HIST_VERSIONSNP_HOSTSNP_HOST_MODSNP_INST_OBJSNP_LAGENTSNP_LANGSNP_LANG_ELTSNP_LANG_TECHNOSNP_LB_AGENTSNP_LE_TECHNOSNP_LICENSESNP_LINE_ACTIONSNP_LINKSNP_LOC_REP
SNP_LOOKUPSNP_LOOKUP_VALUESNP_LSCHEMASNP_METHODSNP_MODULESNP_MORIG_TXTSNP_MTXTSNP_MTXT_PARTSNP_OBJECTSNP_OPEN_TOOLSNP_PROF_METHSNP_PROFILESNP_PSCHEMASNP_PSCHEMA_CONTSNP_PWD_POLICY
SNP_PWD_RULESNP_REM_REPSNP_SOL_ELTSNP_SOLUTIONSNP_SUB_LANGSNP_TECHNOSNP_U_O_M_REPSNP_USERSNP_USER_METHSNP_USER_OBJ_METHSNP_USER_PREFSNP_USER_PROFSNP_VERSION
Configuração de usuário de acesso
Nesta etapa do processo iremos criar um usuário para as conexões com os módulos do ODI (Designer, Topology, Operator, Security), esta etapa não é obrigatória, pois o ODI tem um usuário chamado SUPERVISOR que podería ser utilizado. Porém, as melhores práticas de arquitetura e segurança indicam que deve-se criar usuários específicos para cada tipo de atividade que for realizada dentro do ambiente.
Vamos criar um usuário chamado DW_DBA com permissões de super usuário. O Login deverá ser chamado de OracleDI Tutorial Series.
Acesse o módulo Security Manager conforme é demonstrado na figura abaixo:
Antes de continuar cabe uma explicação sobre o significado das nomenclaturas que iremos utilizar:
Login: Login de acesso ao ODI, é a conta que utilizaremos para acessar o ODI.
User: Usuário do ODI. O ODI nos permite criar diversos usuários, com diversos tipos de acesso e restrições diferentes.
Esquema: Esquema do banco de dados Oracle.
Na tela de login devemos criar um novo login para o nosso projeto e fazer a associação com o repositório Mestre, que foi criado na etapa anterior.
Clique no botão “New” será apresentada a tela de configuração do módulo Security Manager, conforme podemos ver na figura abaixo. Nesta tela deve-se parametrizar o novo Login, o usuário do ODI, a senha para este usuário e também parametrizar as configurações de conexão.
Vamos dividir a configuração em duas parte, na primeira vamos parametrizar o repositório Mestre e os parâmetros de configuração, utilizando o usuário SUPERVISOR (senha SUNOPSIS) como usuário de acesso. Veja como vai ficar essa configuração na figura abaixo, utilize os parâmetros listados na tabela abaixo:
OracleDI - Connection ParâmetroLogin Name OracleDI Tutorial SeriesUser SUPERVISORPassword SUNOPSIS
Database Connection (Master) ParâmetroUser rep_odi_masterPassword rep_odi_masterDriver List Oracle JDBC DriverDriver Name oracle.jdbc.driver.OracleDriverURL jdbc:oracle:thin:@localhost:1521:xeDefault Connection Marcar para transformar em default
esta conexão, toda vez que abrir os módulos do ODI o login irá aparecer como sugestão.
Agora que já temos um Login de acesso configurado, é o momento para a criação dos usuários de acesso. Para o nosso projeto iremos criar um usuário com previlégio de administrador.
Entre no módulo Security Manger, procure a pasta Users, clique com o botão direito no usuário SUPERVISOR e selecione a opção “Insert”.
É importante salientar que após criar um usuário o mesmo possui apenas os privilégios básicos de acesso.
O nosso usuário deverá conter os privilégios de Supervisor logo, marque a opção Supervisor que se encontra no final da tela de configuração. A configuração de cada usuário depende de sua utilidade dentro da estrutura do projeto. Se o usuário não pode ter privilégios de Supervisor é possível customizá-lo para as funções pretendidas.
Configurando o repositório de Trabalho
A última atividade de configuração dos repositórios é a criação e configuração do repositório de Trabalho. Esta configuração é feita utilizando o módulo Topology.
No momento de acessar o módulo Topology Manager, utilize as configurações criadas no passo anterior. Selecione o Login OracleDI Tutorial Series e informe o usuário e senha DW_DBA, conforme a figura abaixo:
Prosseguimos com a configuração do ambiente, neste ponto vamos inserir o repositório de trabalho. Dentro do módulo Topology Manager, clique na aba Repository.
Agora clique com o botão direito do mouse na opção Work Repositories e selecione a opção “Insert Work Repository”.
Comece a configuração do repositório de trabalho pela aba Definition conforme mostrado na figura.
Agora iremos configurar a aba JDBC.
Voltando para a aba Definition, testamos a conexão com o repositório de trabalho clicando na opção Test, desta mesma janela. Após o teste de conexão devemos indicar um determinado número de identificação (ODI) para o repositório que será utilizado pelo ODI e um nome para este repositório. Também deve fazer a escolha do tipo de repositório: Development ou Execution.
Após a configuração verificamos no repositório de Trabalho se as tabelas dos objetos de desenvolvimento e informações de execução foram criadas (veja figura abaixo). Utilize o SQL Developer para realizar essa tarefa.
Relação de tabelas criadas na configuração do repositório de Trabalho
SNP_COLSNP_CONDSNP_DIAG_PARAMSNP_DIAGRAMSNP_EXP_TXTSNP_FF_VALUEESNP_FF_VALUEWSNP_FOLDERSNP_GRP_STATESNP_IDSNP_INDIRECT_MREFSNP_JOINSNP_JOIN_COLSNP_KEYSNP_KEY_COLSNP_LINE_TRTSNP_LINE_TRT_UESNP_LINK_COORDSNP_LINK_DIAGSNP_LOC_REPWSNP_LOCKSNP_LOCKED_OBJECTSNP_MISSING_REFSNP_MOD_FOLDERSNP_MODELSNP_OBJ_DIAGSNP_OBJ_STATESNP_OBJ_TRACESNP_OBJECT_IDSNP_OBJECT_ID_COLSNP_ORIG_TXTSNP_PACKAGE
SNP_PLAN_AGENTSNP_POPSNP_POP_CLAUSESNP_POP_COLSNP_POP_CONSTRAINTSNP_POP_CONTEXTSNP_PROJECTSNP_REV_COLSNP_REV_CONDSNP_REV_FOR_TABLESNP_REV_JOINSNP_REV_JOIN_COLSNP_REV_KEYSNP_REV_KEY_COLSNP_REV_SUB_MODELSNP_REV_TABLESNP_SCENSNP_SCEN_FOLDERSNP_SCEN_REPORTSNP_SCEN_STEPSNP_SCEN_TASKSNP_SCEN_TXTSNP_SEQ_DATASNP_SEQ_SCENSNP_SEQ_SESSSNP_SEQUENCESNP_SESS_FOLDERSNP_SESS_STEPSNP_SESS_TASKSNP_SESS_TASK_LOGSNP_SESS_TXT_LOGSNP_SESSION
SNP_SOURCE_TABSNP_SRC_SETSNP_STATESNP_STATE2SNP_STEPSNP_STEP_LOGSNP_STEP_REPORTSNP_SUB_MODELSNP_TABLESNP_TASK_TXTSNP_TRTSNP_TXTSNP_TXT_CROSSRSNP_UE_ORIGSNP_UE_USEDSNP_UFUNCSNP_UFUNC_IMPLSNP_UFUNC_TECHNOSNP_USER_EXITSNP_VARSNP_VAR_DATASNP_VAR_PLAN_AGENTSNP_VAR_SCENSNP_VAR_SESS