Desenvolvimento

25 jun, 2012

Acelere a implementação de um projeto de integração com InfoSphere FastTrak

Publicidade

Pré-Requisitos:

  • IBM InfoSphere Information Server v8r5;
  • IBM InfoSphere FastTrack v8r5;
  • IBM InfoSphere DataStage v8r5;
  • IBM DB2 v9r7 com SAMPLE instalado, veja aqui como fazê-lo.

InfoSphere™ BigInsights Basic Edition    http://www-142.ibm.com/software/products/br/pt/infobigibasiedit

Introdução

IBM InfoSphere FastTrack é uma ferramenta que pertence à família de produtos InfoSphere e é projetado especificamente para analistas de negócios e técnicos, modeladores de dados e desenvolvedores. Ele fornece um conjunto de interfaces simples e intuitivas para desenvolver rapidamente projetos de integração de dados (ETL – Extraction, Transformation and Load – Extração, Transformação e Carga) que oferecem as características de uma tradução automática de requisitos de negócio. O FastTrack preenche a lacuna entre o analista de negócio e o usuário técnico.

As características cruciais do IBM InfoSphere FastTrack são: localização centralizada para especificações, interface Excel de importação e exportação, geração de jobs (trabalhos) DataStage com anotações de regras de negócios, geração de termos de negócios, os algoritmos de descoberta para mapear origem para o destino e suporte para o DataStage Enterprise Edition para contínua melhora do processamento por desenvolvedores Datastage.

IBM InfoSphere FastTrack é totalmente integrado na plataforma IBM Information Server para que as especificações, metadados e os jobs de ETL sejam compartilhados por toda suite, tais como Information Analyzer, DataStage e Business Glossary.

Desenvolvendo uma especificação do mapeamento

Passaremos por todo o processo para traduzir regras de negócios em um job para o DataStage, contendo recursos mais complexos e opcionalmente torná-lo executável.

  • Criar usuário através do Web Console:

1. Acesso o link http://servidor:9080/ibm/iis/console/index.jsp (servidor é o hostname onde está configurado o InfoSphere Information Server), veja figura 1.

2. Conectar com usuário com nível de acesso InfoSphere Information Server Administrator.

Figura 1 – Tela de entrada

3. Na aba Administration (Administração), abaixo de Naviagation (Navegação), selecionar Users and Groups (Usuários e Grupos) e clique em New User (Novo Usuário), veja figura 2:

Figura 2 – Tela de administração

4. Preencher os seguintes campos:

  • User name – (Nome do usuário): ftuser;
  • Password – (Senha): ftuser;
  • Confirm Password – (Confirme a senha): ftuser;
  • First Name (Given Name) – (Primeiro Nome): FastTrack;
  • Last Name (Family Name) – (Sobrenome): Developer.

5. Selecionar as seguintes atribuições:

  • Suite: Common Metadata Administrator – (Administrador de metadados comum);
  • Suite: Suite User – (Usuário suite);
  • Suite Component: DataStage and QualityStage User – (Usuário DataStage e QualityStage);
  • Suite Component: FastTrack Project Administrator – (Administrador de projetos de FastTrack);
  • Suite Component: FastTrack User – (Usuário FastTrack).

Figura 3 – Tela de cadastro de usuário

6. Clicar em Save and Close (Salvar e Fechar), veja figura 4:

Figura 4 – Tela de cadastro de usuário

  • Liberar acesso ao Projeto e Pastas do Desginer Client – (Cliente Designer)

1. Abrir o aplicativo IBM InfoSphere DataStage and QualityStage Administrator

2. Conectar com usuário com nível de acesso InfoSphere Information Server Administrator

3. Na aba Projects (Projetos), selecionar o projeto e clicar em Properties (Propriedades), veja figura 5:

Figura 5 – Tela do Administrador DataStage

4. Na aba Permissions (Permissões), clicar em Add User or Group (Adicionar usuários ou grupos), veja figura 6;

Figura 6 – Tela de Permissões do DataStage

5. Selecionar o usuário ftuser, clicar em Add (Adicionar) e clicar em Ok, veja figura 7:

Figura 7 – Seleção de usuário

6. Selecionar o usuário criado e alterar o User Role (Função do Usuário) para DataStage and QualityStage Developer (Desenvolvedor DataStage e QualityStage), veja figura 8:

Figura 8 – Tela de permissões

7. Clicar em Ok e depois em Close (Fechar) para sair do Administrador.

Neste momento, criamos um usuário que possui permissões para utilizar o FastTrack e também o DataStage. Desta forma, será possível gerar um job no DataStage a partir de um mapeamento criado no FastTrack.

Vamos iniciar as atividades no FastTrack; para isso, vamos nos conectar com o usuário criado nos passos anteriores. Veja figura 9:

