Escolar Documentos
Profissional Documentos
Cultura Documentos
Junho, 2013
Clients
Mensagens
de log no
Director
Pastas definidas
pelo usuário
Pasta padrão
de jobs
Pastas de
definição
padrão de
tabela
POWER 6 – 18 Cores
POWER 6 – 8 Cores
AIX 6.1
Information Server
8.5.0.1v
Engine e
Repositorio/WAS,
CADA UM COM:
POWER 6 – 4 Cores
HA
32GB RAM MEMORY Entre
Engine e
AIX 6.1 Repositorio/WAS
Information Server
8.5.0.1v
1 Compute Node
Partições
1
1
2
2
HA
Entre o
3
4 3
Engine e o 4
Repositorio/WAS
Cada
node
DataStage
possui 4
partições
Partições
1 DataNode 1
2
3
1 4
2
3
4
5
5
6 6
7
8 7
8
Cada Data
Node possui
8 partições
DataStage Conductor
Players Players
NAMED PIPES
(AIX)
Processos Processo
osh s osh
Console do
Information Server
Information Server
ID de usuário
Console de
Administração Criar
usuário
novo
Usuários
Papel de
usuários Usuário
Papel de
Administrador
Papel de usuário
DataStage
20 © 2011 IBM Corporation
Credenciais de usuário – DataStage
Credenciais do
DataStage
Usuário e senha
do DataStage
Nome ou endereço IP
do servidor do
DataStage
23 © 2011 IBM Corporation
DataStage Administrator – aba “Projects”
Projetos do
Servidor
Propriedades dos
Projetos
Habilita runtime
column propagation
(RCP) como default
Variáves Globais
de Ambiente
User-defined variables
(Variáveis Globais)
Papel do
usuário
Add DataStage
users
Grupos e
usuários
disponíveis. Mapear Usuários
do DataStage
Usuário
adicionado no
DataStage
Selecionar o
papel no
DataStage
Gerenciador de Mensagens
definido para o Projeto
Host name,
port number of
application
server
DataStage server
machine / project
Tela do
Parallel
Palette
Projeto
Pasta de
jobs padrão
Pasta padrão
dos tables
definitions
Clicar para
selecionar
objetos do
repositório
Objetos
Selecionados
Ação:
35 Exportar © 2011 IBM Corporation
DataStage Designer – Opções de Importação
Importar todos os
objetos do arquivo
Importar
definições de
aquivo
Importar
Selecionar
o arquivo
Definir pasta do
repositório
Delimitado
r
Propriedades do
Parallel Propriedades -
Categorias
Propriedades
Disponíveis
Tipo Fonte
Table
Definition
Stage
categories
Estágios
Open
New
Window
Parallel jobs
Peek
Row
Propriedades Generator
do Job
Aba
Propriedades
Atribuir
valor à
propriedade
Propriedade
do Row
Generator
Load a
Table
Definition
Select Table
Definition
Especificar
valores e
propriedades
Propriedades
adicionais para
abrir
49 © 2011 IBM Corporation
DataStage Designer – propriedades do estágio “Peek”
Saída para
o Log
Aba “Parameters”
Parâmetros
Adicionar variável de
ambiente
Parâmetro Local
Inserir parâmetros
de job
(local/global)
Documentação
Executar
Compilar
Conduz até o
código com erro Clicar para mais
informações
Atribuir valores
aos parâmetros
Parar após N
número de
warnings
Parar após N
número de linhas
Log view
Selecione o
job para ver
as
mensagens
de log.
Mensagens do
estágio Peek:
úteis na validação
de informação.
Estágios de transformação:
Transformer, Remove Duplicates
Estágios Auxiliares:
Row Generator, Peek, Sort
Operadores de reestruturação,
agregação, algoritmos de
particionamento, algoritmos
de coleta.
Transformer Stage
O Transformer stage é utilizado em transformações de dados, sempre que houver regras de negócio e
métricas associadas a fórmulas matemáticas, lógicas, bem como constraints e diversas regras de lógica
de transformação.
É muito comum encontrarmos expressões complexas que quase sempre podem ser otimizadas nas
derivações do Transformer: Simplificar o uso de expressões de derivação é uma diretriz de qualidade de
desenvolvimento, deixando o código sujeito à facilidade de manutenção.
Em vez da expressão:
Preferir a expressão:
Para adicionar
novas colunas,
pode-se usar o
“INSERT” para
adicionar
colunas no
posicionamento
especificado ou
“APPEND” para
adicionar uma
nova coluna no
final.
• Para renomear
a coluna, basta
clicar na área
de metadados
e alterar o
nome.
• Quando a
derivação é
incompleta ou
inválida, o
campo fica
com a seleção
vermelha.
• Os tipos de
dados podem
ser editados
também.
79 © 2011 IBM Corporation
Estágios – Transformer – Constraints & Derivações
“Constraints” se
aplicam à linha
inteira;
É o recurso por
meio do qual o
desenvolvedor
pode “impedir” que
linhas fora do
contexto de
negócio
continuem sendo
processadas;
Sem constraints,
todas as linhas são
consideradas.
80 © 2011 IBM Corporation
Estágios – Transformer – Janela de Constraint
Uma “Constraint” é
definida por link;
Clicando no “Reject
Row” ou
“Otherwise/Log”,
todos os registros
que não atenderem
à constraint podem
ser reaproveitados
em outra saída;
Não é necessário “constraint” para os
rejeitados.
Aplicam-se a cada
coluna;
Especifica o valor
a ser movido para
uma coluna
destino (funções,
lógicas,
matemáticas,
constantes);
Toda a coluna
necessita de uma
derivação;
Nem toda a
derivação é uma
coluna de entrada.
Problema =
“vermelho”:
Erro de
parêntesis;
Erro de sintaxe;
Erro de nome de
link, derivação ou
demais objetos;
Funções
inexistentes;
Derivações
inexistentes;
...
Similares às variáveis de
programa;
O as transformer utiliza
para simplificar as
derivações e constraints;
Armazenam valores
durante a leitura;
etc.
Pode impactar no
desempenho também.
Pode impactar na
desempenho também.
Solicitar o documento do
“Modify Stage” para o suporte
ao desenvolvimento.
LookUp Stage
O estágio LookUp pode ter um único link de entrada, um ou mais links de referência, um único link de
saída e um único link de rejeição; Dependendo do tipo e configuração do(s) estágio(s) que estão
fornecendo as informações de lookup, múltiplos links de referência podem coexistir.
Em Propriedades, categoria Options, há seguintes opções de comportamento do LookUp (If not found):
• Fail: É o valor padrão. A falha na busca do valor na(s) tabela(s) lookup(s) de referência causa a falha
no job);
• Drop: O estágio elimina o registro se o mesmo não encontrar uma referência nas tabelas secundárias
e continua o processamento;
A vantagem do estágio LookUp é a performance. Desde que os links de referência tenham uma
quantidade de dados inferior a 2Gb, é muito mais rápido que o Join e o Merge no processamento de
combinação de dados, por isso é importante calcular a volumetria.
LookUp Stage
PONTOS DE ATENÇÃO:
O uso do Lookup Stage não é recomendado para grandes volumes de dados (volume superior a 2Gb).
Apresentam-se abaixo algumas das características do estágio lookup:
1. Trabalha e é limitado à memória RAM, por isso, pode causar lentidão no ambiente, ao utilizar
grande parte da memória;
2. Para grandes volumes de dados nos links de referência (volume > 2Gb), PREFERIR o emprego do
Join stage ou do Merge stage em vez de Lookup stage;
3. Para a informação, o uso do Lookup stage gera warnings nos logs, caso haja a duplicação de
registros da base de referencia (links tracejados).
IMPORTANTE:
• Na opção Range LookUp com múltiplos Ranges, torna-se difícil para o job resolver o LookUp sem o
particionamento Entire manualmente configurado, uma vez que você não consegue saber em qual
node o DataStage redistribuiu os Ranges: Dessa forma, em ambiente MPP, a diretriz é forçar o
particionamento ENTIRE para Range Lookup.
Join Stage
Apresenta o mesmo estilo de funcionamento da cláusula “Join” da linguagem SQL, valendo-se das
opções “inner join, left outer join, right join e full outer join”;
É preciso selecionar uma ou mais chaves (key). É mandatório que os nomes das chaves sejam os
mesmos, iguais em todas as fontes, principal e secundárias.
Join Stage
IMPORTANTE:
Sort Stage
Estágio que promove a ordenação de dados sempre através de uma ou mais chaves.
• Usá-lo de forma independente pode ser mais trabalhoso, mas abre um leque maior de opções de
otimização, tais como:
Importante:
Para maiores informações de otimização do estágio SORT, há um documento específico sobre esse
assunto, disponível para a equipe de Suporte ao Desenvolvimento e que pode ser divulgado aos
interessados.
Sequential File
É possível realizar a leitura paralela de arquivos
sequenciais (Arquivos ASCII e COBOL/EBCDIC) de
tamanho fixo ou variável.
Remove Duplicates
• Em diversos cenários nos quais foram sugeridas a substituição do “Sort interno” acoplado para o
“Stage Sort” independente, foi possível comprovar uma melhoria no desempenho dos jobs, pois o
estágio “Sort” permite o uso da opção Restrict Memory Usage com valores que vão de 20 a 200
Mb, além do reaproveitamento de ordenações anteriores.
Dicas: Manter o particionamento Auto. Caso o resultado seja insatisfatório, modificar a propriedade do
particionamento escolhendo a opção de Hash em caso de chaves de remoção alfanuméricas, decimais e
outros tipos de dados, ou Modulus - mais veloz - em caso de chaves de remoção do tipo de dado inteiro
(int16, int32, int64).
Estágio Aplicabilidade
Indicado para conversões de dados (tipos de dados do tipo “date” e “time”
que não são default), uso de “trim” para tirar espaços, tratamento de
nulidade, drop de colunas, bem como o “rename” de colunas.
É o mais indicado estágio para filtro de registros com base no valor de uma
informação: a vantagem é uma compilação mais rápida do job e um
desempenho melhor, uma vez que esse operador foi desenvolvido apenas
para a função de filtro.
É o mais indicado estágio para a criação de colunas com valores constantes,
em vez de declará-los diretamente no Transformer Stage, por ser um
operador específico para esse fim.
No DataStage, é usado para a comparação de colunas em processos de
cargas incrementais: O CheckSum Generator não gera uma Surrogate Key,
mas tão somente uma chave de hash que pode auxiliar na geração da
Surrogate Key.
Ao usar o LookUp file set, um arquivo será fisicamente criado em cada
partição, referenciados por um descriptor, que, por convenção, tem um
sufixo ".fs". O LookUp File Set poderia ser usado em caso reutilização de
dados, com a mesma velocidade e limitação do LookUp Stage.
Paralelismo de Pipeline:
O grau de paralelismo nada mais é que o número de nodes que existe no arquivo
$APT_CONFIG_FILE.
• Implementar jobs com muitos estágios pode constituir um risco, pois, ao concorrer com
os demais jobs, dependendo do grau de paralelismo adotado, resultaria em centenas ou
até mesmo milhares de processos concorrentes, de modo que os outros fluxos do
Control+M pudessem ser afetados em função dos limites da máquina.
• Para evitar isso, algumas ações devem ser reavaliadas, tais como:
• Uma janela de carga estratégica e acurada, pensada para cada um dos fluxos
do Control+M de processamento do DataStage, conforme já orientado;
O programa como é
visualizado pelo
desenvolvedor no Designer.
O programa em tempo de
execução com arquivo de
configuração
APT_CONFIG_FILE configurado
para grau 4, para todos os
estágios.
Tópico Avançado:
Conceito
Quando trabalhamos com dados de forma paralela, é necessário entender que os dados serão
dividos em blocos pela quantidade de partições. De uma forma bastante simplista, seria o mesmo
que dizer que um processamento de 80 Gb, por exemplo, ao ser submetifdo a um paralelismo de
grau 8, ou seja, 8 nodes, como resultado teríamos 8 porções de 10gb subdivididas pela(s)
máquina(s).
Vantagens
Tempo de processamento 8 vezes melhor, mais rápido.
Pontos de atenção
Quando distribuímos dados pelas partições, é necessário garantirmos que a forma como
esses dados são distribuídos seja orquestrada de modo que os mesmos possam ser
organizados sem perdas no momento em que for necessário encontrá-los para uma
agregação, join, remoção de duplicados etc.
Para garantirmos essa organização, o DataStage apresenta um conjunto de algoritmos que
funcionam no sentido de organizar os dados conforme a necessidade, que são os algoritmos
de particionamento.
sequencial
Paralelismo de grau 4
Paralelismo de grau
= 4 partições
128 = 128 partições
Os dados são lidos na ordem EVITAR usar como chave de hash campos
apresentada e, ao serem submetidos ISOLADOS como Data de Referência, Sexo, ou
ao particionamento de hash, são campos em que sabemos que a maioria do seu
distribuídos conforme semelhança. domínio seja composto por informações
repetitivas.
N0 – 0,3,6,...
N1 – 1,4,7,...
N2 – 2,5,8,...
Vantagem:
Distribuição equalitária dos registros O Round Robin é um método rápido de
pelos nodes/partições do DataStage. particionamento, é o método default de
Desvantagem: leitura de grande parte dos estágios, como o
Dados ficam espalhados sem ordem. sequential file stage, por exemplo.
SAME, ou “mesmo”, significa que os estágios posicionados no fluxo irão herdar a mesma
ordenação/particionamento do estágio anterior, economizando o recurso de reparticionamento.
Nunca ler um arquivo sequencial e configurar o estágio subsequente com SAME partition:
• É uma boa prática usar AUTO e somente alterar o particionamento quando necessário.
RANDOM: Parecido com o Round Robin, esse método tenta balancear a distribuição dos dados.
Possui um overhead um pouco maior que o método Round Robin devido ao processamento extra
para calcular o valor randômico utilizado para cada registro.
RANGE: Divide os dados em partições com tamanhos aproximados, cada uma delas contendo
registros com coluna chave dentro de um RANGE ESPECÍFICO. Este método é também utilizado
para certificar-se de que os registros relacionados estão na mesma partição.
TinyInt int8 uint8 1 byte (inteiro de 1 byte) Com ou sem sinal, considerar 8 bits.
SmallInt int16 uint16 2 bytes (inteiro de 2 bytes) Com ou sem sinal, considerar 16 bits.
Integer int32 uint32 4 bytes (inteiro de 4 bytes) Com ou sem sinal, considerar 32 bits.
BigInt int64 uint64 8 bytes (inteiro de 8 bytes) Com ou sem sinal, considerar 64 bits.
display_numeric x+y+1 bytes S9(x)V9(y) sign is trailing separate decimal[x+y,y] separate, trailing
display_numeric x+y+1 bytes S9(x)V9(y) sign is leading separate decimal[x+y,y] separate, leading
• Bibliografia / Colaboração:
• Bibliografia / Colaboração:
• Documentação Oficial
http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/index.jsp - Documentação Oficial
do IBM Information Server, IBM InfoSphere Information Server Version 8.7 Information
Center.