Escolar Documentos
Profissional Documentos
Cultura Documentos
NOMENCLATURAS E MELHORES
PRÁTICAS DE POWER CENTER
Área:
Business Intelligence
14 de julho de 2011 Página 1 de 24
NOMENCLATURAS E MELHORES PRÁTICAS DE POWER CENTER
Índice
1. NOMENCLATURA DESENVOLVIMENTO.............................................................................. 3
1.1. NOMENCLATURA FOLDERS .............................................................................................. 3
1.2. NOMEMCLATURA MAPAS................................................................................................... 4
1.3. NOMENCLATURA SESSIONS ............................................................................................ 5
1.4. NOMENCLATURA WORKFLOW ........................................................................................ 6
1.5. NOMENCLATURA DE ARQUIVOS ................................................................................... 6
1.6. NOMENCLATURA DE LOGS E PATHS ........................................................................... 8
1.7. NOMENCLATURA DE CONEXÕES ................................................................................... 8
1.8. NOMENCLATURA DE SHORTCUTS ................................................................................ 8
1.9. USO DE VALORES DEFAULT ............................................................................................. 9
2. TRANSPORTE DE CÓDIGO ENTRE AMBIENTES .......................................................... 11
2.1. LABEL ......................................................................................................................................... 11
2.2. ASSOCIAÇÃO DOS OBJETOS ALTERADOS ............................................................. 11
2.3. APLICAÇÃO DE DEPLOY GROUP ................................................................................. 14
2.4. VERSIONAMENTO DE DEPLOY GROUP .................................................................... 14
3. CONEXÕES A BASE DE DADOS ............................................................................................. 15
4. MELHORES PRÁTICAS ............................................................................................................... 18
4.1. PREMISSAS ............................................................................................................................. 18
4.2. RECOMENDAÇÕES – CONSTRUÇÃO MAPAS.......................................................... 18
4.2.1. RECOMENDAÇÕES GERAIS PARA O DESENVOLVIMENTO .................... 18
4.2.2. SOURCES .......................................................................................................................... 19
4.2.3. TARGETS ........................................................................................................................... 20
4.2.4. LOOKUPS .......................................................................................................................... 20
4.2.5. FILTRO ............................................................................................................................... 21
4.2.6. AGREGATORS ................................................................................................................. 21
4.2.7. JOINERS............................................................................................................................ 22
4.2.8. SORT ................................................................................................................................... 22
4.2.9. MAPPLET ........................................................................................................................... 22
4.2.10. USO DE FLAT FILES .................................................................................................... 22
4.3. RECOMENDAÇÕES – CONSTRUÇÃO DE SESSIONS E WORKFLOW .......... 23
1. NOMENCLATURA DESENVOLVIMENTO
Exemplo:
Cobranca_Mobile, Cobranca_Ecob , Vendas_Sap...
O diretório com o sufixo Geral (exemplo: Cobranca_Geral) serve para transformações que utilizam
dados de mais uma fonte e para os processos de controle e criação do arquivo de parâmetro.
Atenção: A fonte de dados citada indica sempre o sistema transacional usado no processo.
Quando a origem for o próprio Datawarehouse o sufixo a ser utilizado é GERAL.
Exemplo:
Cobranca_Geral, Venda_Geral
OBJETOS REUTILIZÁVEIS
Objetos reutilizáveis como lookups, maplets, sources, targets e seguences são guardados em folders
com o sufixo fontes.
<Nome do Modulo>_<Fontes>
Exemplo:
Venda_Fontes
Atenção: Antes de alterar objetos compartilhados verificar todas as dependências que este objeto
pode ter.
• Sequencial Mapa
Seqüência numérica os mapas utilizam.
Durante a construção a forma mais fácil se saber qual a seqüência a ser usada é listar os
mapas no designer e usar o número seguinte ao ultimo.
Existem outros padrões que foram usados, mas que deixaram de fazer sentido quando foi
adotado um padrão único.
14 de julho de 2011 Página 4 de 24
NOMENCLATURAS E MELHORES PRÁTICAS DE POWER CENTER
Siglas como FLT, ARQ, TRT, TRP que serão encontradas, porém, não devem ser usadas.
• Descrição do mapa:
Descrição breve do que faz o mapa, apenas o necessário para identificar a função do
processo.
Exemplo:
MAP_CLI_11223_STG_ASS_PLANO
• Sequencial Session
Identificador único da sessão.
Para novas sessões, sempre acrescentar mais um na ultima seqüência usada em produção.
Exemplos de sistemas:
5-Amdocs Mobile
20-ComTA
21-WPP
22-PS8
25-BI
27-BI RH
29-SAP
30-APRM
31-SCC
32-ERS
33-SETTLER
34-PA
• Nome do mapa
Nome do mapa vinculado a sessão.
Exemplo:
S_12163_025_000_MAP_CLI_11614_STG_TROCA_NUM_MOB
Sessão que utilize os dados do próprio Datawarehouse (indicado 025) para ambiente de
stage (indicado 000)
• Sequencial Workflow
Identificador único do Workflow.
Para novos workflows acrescentar mais um na ultima seqüencial utilizada na produção.
Exemplo:
WKF_40012_000_025_LDR_RETENCAO_DW
A nomenclatura demonstra que o Workflow que faz carga dos arquivos que estão em stage (000)
para o DW (025) para as tabelas de retenção
Existem dois tipos de arquivos texto nos processos de ETL, para cada tipo existe um padrão.
ARQUIVOS STAGE
Exemplo:
ff_cli_ext_atend_aberto_base.txt
Regra de nomenclatura:
Estes arquivos possuem uma função temporária e são utilizados apenas no momento do
processamento do ETL. Cada módulo possui um local próprio para depositar estes arquivos e são
identificados através do path /bi/STAGE/<módulo>
ARQUIVOS LOADER
Os arquivos destinados para a carga das tabelas do modelo dimensional são escritos com letras
maiúsculas e nome do arquivo deve estar com o nome da tabela destino
Exemplo: BI_DIM_REGIONAL_VENDA.TXT
Arquivo de LOADER que será usado na carga da tabela BI_DIM_REGIONAL_VENDA
Para entidades com grandes volumes os arquivos podem ser divididos por regionais. Nestes casos a
regra apenas adiciona a sigla de regional no final do nome do arquivo.
Exemplo:
BI_DIM_ASSINANTE_RS.TXT
BI_DIM_ASSINANTE_PRSC.TXT
Arquivos com estas características ficam depositados diretório /bi/LOAD/FILE. Este local é
compartilhado e não há uma divisão por módulo.
Os arquivos de logs devem possuir o mesmo nome do workflow apenas adicionando no final do
nome a extensão log
O mesmo deve ser feito com os logs das sessions.
Exemplos:
a) Logs do Workflow
Path: /bi/venda/work/WorkflowLogs/
Nome log : WKF_40009_022_000_INIC_CARGA_ATEND_DADOS.log
Para os arquivos de BAD, o padrão é nome do arquivo que deveria ser gerado, porém, com o sufixo
BAD em vez de txt.
Vale a pena reparar que o nome segue a mesma regra do arquivo a ser gerado no target
Nome do arquivo a ser gerado no target: ff_stg_segmentacao_ps8.txt
Exemplo:
ORA_PC_USER_DWH_P00DW1
O padrão indica que esta conexão utiliza o usuário PC_USER, para acessar tabelas do banco
P00DW1 pertencentes ao owner DWH.
Geralmente os objetos destinados para este local são: Sources, Targets, Sequences e mapplets.
As definições envolvendo SOURCES devem ser criados em dois tipos subdiretórios: Flat files e
tabelas de banco.
Os nomes do source devem ter sempre o nome da entidade e os arquivos texto o nome do próprio
arquivo.
REGRA SOURCE
o ARQUIVOS TEXTO
SUB FOLDER: Flat_File
o TABELA BANCO
SUB FOLDER: Owner da tabela
Exemplo:
No exemplo, existem dois subfolders que identificam os owners onde os sources de tabelas estão,
DWH e P00CTA. Em ambos, os objetos são identificados pelo nome da entidade.
No caso de arquivos TXT basta colocá-los em FLAT_FILE, eles sempre são identificados com o prefixo
FF.
Atenção: Ao usar o objeto fonte como shortcut, a ferramenta coloca automaticamente a palavra
“shotcut_to” junto com o nome da fonte.
Esta parte inicial deve ser desconsiderada.
Exemplo:
Automático Power Center:
Shortcut_to_DM_DIM_EMPRESA_ATENDIMENTO_FIN
Correto:
DM_DIM_EMPRESA_ATENDIMENTO_FIN
Os valores default que são criados automaticamente durante a geração dos códigos não podem ser
usados.
Eles devem ser preenchidos com os paths correspondentes a localização de cada arquivo
14 de julho de 2011 Página 9 de 24
NOMENCLATURAS E MELHORES PRÁTICAS DE POWER CENTER
2.1. LABEL
Todas as alterações devem ser feitas e agrupadas na LABEL correspondente ao projeto. Caso seja
encontrado problemas em outro ambiente que não seja desenvolvimento uma nova LABEL deverá
ser criada e o número da versão alterada.
Exemplo do procedimento:
A label gera o DEPLOY GROUP com os objetos desenvolvidos.
Exemplo:
lbl_OS65033_Aparelhos_v1
gera o deploy group
grp_OS65033_Aparelhos_v1
No final da fase de testes unitários que dever ser realizados no ambiente de desenvolvimento, os
códigos modificados deve ser associados a label correspondente na ferramenta REPOSITORY
MANAGER.
Devem ser associados à label apenas a session que sofreu alteração. Desta forma se for alterado
apenas um mapa, deve ser levado somente a session referente a este mapa.
O Workflow só deve ser associado à label quando sofrer algum tipo de alteração.
Ex: ORA_PROVISORIO_ARMANDO_D00DW1
As conexões utilizadas deverão ser as padrões do power Center.
Ex: ORA_PM_USER_PRD_P00DW1
B) Comentários
Este campo serve para justificativa breve dos motivos da alteração e também deve ter o nome
do líder responsável e a data que associação está sendo feita.
Nomenclatura:
<Descrição breve das alterações> - <Nome do Líder> - <Nome da consultoria caso seja
necessário>(data da aplicação da label)
Exemplos:
Opção de extrema importância, ao indicá-la todos os objetos abaixo dela serão associados a
label. Assim a escolha dos códigos feita no passo 02
Após a associação dos objetos desenvolvidos a label, o deploy group deve ser aplicado ao
ambiente de testes, homologação e produção.
ERRO
grp_OS65033_Aparelhos_v1 grp_OS65033_Aparelhos_v1
ATENÇÃO: Ao encontrar erros, todos os ambientes afetados devem voltar a posição original antes
da aplicação do deploy.
Manter label com erro e sobrescrevê-la com nova versão não é recomendável.
Com todos os problemas corrigidos, uma nova label deve ser solicitada.
Em seu titulo a versão deverá ser destacada.
Exemplo: lbl_OS65033_Aparelhos_v2 (label)
grp_OS65033_Aparelhos_v2 (deploy)
Após a entrada em produção os códigos deverão ter a mesma label em todo os ambientes
Com as novas premissas, uma estratégia muita utilizada terá que deixar de ser usada. Por motivos
diversos, os projetos sempre precisam mudar a conexão nos ambientes de testes ou homologação
(maioria das vezes para apontar para o ambiente de produção do próprio do DW ou do transacional
através de usuários pessoais).O problema é que não é possível realizar isto sem alterar a versão do
código e por conseqüência desvinculá-lo da label.
Para possibilitar a mudança sem prejudicar o versiomento, os acessos ao banco de dados serão
feitos através de variáveis de conexão.
O valor das variáveis pode ser configurado através arquivos de parâmetro preservando desta forma
código.
NOMENCLATURA DEFINIDA
Conexão original: ORA_PC_USER_PRD_P00DW1
Variável : $DBConnection_ORA_PC_USER_PRD_P00DW1
PADRÃO
$DBConnection_ < prefixo sempre obrigatório> + ORA_PC_USER_PRD_P00DW1 <nome da
conexão>
EXEMPLOS:
• $DBConnection_ORA_PC_USER_PRD_P00DW1 = Variável da conexão
ORA_PC_USER_PRD_P00DW1
• $DBConnection_ORA_PC_USER_PRD_P00CTA = Variável da conexão
ORA_PC_USER_PRD_P00CTA
• $DBConnection_ORA_PC_USER_PP2_P00PP2 = Variável da conexão
ORA_PC_USER_PP2_P00PP2
2) Devem ser criados arquivos de parâmetro onde variável de conexão seja alimentada.
Estas conexões devem ser criadas no ambiente desejado.
[Operacional_Geral.WF:WKF_00004_000_025_LDR_OPERACIONAL]
$DBConnection_ORA_PC_USER_PRD_P00DW1 =ORA_PC_USER_USER_PRD_P00DW1 (conexão
existente)
[Operacional_Geral.WF:WKF_00001_000_025_EXT_META_VIEWS]
$DBConnection_ORA_PC_USER_PRD_P00DW1 =ORA_PC_USER_USER_PRD_H00DW1 (conexão
existente)
O arquivo de parâmetro pode referenciar o workflow todo ou apenas uma session. Este
apontamento é feito pelo cabeçalho do arquivo
[Venda_SAP.WF:WKF_60100_029_000_STG_RPL_EXTRACOES_SAP.ST:S_60150_029_000_MAP_VN
D_60150_FLT_J_1BNFDOC]
$DBConnection_ORA_PC_USER_PRD_P00DW1 = ORA_PC_USER_STG_S00DW1 (conexão existente)
4. MELHORES PRÁTICAS
4.1. PREMISSAS
B. Montar um escopo dos nomes de processos, workflow, sessions, commands e scripts que
serem utilizados durante o projeto.
C. Verificar se os objetos que irão ser utilizados no projeto não estão alocados para outros
projetos e comparar os objetos de desenvolvimento estão com a mesma versão de
produção, para o desenvolvimento ocorra na versão do objeto correta.
o Reduza o número de transformações, sempre existe um custo quando se move dados entre
as transformações;
o Qualquer mapa com mais de 50 objetos é simplesmente muito grande e DEVE ser quebrado
em múltiplos mapas.
o Verifique a compatibilidade da data types dos bancos de dados com os do Informática Power
Center;
o A utilização de Stored Procedures deixará o processo mais lento, pois o Power Center
precisará chamar a stored procedure para cada linha do processo;
o Operadores são mais rápidos que funções, por exemplo, utilize || ao invés de CONCAT;
o Desmarcar a opção OUTPUT das transformações quando a porta não for utilizada no
restante do processo. Para objetos que utilizam cache, todas as portas marcadas como
OUTPUT são armazenadas no arquivo de cache.
o Não deixar o mapa fazer conversão de datatype automaticamente, por exemplo, enviar um
valor numérico para um campo string. Utilize um TO_CHAR para converter o valor.
o Para grandes volumes o uso de “LookUps”, “Agregators”, “Joiners” deve estar com “Sorted
Input” .
4.2.2. SOURCES
o Procure não colocar queries complexas quando o acesso for do sistema transacional (colocar
somente com anuência do DBA).
o Caso a base não possua performance na leitura, troque o “where” do SQLOverride por um
filtro, deixando o “full scan”. Faça isso se a leitura em “full scan” for mais rápida que a leitura
com índices e se o volume dos dados lidos sem o filtro não forem grandes.
o Caso não esteja disponível o source no folder que o projeto está sendo desenvolvido avisar o
CM, para que o mesmo disponha o source de forma correta no folder desejado.
4.2.3. TARGETS
o O Update Strategy deve ser sempre a última transformação, ou seja, não deve existir
nenhuma transformação entre o Update Strategy e a tabela Target;
o Caso o mapa faça um update na tabela, utilize sempre a chave da tabela para fazer o update;
4.2.4. LOOKUPS
o Em caso de TXT não utilize lookups cujo arquivo exceda o tamanho de 500 Mb, procure
utilizar o joiner.
o Utilize apenas os campos que serão usados no processo, em caso de txt coloque esses
campos nas primeiras posições, pois só assim poderá eliminá-los da “lookup”.
o No caso da lookup ser um “flat file”, deixe o “flat” organizado pelo índice lookup (prefira o
sort do Unix para ordenar o arquivo).
o Não usar campos “string” na chave da lookup quando a chave for composta com campos
numéricos.
o Use cache enable e procure garantir que há memória suficiente para lookup não ir para o
disco.
BASEADOS EM TABELAS
o Use o índice da tabela para filtrar os registros e coloque “order by” na query (colocar
somente com anuência do DBA).
4.2.5. FILTRO
o Use o filtro no começo do mapa, o mais próximo possível do “Source Qualifier” para evitar o
trafego desnecessário de informações pelos mapas.
o Quando o fluxo possuir mais de uma condição baseada nos mesmos campos, utilize um
ROUTER, e utilize o grupo DEFAULT.
4.2.6. AGREGATORS
o Procure trabalhar com dados tipo number nas colunas do GROUP BY.
o Caso o Banco de Dados seja Oracle, utilize UTL_SMTP package se desejar ser avisado por e-
mail quando os processos forem cancelados inesperadamente.
4.2.7. JOINERS
o Sempre defina a menor tabela como “master” na transformação Joiner entre duas tabelas.
Isso irá manter o cache com o menor número de registros possível.
o Troque um Lookup por um Joiner sempre que estiver diante de um grande número de
registros a serem pesquisados.
4.2.8. SORT
4.2.9. MAPPLET
o Não utilize arquivos muito grandes em lookups (> 500 Mb), neste caso utilize JOINER.
o Se o txt for utilizado com JOINER ou LOOKUP, ordene-o antes com o comando do Unix
“sort”, ele é melhor que o SORTER do PowerCenter. Cuidado para não tratar números como
strings (ex: -k 2n,2).
o Não utilize chaves compostas de busca da LOOKUP e do JOINER que contenham campos
strings e números.
o Nunca altere o tipo dos campos de busca. Se os campos da busca forem numéricos, devem
ser ordenados como numéricos.
o Utilize para campos string oriundos do relacional a função REPLACESTR em uma function
para retirar os caracteres que são usados como delimitadores.
o Onde for possível, alterar os dados de campo data para number, obedecendo ao formato
yyyymmdd
o Colocar ‘Fail parent if this task fails” e “Fail parent if this task does not run” em Comands e
Sessions – Ao selecionar está opção, o Integration Service do Power Center para de rodar o
comando executado apresenta algum erro, sem isto o processo irá rodar até o final mesmo
tendo falha.
Exemplo:
SESSIONS
o O parâmetro do TRACING LEVEL da session deve estar sempre configurado para TERSE.
o O parâmetro do COMMIT INTERVAL da session deve estar próximo ao valor de linhas que
serão escritas no arquivo destino.
o Definir valor de Parâmetros de DTM buffer size = 100000000 e Default buffer block size =
2000000.
ATENÇÃO:
o Todas as sessions devem criadas como reutilizáveis, esta procedimento é fundamental para
que o DEPLOY GROUP funcione apenas para os objetos alterados.