Figura 9 – Tela de entrada

  • Configuração da fonte de dados.

1. Na aba Metadata (Metadados) selecionar Source Configuration (Configuração fonte) e clicar em New Connection (Nova conexão), veja figura 10:

Figura 10 – Tela de configuração fonte

2. Preencher os campos conforme abaixo:

  1. Name: SAMPLE;
  2. Connector: HOST.DB2Connector(DB2Connector 9.1);
  3. User name;
  4. Password;
  5. Database: SAMPLE;
  6. Clicar em Test Connection para confirmar;
  7. Clicar em Save & Close.

Figura 11 – Tela de cadastro de conexão

O FastTrack é integrado ao InfoSphere Information Server, sendo assim, as especificações, metadados e os jobs gerados são acessíveis por todos que utilizam InfoSphere Information Server, Information Analyzer e Business Glossary.

A estrutura armazenada no repositório de metadados do Information Server para uma tabela de banco de dados é: HOST.DATABASE.SCHEMA.TABLE.COLUMN, desta forma, todas as etapas que se seguirão vão se basear nesta ordem.

  • Criação do Host

1. Na aba Metadata selecionar Metadata Repository e clicar em New Host, veja figura 12:

Figura 12 – Tela do repositório de metadados

2. No campo Name digitar DW-DEMO e clicar em Ok, veja figura 13:

Figura 13 – Tela de cadastro de host

No início do artigo, foi mencionado que usaremos o banco de dados IBM DB2 com o SAMPLE instalado, caso não tenham feito, clique aqui e veja como:

  • Criação do Database

1. Na aba Metadata Repository, selecionar o Host criado e clicar em New Database, veja figura 14:

Figura 14 – Tela do repositório de metadados

2. Preencher os campos Host e Database Source Name e clicar em Ok, veja figura 1:

Figura 15 – Tela de cadastro de banco de dados

  • Importar os Metadados do banco de dados   

1. Na aba Metadata Repository, selecionar o Database criado e clicar em Import Metadata, veja figura 16:

Figura 16 – Tela do repositório de metadados

2. Selecionar a fonte criada no passo 3, veja figura 17:

Figura 17 – Tela de importar metadados

3. Informar o usuário e senha utilizado no passo 3 e clicar em Ok, veja figura 18:

Figura 18 – Tela de conexão ao banco de dados

4. Selecionar o esquema no qual foi instalado o sample e clicar em Import, veja figura 19:

Figura 19 – Tela de importar metadados

5. Selecionar o Host criado no passo 4, clicar em Next, selecionar o database criado no passo 5 e clicar em Finish, veja figura 20 e 21:

Figura 20 – Tela de importar metadados 1 / Figura 21 – Tela de importar metadados 2

6. Após o término do processo, clicar em Close, veja figura 22:

Figura 22 – Tela de import metadata

Neste momento, importamos os metadados para o repositório e ele já está disponível para os componentes do Information Server.

  • Criar um novo projeto

1. Na aba Home, clicar em New Project, veja figura 23:

Figura 23 – Tela inicial (Home)

2. Preencher o campo Name e clicar em Finish, veja figura 24 (existem outras opções ao clicar em Next, tais como usuários, grupos e outros, mas não serão abordados neste artigo):

Figura 24 – Tela de criação de projeto

Chegamos no ponto de construir o mapeamento de origem e destino, e o resultado desse mapeamento será um job no DataStage.

  • Criar um mapeamento de origem e destino

1. Na aba Mapping, selecionar Mapping Specifications dentro do projeto criado no passo 7 e clicar em New, veja figura 25:

Figura 25 – Tela de mapeamento

2. No Mapping Editor, selecionar a opção Overview, definir o nome do mapeamento e clicar em Save, veja figura 26:

Figura 26 – Tela de Overview da edição do mapeamento

3. No Mapping Editor, selecionar a opção Mappings, na sessão Browser, navegar por: Database Metadata, Host, Database, Esquema, Tabela. Neste exemplo: Database Metadata, DW-DEMO, SAMPLE, ADMINISTRATOR, EMPLOYEEINFO. Selecionar a tabela e arrastar até a coluna target, veja figura 27:

Figura 27 – Tela de mapeamento

4. Para facilitar o mapeamento da tabela fonte (Employee), vamos ordernar a coluna target de forma ascendente. Clique com botão direito do mouse no título da coluna target, veja figura 28:

Fgura 28 – Tela de mapeamento

5. Resultando, veja figura 29:

Figura 29 – Tela de mapeamento

6. Conectar as colunas da tabela Employee e Department que se encontram no mesmo lugar da tabela EmployeeInfo conforme abaixo, veja figura 30: 

