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:
- Name: SAMPLE;
- Connector: HOST.DB2Connector(DB2Connector 9.1);
- User name;
- Password;
- Database: SAMPLE;
- Clicar em Test Connection para confirmar;
- 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.