quarta-feira, 9 de outubro de 2013

Treinamento ODI 11G (ODI 11G Training) 4/14

Vídeo número 4 (Video # four):

Criar Contexto, Arquitetura Física e Lógica e Modelos.
(Create Context, Logical and Physical Architecture and Models)



Video Transcript:

Português:
Click no botão para criar um novo contexto.
Informe o nome do contexto.
Digite: Development
Informe o código do contexto.
Digite: CONTEXT1
Informe a senha.
Digite: oracle1
Marque o checkbox: Default
Agora crie a arquitetura física.
Escolha o item "Oracle" e em seguida "Novo Servidor de Dados".
Digite o nome da conexão.
Como boa prática para a formação do nome, digite primeiro o SID e em seguidao nome do esquema.
Digite: ORCL_TRNREL
Informe o SID.
Digite: orcl
Informe o usuário.
Digite: TrRel
Informe a senha.
Digite: Laboratoriosql1
Informe o driver JDBC.
Informe a URL.
Informe o nome da conexão.
Digite: ORCL_TRNDIM
Informe o SID.
Digite: orcl
Informe o usuário.
Digite: TrDim
Informe a senha.
Digite: Laboratoriosql1
Informe o driver e a URL.
Crie a Arquitetura Lógica.
Escolha a opção "Oracle" e em seguida "Novo Esquema Lógico".
Informe o nome do esquema lógico.
Digite: ORCL_TRNREL
Agora crie o esquema lógico para a conexão com o banco de dados de destino.
Informe o nome do esquema lógico.
Digite: ORCL_TRNDIM
De volta à Arquitetura física crie um esquema físico para cada conexão com o BD.
Click com o botão direito sobre a conexão e escolha a opção "Novo Esquema Físico".
Associe a conexão com o esquema físico.
Adicione o contexto.
Associe o esquema físico ao esquema lógico.
Repita o processo para a conexão com o banco de dados de origem.
Agora crie um modelo para cada esquema (Origem e Destino). E importe as tabelas.
Digite o nome da pasta que irá conter os modelos dos dados de origem.
Digite o nome da pasta que irá conter os modelos dos dados de destino.
Click com o botão direito do mouse sobre a pasta "Origem" e escolha a opção "Novo Modelo".
Click vom o botão direito do mouse sobre a pasta "Origem" e escolha a opção "Novo Modelo".
Informe o nome do modelo.
Digite: TrnRel
Informe a Tecnologia.
Escolha: Oracle
Associe ao esquema lógico.
Escolha: ORCL_TRNREL
Click no botão [Engenharia Reversa] para retornar as tabelas do banco de origem.
Repita o processo para o banco de dados de destino.
Click com o botão direito do mouse sobre uma tabela e escolha a opção "Dados".
Fim do vídeo.


English:
Click the button to create a new context .
Enter the name of the context .
Type : Development
Enter the code context .
Type : Context1
Enter the password .
Type : ORACLE1
Mark the checkbox : Default
Now create the physical architecture .
Choose the item " Oracle " and then " New Data Server " .
Enter the connection name .
As good practice for the training name , first enter the SID and seguidao schema name .
Type : ORCL_TRNREL
Enter the SID .
Type : orcl
Inform the user .
Type : TrRel
Enter the password .
Type : Laboratoriosql1
Enter the JDBC driver .
Enter the URL .
Enter the name of the connection.
Type : ORCL_TRNDIM
Enter the SID .
Type : orcl
Inform the user .
Type : TrDim
Enter the password .
Type : Laboratoriosql1
Tell the driver and URL .
Create Logical Architecture .
Choose the " Oracle " and then " New Logical Schema " .
Enter the name of the logical schema .
Type : ORCL_TRNREL
Now create the logical schema to connect to the target database .
Enter the name of the logical schema .
Type : ORCL_TRNDIM
Back to Physical Architecture create a physical schema for each connection to the database .
Right click on the link and choose " New Physical Schema " .
Associate the connection with the physical schema .
Add context.
Associate the physical schema to the logical schema .
Repeat the process for connecting to the database source .
Now create a template for each schema ( Origin and Destination ) . And import the tables .
Enter the name of the folder that will contain models of the source data .
Enter the name of the folder that will contain the target data models .
Click with the right mouse button on the folder "Source" and choose " New Model " .
Click vom right- click on the folder "Source" and choose " New Model " .
Enter the model name .
Type : TrnRel
Notify Technology .
Choose : Oracle
Assign the logical schema .
Choose : ORCL_TRNREL
Click the button [ Reverse Engineering ] to return the database tables of origin .
Repeat the process for the database target .
Click with the right mouse button on a table and choose " Data " .
End of video.

Treinamento ODI 11G (ODI 11G Training) 3/14


Vídeo número 3 (Video # three):

Criar conexão com Repositório de trabalho (Create Work Repository connection)



Video Transcript:

Click no menu "ODI" e em seguida na opção "Conectar".
(Click on the menu "ODI" and then on "Connect".)

Click em [OK]
Escolha a aba "Repositórios".
(Choose the tab "Repositories".)

Click com o botão direito do mouse e escolha a opção "Novo Repositório de Trabalho".
(Click with the right mouse button and choose "New Work Repository".)

Altere  o usuário para: snpm1
(Change the user to: snpm1)

Click no botão [Testar Conexão]
(Click the [Test Connection])

Click no botão [Próximo]
(Click the [Next] button)

Digite a senha: trabalho
(Enter password: work)

Click no botão [Finalizar]
(Click the [Finish] button)

Click no botão [Sim].
(Click the [Yes] button)

Digite: WORKREP1
(Type: WORKREP1)

Click no botão [OK]
(Click the  [OK] button)

Repositório Criado.
(Repository created)

Treinamento ODI 11G (ODI 11G Training) 2/14


Vídeo número 2 (Video # two):

Criar usuário para o Repositório Master (Create user for Master Repository)



Video Transcript:

Criar usuário para o Repositório Master
(Create user for the Master Repository)

Click no menu "Arquivo" e em seguida na opção "Novo".
(Click the "File" menu and "New" option.)

Escolha a opção "Criar um Novo Log-in do Repositório ODI"
(Choose "Create a new login ODI Repository")

Click no botão [OK].
(Click the button [OK].)

Digite o nome do Log-in.
(Enter the name of the login.)

Digite: Master Repository
(Type: Master Repository)

Digite o nome do usuário.
(Enter the user name.)

Digite: SUPERVISOR
(Type: SUPERVISOR)

Informe a senha.
(Enter the password.)

Digite: Laboratoriosql1
(Type: Laboratoriosql1)

Informe os dados para conexão com o banco de dados do repositório.
(Enter the data for connecting to the database repository.)

Digite: snpm1
(Type: snpm1)

Informe a senha:
(Enter the password:)

Digite: oracle1
(Type: ORACLE1)

Em "Lista de Drivers" escolha "Oracle JDBC Driver".
(In "List of Drivers" choice "Oracle JDBC Driver".)

Informe a url de conexão com o BD.
(Enter the url connection to the database.)

Click no botão [Testar].
(Click the [Test] button.)

Click no botão [OK]
(Click the button [OK])

Usuário criado
(User created)

Treinamento ODI 11G (ODI 11G Training) 1/14

Este E-learning é o primeiro vídeo de um conjunto que será publicado demonstrando como aplicar técnicas de carga de um DW através de uma ferramenta de ELT, o Oracle Data Integrator 11G.

(This E-learning is the first video of a series to be published demonstrating how to apply load techniques to a DW through an ELT tool, Oracle Data Integrator 11g.)

Vídeo número 1 (Video # one):

Criar o Repositório Mestre (Create Master Repository)

Note que já existe um esquema de BD criado com o nome de snpm1 no Oracle.
(Note that's already exist a BD scheme created with the name of the Oracle snpm1.)

Informe a senha que você registrar para este esquema (Não obrigatoriamente a mesma do vídeo).
(Enter the password that you typed for this scheme (not necessarily the same as that video))



quarta-feira, 18 de setembro de 2013

SAP Business Objects Data Services (por Gláucia Sibele)

SAP Business Objects Data Services por Gláucia Sibele


O BO Data Services é um software que permite planejar, organizar, desenvolver e administrar de forma visual os processos de ETL.
Benefícios:
          Facilita o processo de organização de dados de diferentes fontes através de uma interface gráfica.
          Extrai, transforma e carrega os dados de fontes heterogenias em um único banco de dados usando processos que organizam os fluxos de carga.
          Compartilha objetos em um ambiente de ETL onde exista mais de um desenvolvedor.
          Permite a administração dos projetos via WEB.
Arquitetura do Data Services:
O SAP BO Data Services contêm diversos componentes para desenvolver e administrar as rotinas de ETL, sendo eles:
          Designer:
o    Interface de desenvolvimento para criar, testar e executar manualmente os processos de ETL.

          Repository Manager:
o    Permite criar, atualizar e verificar as versões dos repositórios locais e Central.

         Repositório Local: Armazena as definições dos objetos do Data Services Designer (como projetos, jobs, work flows e data flows) e metadados de origem/destino.
§  Cada desenvolvedor deve ter seu repositório local, ou seja, o repositório é individual

       Repositório Central: Componente opcional utilizado para apoiar o desenvolvimento multiusuário.
          Funciona como um SharePoint => Controla a versão dos objetos desenvolvidos.
          Apenas um repositório central para todos os desenvolvedores. Deve-se criar o repositório Central com segurança para que apenas usuários cadastrados tenham o acesso ao projeto e Jobs desenvolvidos.

o    Repositórios devem estar criados no servidor de banco de dados.

          Server Manager:
o     Responsável pela execução dos Jobs do Data Services Designer. Nele vinculam-se os repositórios locais para execução e configuração SMTP para envio de e-mail.
          Management Console
o     Provê a administração e gerenciamento dos recursos do Data Services Designer via WEB. Nele é possível:
         Agendamento, monitoramento e execução dos Batch jobs
         Interrupção da execução dos Batch Jobs   
         Configuração dos Repositórios Locais
         Configuração do Repositório Central
         Criação dos grupos e usuários para acesso ao Repositório Central

1.   Data Services Designer


Interface do Data Services Designer, possui:
- Barra de menu
- Project Area,
- Local Object Library
- Star Page.




}  Project Area: Possibilita visualizar os Jobs vinculados ao projeto, como também monitorar e verificar o log de execução. Contêm as seguintes abas.
       Designer: Criar, visualizar e gerenciar projetos. Fornece uma visão hierárquica de todos os objetos utilizados no processo.
       Monitor: Exibi o status das execuções dos Jobs e possibilita finalizar o processo durante a execução.
       Log: Local onde se visualiza o histórico completo de execução dos jobs. Também podem ser visualizados com o Data Services Management Console.



  
}  Local Object Library
Job: Objeto executável. Pode conter:
·         Scripts: Para envio de e-mail, deleção de registros no banco de dados, habilitar e desabilitar índices e demais verificações necessárias em banco de dados e etc.

·         Conditional: Objeto utilizado para uma condição de execução do processo.

·         Work Flow: Objeto onde seqüencia-se e ordena-se o fluxo de execução. Composto por Data Flows. Também é utilizado para definir estratégias de tratamento de erros que possam ocorrer durante a execução do Job (bloco Try/Catch).

·         Data Flow: Processo pelo qual os dados de origem são transformados e carregados no destino. Envolve a extração o tratamento e a transferência dos dados de origem de uma ou mais fontes para uma ou mais tabelas ou arquivos de destino.

Projects: Agrupa os Jobs do processo de ETL.
          Os Jobs devem ser associados a um projeto antes de serem executados na área de Projeto (Project Area) do Designer para que se possa monitorar e/ou cancelar o processo.
Datastore: Configuração da conexão com o banco de dados. Contêm a lista de tabelas que serão utilizadas no processo.
Formats: Definição dos Flat Files de origem e destino.
Transforms: Agrupa os componentes que serão utilizados para o processo de carga e demais transformações nos dados. Sendo os mais utilizados:
         Query: Lookups, funções e demais transformações
         SQL: Querys livres
         Case: Condicional para gerar uma ou várias saídas
         Merge: União dos dados vindos de várias origens
         Key_Generation: Geração da Surrogate Key
         History_Preserving: Slowly Change Dimension 2
         Table_Comparison: Update, SCD 1

 

  
Start Page:

Local para o desenvolvimento das rotinas de ETL.


terça-feira, 16 de julho de 2013

PL/SQL - Carga dimensão Tempo (Time Dimension Load)


Carga da Dimensão Tempo em PL/SQL
(Time Dimension load in PL/SQL)

Carga da dimensão de tempo com a seguinte estrutura em snow flake:
(Load of the time dimension with the following snow flake schema)


Para efeito didático o código carrega poucos campos nestas estruturas, porém é de fácil alteração para inclusão de novos cálculos de tempo.
(For didactic purposes the code loads few fields, but it is easy to change to include new time calculations.) Note that for english language natives, the six month period is unusual and can be dropped of the structure.

--Carga dimensão Ano (Year dimension load)

declare
  Data DATE;
  DataIni DATE;
  DataFim DATE;
  Data_Movel DATE;
BEGIN
  DataIni := to_date('2000/01/01','yyyy/mm/dd');
  DataFim := to_date('2040/12/31','yyyy/mm/dd');
  Data := DataIni;
WHILE Data <= DataFim LOOP
      INSERT INTO TRDIM.ANO ( ANO )
      VALUES ( TO_CHAR(extract(YEAR from Data)) );
      Data := add_months(Data,12);
      Data := add_months(Data,1) - extract(DAY from (add_months(Data,1)));
END LOOP;
COMMIT;
END;

--Carga dimensão Semestre (Six month period dimension load)

declare
  Data DATE;
  DataIni DATE;
  DataFim DATE;
  Data_Movel DATE;

BEGIN
  DataIni := to_date('2000/01/01','yyyy/mm/dd');
  DataFim := to_date('2040/12/31','yyyy/mm/dd');
   Data := DataIni;
WHILE Data <= DataFim LOOP
      INSERT INTO  TRDIM.SEMESTRE(SEMESTRE, DESCRICAO_SEMESTRE, ANO )
      VALUES
          (
            TO_CHAR(extract(YEAR from Data)) || DECODE(TO_NUMBER(TO_CHAR(Data,'Q'))
            ,1,'01'
            ,2,'01'
            ,3,'02'
            ,4,'02')
            ,DECODE(TO_NUMBER(TO_CHAR(Data,'Q'))
            ,1,'1º Semestre'
            ,2,'1º Semestre'
            ,3,'2º Semestre'
            ,4,'2º Semestre'),
            TO_CHAR(extract(YEAR from Data)) 
          );
      Data := add_months(Data,6);
      Data := add_months(Data,1) - extract(DAY from (add_months(Data,1)));

END LOOP;
COMMIT;
END;

--Carga dimensão trimestre (Quarter dimension load)

declare
  Data DATE;
  DataIni DATE;
  DataFim DATE;
  Data_Movel DATE;
BEGIN
  DataIni := to_date('2000/01/01','yyyy/mm/dd');
  DataFim := to_date('2040/12/31','yyyy/mm/dd');
   Data := DataIni;
WHILE Data <= DataFim LOOP
      INSERT INTO  TRDIM.TRIMESTRE(TRIMESTRE, DESCRICAO_TRIMESTRE, SEMESTRE,ANO)
      VALUES
          (
            TO_CHAR(extract(YEAR from Data)) || DECODE(TO_NUMBER(TO_CHAR(Data,'Q'))
            ,1,'01'
            ,2,'02'
            ,3,'03'
            ,4,'04')
            ,DECODE(TO_NUMBER(TO_CHAR(Data,'Q'))
            ,1,'1º Trimestre'
            ,2,'2º Trimestre'
            ,3,'3º Trimestre'
            ,4,'4º Trimestre'),  
            TO_CHAR(extract(YEAR from Data)) || DECODE(TO_NUMBER(TO_CHAR(Data,'Q'))
            ,1,'01'
            ,2,'01'
            ,3,'02'
            ,4,'02'),
            TO_CHAR(extract(YEAR from Data)) 
          );
      Data := add_months(Data,3);
      Data := add_months(Data,1) - extract(DAY from (add_months(Data,1)));
END LOOP;
COMMIT;
END;

--Carga dimensão mês (month dimension load)

declare
  Data DATE;
  DataIni DATE;
  DataFim DATE;
  Data_Movel DATE;
BEGIN
  DataIni := to_date('2000/01/01','yyyy/mm/dd');
  DataFim := to_date('2040/12/31','yyyy/mm/dd');
   Data := DataIni;
WHILE Data <= DataFim LOOP

      INSERT INTO TRDIM.MES (MES, DESCRICAO_MES, ANO, SEMESTRE, TRIMESTRE)
      VALUES
          (
             TO_CHAR(extract(YEAR from Data)) || TO_CHAR(Data, 'MM'),
            (CASE extract(MONTH from Data)
                  WHEN (1)    THEN ('JANEIRO')
                  WHEN (2)    THEN ('FEVEREIRO')
                  WHEN (3)    THEN ('MARÇO')
                  WHEN (4)    THEN ('ABRIL')
                  WHEN (5)    THEN ('MAIO')
                  WHEN (6)    THEN ('JUNHO')
                  WHEN (7)    THEN ('JULHO')
                  WHEN (8)    THEN ('AGOSTO')
                  WHEN (9)    THEN ('SETEMBRO')
                  WHEN (10)   THEN ('OUTUBRO')
                  WHEN (11)   THEN ('NOVEMBRO')
                  WHEN (12)   THEN ('DEZEMBRO')
            END) || ' DE ' || TO_CHAR(extract(YEAR from Data)),
            TO_CHAR(extract(YEAR from Data)),
            TO_CHAR(extract(YEAR from Data)) || DECODE(TO_NUMBER(TO_CHAR(Data,'Q'))
            ,1,'01'
            ,2,'01'
            ,3,'02'
            ,4,'02'),
            TO_CHAR(extract(YEAR from Data)) || DECODE(TO_NUMBER(TO_CHAR(Data,'Q'))
            ,1,'01'
            ,2,'02'
            ,3,'03'
            ,4,'04')
          );

      Data := add_months(Data,1);
      Data := add_months(Data,1) - extract(DAY from (add_months(Data,1)));
END LOOP;
COMMIT;
END;

--Carga dimensão Data (Day dimension load)

declare
  Data DATE;
  DataIni DATE;
  DataFim DATE;
  Data_Movel DATE;

BEGIN
  DataIni := to_date('2000/01/01','yyyy/mm/dd');
  DataFim := to_date('2040/12/31','yyyy/mm/dd');
  Data := DataIni;
  data_movel := DataFim;
WHILE Data <= DataFim LOOP
      INSERT INTO TRDIM.DATA (DATA,DIA_UTIL,ANO,SEMESTRE,TRIMESTRE,MES)
      VALUES
      (
      Data,
      CASE WHEN ( TO_NUMBER( TO_CHAR (Data, 'D') ) IN (1,7) ) THEN ('N')
           ELSE ('S') END,
      TO_CHAR(extract(YEAR from Data)),
      TO_CHAR(extract(YEAR from Data)) || DECODE(TO_NUMBER(TO_CHAR(Data,'Q'))
            ,1,'01'
            ,2,'01'
            ,3,'02'
            ,4,'02'),
            TO_CHAR(extract(YEAR from Data)) || DECODE(TO_NUMBER(TO_CHAR(Data,'Q'))
            ,1,'01'
            ,2,'02'
            ,3,'03'
            ,4,'04'),
            TO_CHAR(extract(YEAR from Data)) || TO_CHAR(Data, 'MM')
      );
      Data := Data + 1;
END LOOP;
COMMIT;

END;