Source Target
EMPLOYEE.BIRTHDATE EMPLOYEEINFO.BIRTHDATE
EMPLOYEE.BONUS EMPLOYEEINFO.BONUS
EMPLOYEE.COMM EMPLOYEEINFO.COMM
DEPARTMENT.DEPTNAME EMPLOYEEINFO.DEPTNAME
EMPLOYEE.EDLEVEL EMPLOYEEINFO.EDLEVEL
EMPLOYEE.EMPNO EMPLOYEEINFO.EMPNO
EMPLOYEE.FIRSTNAME EMPLOYEEINFO.FIRSTNAME
EMPLOYEE.HIREDATE EMPLOYEEINFO.HIREDATE
EMPLOYEE.JOB EMPLOYEEINFO.JOB
EMPLOYEE.LASTNAME EMPLOYEEINFO.LASTNAME
EMPLOYEE.MIDINIT EMPLOYEEINFO.MIDINIT
EMPLOYEE.PHONENO EMPLOYEEINFO.PHONENO
EMPLOYEE.SALARY EMPLOYEEINFO.SALARY
EMPLOYEE.SEX EMPLOYEEINFO.SEX
EMPLOYEE.WORKDEPT EMPLOYEEINFO.WORKDEPT

Figura 30 – Tela de mapeamento

  • Criar join entre as tabelas Employee e Department

1. No Mapping Editor selecionar a opção Properties, na aba Join clicar em Add Key, veja figura 31:

Figura 31 – Tela avançada de mapeamento

2. Selecionar a chave primária da tabela Department.DeptNo e a chave estrangeira da tabela Department.Workdept, veja figura 32:

Figura 32 – Tela definição de join

3. Clicar em Save, veja figura 33:

Figura 33 – Tela avançada de mapeamento

  • Criar uma regra de negócio com uma descrição informal

1. No Mapping Editor, selecionar a opção Mappings

2. Colocar o conteúdo abaixo na linha EmployeeInfo.DeptSize da coluna Rule Description dentro de Transformation

Se o tamanho do departamento de empregados é menor que 5, então SMALL. Se o tamanho é igual ou maior que 5, mas menor que 10, então MED. Senão o tamanho é LARGE, veja figura 34:

Figura 34 – Tela de mapeamento

  • Criar Lookup

1. No Mapping Editor, selecionar a opção Lookup Definitions

2. Clicar em Add Lookup Definition, veja figura 35:

Figura 35 – Tela de avançada de lookup

3. Preencher o campo Name com GetNumEmployees e clicar em Ok, veja figura 36:

Figura 36 – Tela de definição de lookup

4. Na sessão Browser, navegar por: Database Metadata, DW-DEMO, SAMPLE, ADMINISTRATOR. Selecionar a tabela ADEFUSER e arrastar até a coluna Lookup e selecoinar a tabela EMPLOYEE e arrastar até a coluna Sources, veja figura 37:

Figura 37 – Tela de lookup

5. Na aba Tables, clicar em Add Key, veja figura 38:

Figura 38 – Tela de lookup

6. Selecionar a chave primária ADEFUSER.WORKDEPT e a chave estrangeira EMPLOYEE.WORKDEPT, veja figura 39:

Figura 39 – Tela de entrada de join

7. Clicar em Save.

  • Mapear a tabela lookup na coluna EMPLOYEEINFO.NUMEMPLOYEES

1. No Mapping Editor, selecionar a opção Mappings

2. Clicar com botão direito na linha da coluna Source correspondente a coluna acima, veja figura 40:

Figura 40 – Tela de mapeamento

3. Selecionar a opção Add Lookup Field, veja figura 41:

Figura 41 – Tela de mapeamento

4. Selecionar a coluna NO_OF_EMPLOYEES, veja figura 42:

Figura 42 – Tela de escolha de campo da lookup

5. Clicar em Save

Ao final desta etapa, concluímos o mapeamento de origem e destino onde utilizamos join, lookup e uma regra de negócio. O próximo objetivo é gerar um job para o DataStage e torná-lo executável.

  • Gerar job para o DataStage

1. No Mapping Editor, selecionar a opção Mappings

2. Clicar em Generate Job, veja figura 43:

Figura 43 – Tela de mapeamento

3. Selecionar a pasta na qual o job e as definições das tabelas serão armazenadas e clicar em Next, veja figura 44:

Figura 44 – Tela de geração de job

4. Neste momento, já poderemos configurar os parâmetros de conexões. Clicar em Manage (não é obrigatório ter essas informações para gerar o job, mas isso acelera o trabalho do desenvolvedor ETL); veja figura 45:

Figura 45 – Tela de geração de job

5. Clicar em New e preencher os campos conforme abaixo; veja figura 46:

Figura 46 – Tela de gerenciamento de conexões

6. Efetuar um clique duplo no campo Password para abrir mais opções e selecionar Manage Parameters; veja figura 47:

Figura 47 – Tela de gerenciamento de conexões

7. Preencher os campos conforme abaixo e clicar em Ok; veja figura 48:

Figura 48 – Tela de gerenciamento de parâmetros

8. Clicar em Ok para fechar Manage Connection Configurations

9. Clicar em Next

10. Nesta página é possível alterar os nomes dos estágios que serão criados no datastage, neste momento vamos deixar os nomes padrões

11. Clicar em Finish, veja figura 49:

Figura 49 – Tela de geração de job

Os próximos passos não são obrigatórios para um analista de negócio (apenas recomendado), pois quem trabalhará com DataStage será o Desenvolvedor ETL.

  • Tornar o Job executável

1. Conectar no DataStage e abrir o job gerado; veja figura 50:

Figura 50 – Tela do job

2. Vamos alterar o parâmetro de senha para que seja criptografado no momento de executar o job. Clique em Job Properties; veja figura 51:

Figura 51 – Tela do DataStage

3. Na aba Parameters, alterar a coluna Type para Encrypted e já podemos colocar a senha do usuário do Banco de Dados. Clicar em Ok para fechar Job Properties; veja figura 52:

Figura 52 – Tela de propriedades do job

4. Duplo clique no estágio MappingContainer_001; veja figura 53:

Figura 53 – Tela do job

Este container contém a regra de negócio criada pelo FastTrack, verifique o conteúdo do campo Rule Description. veja figura 54:

Figura 54 – Tela de container

6. Substituir o estágio Generic_001 pelo Transformer, que se encontra no grupo de Processing no Palette; veja figura 55:

Figura 55 – Tela do DataStage

7. Selecionar o link Link_Join_001_Map_001 e posicionar o cursor do mouse na ponta do link e arrastar para o estágio Transfomer; veja figuras 56 e 57:

Figura 56 – Tela do container

Figura 57 – Tela do container

8. Realizar o mesmo procedimento com o link Link_EMPLOYEEINFO; veja figura 58:

Figura 58 – Tela do container

9. Apagar o estágio Generic_001; veja figura 59:

Figura 59 – Tela do container

10. Duplo clique no estágio Transformer_37 para abrir as propriedades e clicar em Column Auto-Match; veja figura 60:

Figura 60 – Tela de propriedades do transformer

11. Podemos observar que a única diferença entre os nomes das colunas de entrada e saída é o prefixo E1_, por isso na tela do Column Auto-Match iremos definir este prefixo no campo Ignore prefix do Input columns e clicar em Ok; veja figura 61:

Figura 61 – Tela de Auto-Match

12. Duplo clique na derivação da coluna DEPTSIZE para inserir a regra de negócio em um formato que o datastage entenda; veja figura 62:

Figura 62 – Tela de propriedade do Transformer

13. Como a regra de negócio: Se o tamanho do departamento de empregados é menor que 5, então SMALL. Se o tamanho é igual ou maior que 5, mas menor que 10, então MED. Senão o tamanho é LARGE. Se transforma para que o DataStage entenda: If Link_Join_001_Map_001.E1_NUMEPLOYEES < 5 Then ‘SMALL’ Else If Link_Join_001_Map_001.E1_NUMEPLOYEES < 10 Then ‘MED’ ELSE ‘LARGE’, veja figura 63:

Figura 63 – Tela de propriedade do Transformer

14. Essas eram as únicas atividades que o desenvolvedor ETL deveria ter feito. Estamos prontos para compilar e rodar o job. Vamos voltar para ao job principal clicando na aba EmployeeInfo e, para compilar, clique no ícone Compile, veja figura 64:

Figura 64 – Tela do DataStage

15. Clique em Close e depois clique em Run, veja figura 65:

Figura 65 – Tela de compilação do job

16. Clique em Run para executar o job, veja figura 66:

Figura 66 – Tela de execução do job

17. Como resultado com sucesso, todos os links ficarão na cor verde, veja figura 67:

Figura 67 – Tela de resultado com sucesso

18. Para validar o resultado, abra as propriedades do estágio EMPLOYEEINFO e clique em View Data, veja figura 68:

Figura 68 – Tela de propriedades do conector DB2

19. Clique em Ok na tela de parâmetros e note as colunas DEPTSIZE e NUMEPLOYEES, repare que a regra de negócio foi executada, veja figura 69:

Figura 69 – Tela dos dados

A partir de uma definição de origem e destino, foi possível gerar um job no DataStage com a necessidade de poucas de alterações.