Escolar Documentos
Profissional Documentos
Cultura Documentos
Guia do curso
Fundamentos do IBM InfoSphere
DataStage v11.5
Treinamento IBM
Prefácio
Novembro de 2015
AVISOS
Estas informações foram desenvolvidas para produtos e serviços oferecidos nos EUA.
A IBM pode não oferecer os produtos, serviços ou recursos discutidos neste documento em outros países. Consulte seu representante local da
IBM para obter informações sobre produtos e serviços atualmente disponíveis na sua área. Qualquer referência a um produto, programa ou
serviço da IBM não tem intenção de afirmar ou inferir que somente aqueles produtos, programas ou serviços da IBM podem ser usados. Qualquer
produto, programa ou serviço de funcionalidade equivalente que não infrinja nenhum direito de propriedade intelectual da IBM pode ser usado no
lugar deles. Entretanto, a avaliação e a verificação da operação de qualquer produto, programa ou serviço não IBM são de responsabilidade do
usuário. A IBM pode possuir patentes ou solicitações de patentes pendentes que se relacionem ao objeto descrito neste documento. A posse
deste documento não garante ao usuário nenhuma licença a essas patentes. Consultas sobre licença devem ser enviadas, por escrito, para:
IBM Director of Licensing
IBM Corporation
North Castle Drive, MD-NC119
Armonk, NY 10504-1785
Estados Unidos da América
O parágrafo a seguir não se aplica ao Reino Unido ou a qualquer outro país onde tais provisões sejam inconsistentes com a lei local: A
INTERNATIONAL BUSINESS MACHINES CORPORATION FORNECE ESTA PUBLICAÇÃO "NO ESTADO EM QUE SE ENCONTRA" SEM
GARANTIA DE NENHUMA ESPÉCIE, SEJA EXPRESSA OU IMPLÍCITA, O QUE INCLUI, MAS A ELAS NÃO SE LIMITA, GARANTIAS
SUBENTENDIDAS DE NÃO INFRAÇÃO, COMERCIALIZAÇÃO OU OPORTUNIDADE PARA UM PROPÓSITO PARTICULAR. Alguns estados
não permitem renúncia de responsabilidade de garantias expressas ou implícitas em determinadas transações; sendo assim, esta declaração
pode não se aplicar a você.
Esta informação pode conter imprecisões técnicas ou erros tipográficos. As informações deste documento são periodicamente mudadas; tais
mudanças serão incorporadas em novas edições da publicação. A IBM pode aprimorar e/ou mudar o(s) produto(s) e/ou programa(s) descritos
nesta publicação a qualquer momento, sem aviso prévio.
Todas as referências a websites não pertencentes à IBM, nesta publicação, são feitas por mera conveniência e não servem, de forma alguma,
como endosso desses websites. Os materiais destes websites não fazem parte dos materiais deste produto da IBM, e a sua utilização é
responsabilidade do cliente.
A IBM pode utilizar ou distribuir qualquer informação que você forneça, da maneira que considerar apropriada, sem que nenhuma obrigação
incorra a você. As informações referentes a produtos não IBM foram obtidas dos fornecedores desses produtos, seus anúncios publicados ou
outras fontes publicamente disponíveis. A IBM não testou esses produtos e não pode confirmar a exatidão de desempenho, a compatibilidade, ou
qualquer outra afirmação referente a produtos não IBM. As perguntas sobre os recursos de produtos não IBM devem ser endereçadas aos
fornecedores desses produtos.
Essas informações contêm exemplos de dados e relatórios usados em operações diárias de negócios. Para ilustrá-los da forma mais completa
possível, os exemplos incluem o nome de pessoas, empresas, marcas e produtos. Todos esses nomes são fictícios e qualquer similaridade a
nomes e endereços usados por empresas reais é mera coincidência.
MARCAS COMERCIAIS
IBM, o logotipo IBM e ibm.com, InfoSphere e DataStage são marcas comerciais ou marcas registradas da International Business Machines Corp.,
registradas em várias jurisdições no mundo todo. Outros nomes de produtos e serviços podem ser marcas comerciais da IBM ou de outras
empresas. Uma lista atual das marcas registradas da IBM está disponível na Web em "Copyright and trademark information" em
www.ibm.com/legal/copytrade.shtml.
Adobe e o logotipo da Adobe são marcas registradas ou marcas comerciais da Adobe Systems Incorporated nos Estados Unidos e/ou em outros
países.
Linux é uma marca registrada da Linus Torvalds nos Estados Unidos e/ou em outros países.
Microsoft, Windows e o logotipo do Windows são marcas comerciais da Microsoft Corporation nos Estados Unidos e/ou em outros países.
UNIX é uma marca registrada do The Open Group nos Estados Unidos e em outros países.
© Copyright International Business Machines Corporation 2015.
Este documento não pode ser reproduzido em sua totalidade ou em partes sem a permissão prévia por escrito da IBM.
Direitos restritos para usuários do governo dos EUA – Uso, duplicação ou divulgação restritos pelo documento GSA ADP Schedule Contract com a IBM
Corporation.
Conteúdo
Prefácio ............................................................................................................... P-1
Conteúdo............................................................................................................ P-3
Visão geral do curso ......................................................................................... P-14
Convenções do documento .............................................................................. P-15
Recursos de treinamento adicional .................................................................. P-16
Ajuda de produtos IBM ..................................................................................... P-17
Unidade 1 Introdução ao DataStage.............................................................. 1-1
Objetivos da unidade .......................................................................................... 1-3
O que é o IBM InfoSphere DataStage? .............................................................. 1-4
O que é o Information Server ............................................................................. 1-5
Backbone do Information Server ........................................................................ 1-6
Console da web do Information Server............................................................... 1-7
Arquitetura do DataStage ................................................................................... 1-8
DataStage Administrator .................................................................................... 1-9
DataStage Designer ......................................................................................... 1-10
DataStage Director ........................................................................................... 1-11
Desenvolvimento no DataStage ....................................................................... 1-12
Repositório do projeto do DataStage ................................................................ 1-13
Tipos de tarefas do DataStage ......................................................................... 1-14
Elementos de design de tarefas paralelas ........................................................ 1-15
Paralelismo de pipeline .................................................................................... 1-16
Paralelismo de partição .................................................................................... 1-17
Particionamento de três nós ............................................................................. 1-18
Design de tarefa versus execução ................................................................... 1-19
Arquivo de configuração ................................................................................... 1-20
Exemplo: Arquivo de configuração ................................................................... 1-21
Ponto de verificação ......................................................................................... 1-22
Soluções de ponto de verificação ..................................................................... 1-23
Resumo da unidade ......................................................................................... 1-24
Unidade 2 Implementação ............................................................................. 2-1
Objetivos da unidade .......................................................................................... 2-3
O que é implementado ....................................................................................... 2-4
Implementação: tudo em uma máquina.............................................................. 2-5
Implementação: DataStage em uma máquina separada .................................... 2-6
Servidor de metadados e DB2 em máquinas separadas .................................... 2-7
Inicialização do Information Server ..................................................................... 2-8
Início do Information Server no Windows ........................................................... 2-9
Início do Information Server no Linux ............................................................... 2-10
Convenções do documento
As convenções usadas neste guia seguem os padrões do aplicativo Microsoft
Windows, onde aplicável. Além disso, as seguintes convenções são observadas:
Negrito: O negrito é usado em soluções passo a passo de demonstrações e
exercícios para indicar um elemento de interface do usuário que está
selecionado ativamente ou um texto que deve ser digitado pelo participante.
Itálico: Usado para fazer referência a títulos de manuais.
LETRAS MAIÚSCULAS E MINÚSCULAS: Todos os nomes de arquivos, de
tabelas, de colunas e de pastas aparecem neste guia exatamente da mesma
forma que aparecem no aplicativo.
Para manter as letras maiúsculas e minúsculas consistentes com este guia,
digite o texto exatamente conforme mostrado.
Introdução ao DataStage
Objetivos da unidade
• Listar e descrever os usos do DataStage
• Listar e descrever os clientes do DataStage
• Descrever o fluxo de trabalho do DataStage
• Descrever os dois tipos de paralelismos exibidos pelas tarefas
paralelas do DataStage
Objetivos da unidade
Metadados Metadados
Serviços de acesso Analysis Services
Servidor de metadados
Repositório
Console da web do Information Server
Administração Relatório
Usuários do
InfoSphere
Arquitetura do DataStage
• Clientes do DataStage
• Mecanismos do DataStage
Mecanismo paralelo
− Executa tarefas paralelas
Mecanismo de servidor
− Executa tarefas do servidor
− Executa sequências de tarefas
Arquitetura do DataStage
A metade superior exibe os clientes do DataStage. Na metade inferior, há dois
mecanismos. O mecanismo paralelo executa tarefas paralelas do DataStage. O
mecanismo de servidor executa tarefas do servidor do DataStage e sequências de
tarefas. Nosso foco neste curso está nas tarefas paralelas e na sequência de tarefas.
Os clientes do DataStage são:
Administrator
Configura os projetos do DataStage e especifica as funções de usuário do DataStage.
Designer
Cria tarefas do DataStage que são compiladas em programas executáveis.
Director
Utilizado para executar e monitorar as tarefas do DataStage, embora isso também
possa ser feito no Designer.
DataStage Administrator
Variáveis de
ambiente do projeto
DataStage Administrator
Use o cliente do Administrator para especificar os padrões gerais do servidor, incluir e
excluir projetos e definir os padrões e as propriedades do projeto.
Na guia General, você tem acesso às variáveis de ambiente do projeto. Na guia
Permissions, especifique as funções de usuário do DataStage. Na guia Parallel,
especifique os padrões gerais para tarefas paralelas. Na guia Sequence, especifique
os padrões para sequências de tarefas. Na guia Logs, especifique os padrões para o
log da tarefa.
Uma função de administrador do DataStage, definida no console da web do
Information Server, tem autorização integral para trabalhar no cliente do DataStage
Administrator.
DataStage Designer
Menus/barra de ferramentas
Tarefa paralela do
DataStage com o estágio
DB2 Connector
Log da tarefa
DataStage Designer
O DataStage Designer é onde você compila suas tarefas ETL (Extraction,
Transformation, Load). Você compila uma tarefa arrastando estágios da Palette (canto
inferior esquerdo) para a tela. Você traça links entre os estágios para especificar o fluxo
de dados. Neste exemplo, um estágio Sequential File é utilizado para ler dados de um
arquivo sequencial. Os dados fluem para um estágio Transformer, em que várias
transformações são executadas. Então, os dados são gravados em tabelas do DB2 de
destino com base em restrições definidas no Transformer e especificadas para SQL no
estágio DB2 Connector.
Os links que saem do estágio DB2 Connector são links de rejeição que capturam erros
de SQL.
DataStage Director
Mensagens de
log
DataStage Director
Conforme sua tarefa é executada, as mensagens são gravadas no log. Essas
mensagens exibem informações sobre erros e avisos, informações sobre o ambiente
em que a tarefa está em execução, estatísticas sobre os números de linhas
processadas por diversos estágios e muito mais.
O gráfico mostra o log da tarefa exibido no cliente do Director. Para tarefas individuais
abertas no Designer, o log da tarefa também pode ser exibido no Designer.
Desenvolvimento no DataStage
• Definir propriedades globais e do projeto no Administrator
• Importar metadados para o repositório
Especifica formatos de origens e destinos acessados pelas suas tarefas
• Criar tarefa no Designer
• Compilar tarefa no Designer
• Executar a tarefa e monitorar as mensagens de log da tarefa
O log da tarefa pode ser visualizado no Director ou no Designer
− No Designer, apenas o log da tarefa para a tarefa aberta no momento está
disponível
É possível executar as tarefas no Director, no Designer ou na linha de
comandos
As estatísticas de desempenho aparecem no log e também na tela do
Designer conforme a tarefa é executada
Desenvolvimento no DataStage
Fluxo de trabalho de desenvolvimento: defina as propriedades do seu projeto no
Administrator. Importe os metadados que definem o formato dos dados de que suas
tarefas lerão ou em que gravarão. No Designer, compile a tarefa. Defina as extrações
de dados (leituras). Defina os fluxos de dados. Defina as combinações de dados, as
transformações de dados, as restrições de dados, as agregações de dados e os
carregamentos de dados (gravações).
Depois de construir sua tarefa, compile-a no Designer. Então, é possível executar e
monitorar a tarefa, seja no Designer ou no Director.
Pasta de definições
da tabela padrão
Paralelismo de pipeline
Registra de 9.001 1.000 registros em cada segmento
a 100.000.000 8º segmento 7º 6º 5º 4º 3º 2º 1º segmento
Origem Destino
Paralelismo de pipeline
Nesse diagrama, as setas representam linhas de fluxos de dados através da tarefa.
Enquanto as linhas anteriores estão no processo de carregamento, as linhas mais
novas estão passando pelos processos de transformação e enriquecimento. Dessa
forma, diversas linhas (sete, na imagem) estão sendo processadas ao mesmo tempo,
em paralelo.
Embora o paralelismo de pipeline melhore o desempenho, há limites à sua
escalabilidade.
Paralelismo de partição
• Divida o fluxo de entrada de dados em subconjuntos a serem
processados separadamente por uma operação
Subconjuntos são chamados partições
• Cada partição de dados é processada por cópias do mesmo estágio
Por exemplo, se o estágio for Filter, cada partição será filtrada exatamente
da mesma maneira
• Facilita a escalabilidade quase linear
8 vezes mais rápido em 8 processadores
24 vezes mais rápido em 24 processadores
Presume que os dados são distribuídos uniformemente
Paralelismo de partição
O particionamento divide um fluxo de dados em subconjuntos menores. Esse é um
segredo da escalabilidade. No entanto, os dados precisam ser distribuídos
uniformemente pelas partições; de outra forma, os benefícios da partição serão
reduzidos.
É importante notar que o que é feito em cada partição de dados é igual. A maneira
como os dados são processados ou transformados é a mesma. Na verdade, cópias de
cada estágio ou operador estão em execução ao mesmo tempo, e em separado, em
cada partição de dados.
Para aumentar a capacidade de desempenho, é possível aumentar o número de
partições (presumindo que seu sistema de computador tenha processadores para
isso).
subconjunto 1
Estágio
Nó 2
subconjunto 2
Dados Estágio
Nó 3
subconjunto 3
Estágio
Arquivo de configuração
• Determina o grau de paralelismo (número de partições) das tarefas
que o utilizam
• Cada tarefa é executada sob um arquivo de configuração
• Cada projeto do DataStage tem um arquivo de configuração padrão
Especificado pelo parâmetro da tarefa $APT_CONFIG_FILE
Tarefas individuais podem ser executadas sob arquivos de configuração
diferentes do padrão do projeto
−A mesma tarefa também pode ser executada usando diferentes arquivos de
configuração em diferentes execuções de tarefa
Arquivo de configuração
O arquivo de configuração determina o grau de paralelismo (número de partições) de
tarefas que a usam. Cada tarefa é executada de acordo com um arquivo de
configuração. O arquivo de configuração é especificado pela variável de ambiente
$APT_CONFIG_FILE. Essa variável de ambiente pode ser incluída à tarefa como um
parâmetro da tarefa. Isso possibilita que a tarefa use diferentes arquivos de
configuração em diferentes execuções da tarefa.
Nó (partição)
Nó (partição)
Recursos anexados
ao nó
Ponto de verificação
1. Verdadeiro ou falso: o DataStage Director é usado para construir e
compilar as tarefas ETL
2. Verdadeiro ou falso: use o Designer para monitorar sua tarefa
durante a execução
3. Verdadeiro ou falso: o Administrator é usado para definir
propriedades do projeto e globais
Ponto de verificação
Resumo da unidade
• Listar e descrever os usos do DataStage
• Listar e descrever os clientes do DataStage
• Descrever o fluxo de trabalho do DataStage
• Descrever os dois tipos de paralelismo exibidos pelas tarefas
paralelas do DataStage
Resumo da unidade
Implementação
Objetivos da unidade
• Identificar os componentes do Information Server que precisam ser
instalados
• Descrever em que consiste um domínio de implementação
• Descrever diferentes opções de implementação de domínio
• Descrever o processo de instalação
• Iniciar o Information Server
Objetivos da unidade
Nesta unidade, veremos como o DataStage é implementado. A implementação é um
pouco complexa porque o DataStage agora é um componente entre muitos.
O que é implementado
Um domínio do Information Server, consistindo no seguinte:
• Backbone do servidor de metadados, hospedado por uma instância do
IBM WebSphere Application Server (WAS)
• Um ou mais servidores do DataStage
Pode estar no mesmo sistema ou em sistemas separados
• Uma instância do gerenciador de banco de dados contendo o banco
de dados do repositório (XMETA)
• Clientes do Information Server
Console da web
Clientes do DataStage
• Produtos adicionais do Information Server
Information Analyzer, Information Governance Catalog,
QualityStage (parte do DataStage), Data Click, FastTrack
O que é implementado
Aqui está uma lista dos diferentes componentes que são implementados, incluindo
uma instância do IBM WebSphere Application Server (WAS), uma instância do
gerenciador de banco de dados contendo o repositório do Information Server
(XMETA), um ou mais servidores do DataStage e os vários clientes e aplicativos do
componente.
Muitos desses componentes diferentes podem estar em sistemas de computador
diferentes.
Servidor do
Clientes DataStage
Repositório XMETA
• Componentes do IS em
vários sistemas
Backbone do servidor
Servidores do DataStage de metadados (WAS)
Servidor de metadados
WAS e repositório
XMETA
Servidor do
Clientes DataStage
Repositório XMETA
Backbone do servidor
• Todos os componentes do de metadados (WAS)
IS em sistemas separados
Servidor do DataStage
Servidor de metadados
(WAS)
Repositório XMETA
Servidor do
Clientes DataStage
Repositório XMETA
Nome padrão do
servidor de metadados
ID do administrador
do Information Server
Login
Ponto de verificação
1. Quais componentes do Information Server constituem um domínio?
2. Um domínio pode conter vários servidores do DataStage?
3. O gerenciador do banco de dados com o banco de dados do
repositório precisa estar no mesmo sistema que o servidor de
aplicativos do WAS?
Ponto de verificação
Demonstração 1
Login no Information Server Administration Console
Demonstração 1:
Login no Information Server Administration Console
Propósito:
Nesta demonstração, você efetuará login no Information Server
Administration Console e verificará se o Information Server está em
execução.
Usuário/senha do Windows: student/student
Servidor: http://edserver:9443/
Console: Administration Console
Usuário/senha: isadmin/isadmin
Tarefa 1. Efetue login no Information Server Administration
Console.
1. Se solicitado a efetuar login no Windows, use student/student.
2. No navegador Mozilla Firefox, digite o endereço IP da barra de ativação do
InfoSphere Information Server: http://edserver:9443/ibm/iis/launchpad/.
Aqui, edserver é o nome do sistema de computador Information Server e 9443
é o número da porta usado para comunicar-se com ele.
4. Clique em Login.
Resumo da unidade
• Identificar os componentes do Information Server que precisam ser
instalados
• Descrever em que consiste um domínio de implementação
• Descrever diferentes opções de implementação de domínio
• Descrever o processo de instalação
• Iniciar o Information Server
Resumo da unidade
Administração do DataStage
Objetivos da unidade
• Abrir o console da web do Information Server
• Criar novos usuários e grupos
• Atribuir funções de conjunto e funções de componente a usuários e
grupos
• Dar aos usuários credenciais do DataStage
• Efetuar login no DataStage Administrator
• Incluir um usuário do DataStage na guia Permissions e especificar a
função do usuário
• Especificar os padrões globais e de projeto do DataStage
• Listar e descrever as variáveis de ambiente importantes
Objetivos da unidade
Esta unidade analisa os detalhes do cliente do Administrator.
Endereço do console
de administração
ID do administrador
do Information Server
Login
Guia Administration
ID do usuário
Funções de conjunto
Função de usuário
do conjunto
Funções do componente
Função de
administrador
do DataStage
Credenciais do DataStage
• Credenciais do DataStage para um ID do usuário
Exigidas pelo DataStage
Exigidas além das autorizações do Information Server
• As credenciais do DataStage são dadas a um ID do usuário (por
exemplo, dsadmin) mapeando o ID do usuário para um ID do usuário
do sistema operacional no sistema do servidor do DataStage
• Especificadas na pasta Domain Management > Engine Credentials
Mapeamentos padrão ou individuais podem ser especificados
Credenciais do DataStage
Para efeturar login em um cliente do DataStage, além de ter um ID do usuário do
DataStage, também é preciso ter credenciais do DataStage. O motivo para isso está
relacionado ao DataStage anterior. Originalmente, o DataStage era um produto
independente que necessitava de um ID do usuário do sistema operacional do servidor
do DataStage. Embora o DataStage agora faça parte do conjunto de produtos
Information Server e use o registro do Information Server, ele ainda tem esse requisito
anterior. Esse requisito é implementado mapeando os IDs do usuário para os IDs do
sistema operacional do servidor do DataStage.
Isso presume que, quando o DataStage foi instalado, o estilo de registro do usuário
selecionado para a instalação foi Internal User Registry. Outras opções são
possíveis.
ID do usuário do sistema
operacional no servidor
do DataStage
ID de administrador e
senha do DataStage
Nome do sistema de
servidor do DataStage
Configurações da
variável de ambiente
Variáveis de ambiente
Variáveis de ambiente
Este gráfico mostra a pasta Parallel na janela Environment Variables.
Clique no botão Environment na guia General para abrir esta janela. As variáveis
listadas na pasta Parallel aplicam-se a tarefas paralelas.
Em particular, observe a variável de ambiente $APT_CONFIG_FILE. Ela especifica o
caminho para o arquivo de configuração padrão do projeto. Uma tarefa paralela no
projeto vai, por padrão, ser executada sob este arquivo de configuração.
Também é possível especificar suas próprias variáveis de ambiente na pasta User
Defined. É possível enviar essas variáveis para tarefas por meio dos seus parâmetros
da tarefa para fornecer padrões de tarefa no nível do projeto.
Exibir
pontuação
Exibir OSH
Usuários/grupos disponíveis
com uma função de usuário Incluir usuários do DataStage
do DataStage
Usuário do DataStage
incluído
Exibir OSH
Ponto de verificação
1. As autorizações podem ser atribuídas a quais dois itens?
2. Quais dois tipos de função de autorização podem ser atribuídas a
um usuário ou grupo?
3. Além da autorização de conjunto para efetuar login no DataStage, do
que mais um desenvolver do DataStage precisa para trabalhar no
DataStage?
4. Suponha que dsuser tenha sido atribuído à função de usuário do
DataStage no console da web do IS. De qual função de permissão
no DataStage Administrator o dsuser precisa para compilar tarefas
no DataStage?
Ponto de verificação
Demonstração 1
Administração do DataStage
Demonstração 1:
Administração do DataStage
Propósito:
Você criará IDs do usuário do DataStage no console da web do InfoSphere.
Depois, efetuará login no DataStage Administrator e configurará o ambiente
do DataStage.
Usuário/senha do Windows: student/student
Barra de ativação do Information Server: http://edserver:9443/ibm/iis/launchpad/
Console: Administration Console
Usuário/senha: isadmin/isadmin
Tarefa 1. Crie um administrador e um usuário do DataStage.
1. Em Information Server Launch Pad, efetue login no Information Server
Administration Console como isadmin/isadmin.
2. No Information Server Administration Console, clique na
guia Administration.
3. Expanda Users and Groups e clique em Users.
Você deve ver pelo menos dois usuários: isadmin é o ID de administrador do
Information Server; wasadmin é o ID de administrador do WebSphere
Application Server. Esses usuários são criados durante a instalação do
Information Server.
4. Marque a caixa de seleção para o usuário isadmin e, no painel direito, clique em
Open User.
Observe o nome e o sobrenome desse usuário.
13. Clique em File > Exit para fechar o InfoSphere Administration Console.
Tarefa 2. Efetue login no DataStage Administrator.
1. Clique duas vezes no ícone Administrator Client na área de trabalho do
Windows.
3. Clique em Login.
Tarefa 3. Especifique os valores da propriedade no DataStage
Administrator.
1. Clique na guia Projects, selecione seu projeto (DSProject) e clique no botão
Properties.
6. Clique em OK.
7. Na guia Parallel, habilite a opção para tornar o OSH gerado visível.
Observe os formatos de data e hora padrão. Por exemplo, o formato de data padrão
é "AAAA-MM-DD", que é apresentado pela sequência de formatação mostrada.
8. Clique na guia Logs, assegure que Auto-purge of job log esteja selecionado
e defina a ação Auto-purge para até 2 execuções de tarefa anteriores.
Resumo da unidade
• Abrir o console da web do Information Server
• Criar novos usuários e grupos
• Atribuir funções de conjunto e funções de componente a usuários e
grupos
• Dar aos usuários credenciais do DataStage
• Efetuar login no DataStage Administrator
• Incluir um usuário do DataStage na guia Permissions e especificar a
função do usuário
• Especificar os padrões globais e de projeto do DataStage
• Listar e descrever as variáveis de ambiente importantes
Resumo da unidade
Objetivos da unidade
• Registrar-se no DataStage
• Navegar no DataStage Designer
• Importar e exportar objetos do DataStage para um arquivo
• Importar uma definição de tabela para o arquivo sequencial
Objetivos da unidade
Login no Designer
• Um domínio pode conter
vários servidores do
DataStage
• Qualifique o projeto
(DSProject) pelo nome do
servidor do DataStage
(EDSERVER)
Sistema do servidor de
domínio
Selecionar projeto
Login no Designer
Este gráfico mostra a janela Attach to Project do Designer, que é usada para efetuar
login no DataStage Designer. O processo é similar a registrar-se no Administrator, mas
aqui você seleciona um projeto específico em um servidor do DataStage em particular.
Neste exemplo, o projeto se chama DSProject. Observe que o nome do projeto é
qualificado pelo nome do sistema de servidor do DataStage em que o projeto existe.
Esse é um qualificador necessário e obrigatório porque vários sistemas de servidor do
DataStage podem existir em um domínio do Information Server.
Tela
paralela
Paleta
Log da
tarefa
Janela Repository
Procurar objetos
no projeto
Projeto
Pasta de tarefas
Pasta padrão
definida pelo
usuário
Pasta de
definições da
tabela padrão
Janela Repository
A janela Repository exibe as pastas dos objetos armazenados no repositório para o
projeto do DataStage ao qual se registrou.
O repositório do projeto contém um conjunto padrão de pastas em que os objetos são
armazenados por padrão. Eles incluem a pasta Jobs, na qual uma tarefa do
DataStage é salva por padrão. No entanto, é possível criar em qualquer nível novas
pastas nas quais armazenar tarefas do repositório e outros objetos. E qualquer objeto
pode ser salvo em qualquer pasta.
Neste exemplo, há uma pasta criada pelo usuário chamada _Training. Nessa pasta,
há subpastas (não mostradas) para armazenar tarefas e definições de tabela
associadas às tarefas.
Importação e exportação
• Qualquer objeto ou conjunto de objetos na janela Repository pode ser
exportado para um arquivo
• Pode exportar projetos inteiros
• Usos:
Uso para backup
Às vezes é usado para controle de versão
Mover objetos do DataStage de um projeto para outro
Compartilhar tarefas e projetos do DataStage com outros desenvolvedores
• Como as variáveis de ambiente são manipuladas em uma exportação
Variáveis de ambiente incluídas em tarefas ou conjuntos de parâmetros
serão criadas no novo projeto para o qual forem importadas se ainda não
existirem
− Os valores padrão são definidos na sequência de caracteres vazia
Importação e exportação
Qualquer conjunto de objetos do repositório do projeto, incluindo projetos inteiros,
pode ser exportado para um arquivo. Esse arquivo de exportação pode, então, ser
importado de volta para um projeto do DataStage, seja no mesmo projeto ou em
um projeto diferente.
Importação e exportação podem ser usadas para muitos propósitos, incluindo:
Realizar backup de tarefas e projetos.
Manter diferentes versões de uma tarefa ou projeto.
Mover objetos do DataStage de um projeto para outro. Basta exportar os objetos,
movê-los para o outro projeto e, então, reimportá-los para o novo projeto.
Compartilhar tarefas e projetos com outros desenvolvedores. Os arquivos de
exportação, quando compactados, são pequenos e podem ser facilmente
enviados por e-mail de um desenvolvedor para outro.
Procedimento de exportação
• Clique em Export > DataStage Components
• Inclua os objetos do DataStage a exportar
• Especifique o tipo de exportação:
DSX: formato padrão
XML: permite o processamento do arquivo de exportação por aplicativos
XML, por exemplo, para gerar relatórios
• Especifique um caminho de arquivo no sistema do cliente
• Você também pode clicar com o botão direito sobre objetos
selecionados no repositório para executar uma exportação
Procedimento de exportação
Clique em Export > DataStage Components para iniciar o processo de exportação.
Selecione os tipos de componentes a exportar. É possível selecionar um projeto inteiro
ou um subconjunto dos objetos no projeto.
Especifique o nome e o caminho do arquivo ao qual exportar. Por padrão, os objetos
são exportados para um arquivo de texto em um formato especial. Por padrão, a
extensão é dsx. Como alternativa, é possível exportar os objetos para um documento
XML.
O diretório para o qual você exporta está no cliente do DataStage, não no servidor.
Os objetos também podem ser exportados de uma lista retornada por uma procura.
Esse procedimento é discutido mais adiante no curso.
Janela Export
Clique para
Objetos
selecionar
selecionados
objetos do
repositório
Selecione o
caminho no
sistema do
cliente
Tipo de
exportação
Iniciar
exportação
Trabalho com metadados © Copyright IBM Corporation 2015
Janela Export
Este gráfico mostra a janela Repository Export.
Clique em Add para procurar objetos a exportar no repositório. Especifique um
caminho no sistema do cliente. Clique em Export.
Por padrão, o tipo de exportação é dsx. Para a maioria dos propósitos, use esse
formato.
Procedimento de importação
• Clique em Import > DataStage Components
Ou em Import > DataStage Components (XML), se estiver importando um
arquivo de exportação no formato XML
• Selecione os objetos do DataStage a importar
Procedimento de importação
Um arquivo de exportação (dsx) criado anteriormente pode ser importado de volta
para um projeto do DataStage.
Para importar componentes do DataStage, clique em Import > DataStage
Components.
Selecione o arquivo a importar. Clique em Import all para iniciar o processo de
importação ou clique em Import selected para visualizar uma lista dos objetos no
arquivo de importação. É possível importar os objetos selecionados da lista. Selecione
o botão Overwrite without query para sobrescrever os objetos com o mesmo nome
sem aviso.
Opções de importação
Importar todos os Caminho para
objetos no arquivo importar o arquivo
Selecionar os
itens a importar
em uma lista
Trabalho com metadados © Copyright IBM Corporation 2015
Opções de importação
Este gráfico mostra a janela Repository Import. Procure o arquivo na caixa Import
from file. Selecione se deseja importar todos os objetos ou exibir uma lista dos objetos
no arquivo de importação.
Para importações grandes, pode ser útil desativar Perform impact analysis. Isso
adiciona sobrecarga ao processo de importação.
Definições
de arquivo
sequencial
Começar a
importação
Selecionar o
arquivo
Selecionar
a pasta do
repositório
Especificação do formato
Selecionar se a
Editar colunas primeira linha tiver
nomes da coluna
Delimitador
Visualizar
os dados
Especificação do formato
Este gráfico mostra a guia Format da janela Define Sequential Metadata.
Na guia Format, especifique o formato incluindo, em específico, o delimitador de
coluna e se a primeira linha contém nomes da coluna. Clique em Preview para exibir
os dados usando o formato especificado. Se tudo parecer estar correto, clique na guia
Define para especificar as definições de coluna.
Propriedades paralelas
Categorias de propriedade
Propriedades disponíveis
Colunas Formato
Definição de
tabela
armazenada
Ponto de verificação
• Verdadeiro ou falso? O diretório ao qual você exporta está na
máquina cliente do DataStage, não na máquina servidor do
DataStage.
• É possível importar definições de tabela para arquivos sequenciais
com formatos de registro de comprimento fixo?
Ponto de verificação
Demonstração 1
Importação e exportação de objetos do DataStage
Demonstração 1:
Importação e exportação de objetos do DataStage
Propósito:
Você usará o DataStage Designer para importar e exportar objetos do
DataStage. Como parte desta demonstração, você criará pastas Repository e
arquivos de objetos do DataStage. Por fim, exportará uma pasta.
Usuário/senha do Windows: student/student
Cliente do DataStage: Designer
Usuário/senha do cliente do Designer: student/student
Projeto: EDSERVER/DSProject
Tarefa 1. Efetue login no DataStage Designer.
1. Abra o Designer Client usando o ícone na área de trabalho do Windows.
4. Clique em OK.
3. Clique em Open.
O arquivo Employees.txt agora pode ser exportado com base nas suas
configurações.
Demonstração 2
Importação de uma definição de tabela
Demonstração 2:
Importação de uma definição de tabela
Propósito:
Você deseja carregar sua definição de tabela para um estágio Sequential File
para que ela possa ser lida. Você primeiro importará uma definição de tabela
para um arquivo sequencial e, então, visualizará uma definição de tabela
armazenada no repositório.
7. Clique em Import.
Você especifica o formato geral na guia Format.
8. Especifique se a primeira linha é de nomes da coluna, se esse for o caso.
O DataStage pode usar esses nomes nas definições de coluna.
12. Depois de fechar a janela Import Meta Data, localize e abra sua nova definição
de tabela na janela Repository. Ela está localizada na pasta especificada na
caixa To folder durante a importação, ou seja _Training\Metadata.
Resumo da unidade
• Registrar-se no DataStage
• Navegar no DataStage Designer
• Importar e exportar objetos do DataStage para um arquivo
• Importar uma definição de tabela para o arquivo sequencial
Resumo da unidade
Objetivos da unidade
• Projetar uma tarefa paralela no DataStage Designer
• Definir um parâmetro da tarefa
• Usar os estágios Row Generator, Peek e Annotation na tarefa
• Compilar a tarefa
• Executar a tarefa
• Monitorar o log da tarefa
• Criar um conjunto de parâmetros e usá-lo em uma tarefa
Objetivos da unidade
Paleta de ferramentas
Categorias do
estágio
Estágios
Paleta de ferramentas
Este gráfico mostra a Palette do Designer. A Palette contém os estágios que você
pode incluir no design da tarefa arrastando-os para a tela de tarefa.
Há várias categorias de estágios. No início, você pode ter alguma dificuldade para
saber onde um estágio está. A maioria dos estágios que você usará estará na pasta
Database, na pasta File e na pasta Processing. Uma pequena coleção de estágios
de propósito especial, incluindo o estágio Row Generator, que usaremos na nossa
tarefa de exemplo, estará na pasta Development/Debug.
Abertura de uma
nova janela
Tarefa paralela
Compilação
Execução
Propriedades Gerador
da tarefa de linha Peek
Link
Guia
Properties
Configurar o
Propriedade valor da
propriedade
Visualizar
Carregar uma dados
definição de tabela
Selecionar
definição de
tabela
Propriedades estendidas
Propriedades
especificadas e
seus valores
Propriedades
adicionais a incluir
Propriedades estendidas
Este gráfico mostra a janela Extended Properties.
Neste exemplo, a pasta Generator foi selecionada e a propriedade Type foi incluída
da janela Available properties to add no canto inferior direito. O valor cycle foi
selecionado para a propriedade Type. Então, a propriedade Type foi selecionada e as
propriedades Initial Value e Increment foram incluídas.
O algoritmo de ciclo gera valores alternando entre uma lista de valores que começam
com o valor inicial especificado.
Estágio Peek
• Exibe valores de campo
Por padrão, log da tarefa gravado
Pode controlar o número de registros a serem exibidos
Pode especificar as colunas a serem exibidas
• Estágio útil para verificar os dados em um estágio em particular na
tarefa
Por exemplo, coloque um estágio Peek antes de um estágio Transformer
e um estágio Peek após
− Apresenta uma imagem de antes/depois dos dados
Estágio Peek
Os dados gerados são, então, gravados no estágio Peek. Por padrão, o estágio Peek
exibe valores de coluna no log da tarefa, em vez de gravá-los em um arquivo. Após a
execução da tarefa, as mensagens Peek podem ser visualizadas no log da tarefa.
Neste exemplo, as linhas geradas pelo estágio Row Generator serão gravadas no log.
Resultado para
log da tarefa
Parâmetros da tarefa
• Definidos na janela Job Properties
• Torna a tarefa mais flexível
• Os parâmetros podem ser usados em qualquer lugar em que se possa
especificar um valor
Usado em nomes de arquivo e caminho
Para especificar valores de propriedade
Usado em restrições e derivações em um estágio Transformer
Parâmetros da tarefa
As propriedades da tarefa são definidas na janela Job Properties. Elas tornam uma
tarefa mais flexível permitindo a especificação de valores no tempo de execução para
configurar como a tarefa se comporta.
É possível inserir os parâmetros da tarefa em muitos locais em uma tarefa do
DataStage. Aqui, focamos no seu uso como variáveis de propriedade. Um parâmetro
da tarefa é usado no lugar de um valor codificado manualmente de uma propriedade.
Em execuções de tarefa diferentes, é possível especificar diferentes valores para a
propriedade.
Neste exemplo, em vez de digitar, digamos, 100 para a propriedade Number of
Records, criamos um parâmetro da tarefa chamado NumRows e especificamos o
parâmetro como o valor da propriedade. No tempo de execução, podemos inserir um
valor para esse parâmetro, por exemplo, 100 ou 100.000.
Parâmetro
Incluir variável de
ambiente
Parâmetro da tarefa
Clique para inserir o
parâmetro da tarefa
Documentação
Execução
Compilação
Estágio Annotation
DataStage Director
• Use para executar e planejar tarefas
• Visualize mensagens do tempo de execução
• Pode chamar diretamente do Designer
Tools > Run Director
DataStage Director
É possível abrir o Director do Designer clicando em Tools > Run Director. De modo
similar, é possível passar do Director para o Designer.
Há dois métodos para executar uma tarefa: executá-la imediatamente. Ou planejar sua
execução para uma data e hora posteriores. Clique no ícone Schedule view na barra
de ferramentas para planejar a tarefa.
Para executar uma tarefa imediatamente no Director, selecione-a na exibição Job
Status. A tarefa deve, então, ter sido compilada. Clique em Job > Run Now ou no
botão Run Now na barra de ferramentas. A janela Job Run Options é exibida. Se a
tarefa tiver parâmetros da tarefa, é possível defini-los neste ponto ou aceitar qualquer
valor de parâmetro padrão.
Opções de execução
Atribuir valores
ao parâmetro
Opções de execução
Esse gráfico mostra a janela Job Run Options. A janela Job Run Options é exibida
quando você clica em Job > Run Now.
Nessa janela, é possível especificar valores para quaisquer parâmetros da tarefa. Se
tiverem sido especificados valores padrão para os parâmetros da tarefa quando eles
foram definidos, esses padrões aparecerão inicialmente.
Clique no botão Run nessa janela para iniciar a tarefa.
Estatísticas de desempenho
• As estatísticas de desempenho são exibidas no Designer quando a
tarefa é executada
Para habilitar, clique com o botão direito sobre a tela e depois clique em
Show performance statistics
• O link fica verde se os dados fluírem através dele
• Número de linhas e linhas por segundo são exibidos
• O link fica vermelho se ocorrer um erro de tempo de execução
Estatísticas de desempenho
Esse gráfico exibe as estatísticas de desempenho do Designer, que são exibidas ao
executar uma tarefa e visualizá-la no Designer. Essas estatísticas são atualizadas
conforme a tarefa é executada. As cores dos links indicam o status da tarefa. Verde
indica que os dados fluíram através do link sem erros. Vermelho indica um erro.
Para ativar ou desativar o monitoramento de desempenho, clique com o botão direito
do mouse sobre a tela e depois ative ou desative Show performance statistics.
Visualização de log
Visualização de
planejamento
Selecionar tarefas
cujas mensagens
deseja visualizar
Mensagem Peek
Detalhes da mensagem
Detalhes da mensagem
Este gráfico mostra um exemplo de detalhes da mensagem. Clique duas vezes em
uma mensagem para abri-la e ler os seus detalhes.
Nesse exemplo, a mensagem Peek está exibindo linhas de dados em uma das
partições ou nós (partição 0). Se a tarefa estiver em execução em várias partições,
haverá mensagens Peek para cada uma.
Cada linha exibe os nomes das colunas seguidos pelos seus valores.
Monitor do Director
• Monitor do Director
Clique em Tools > New Monitor
Visualize as estatísticas de tempo de execução por estágio/link
(como estatísticas de desempenho na tela)
Visualize as estatísticas de tempo de execução partição a partição
− Clique com o botão direito do mouse sobre a janela para ativar esse recurso
Estágio Peek
Employees em
execução na partição 0
Monitor do Director
Esse gráfico mostra o Monitor do Director, que ilustra as estatísticas de desempenho.
Conforme já mencionado, também é possível visualizar estatísticas do tempo de
execução na tela do Designer. No entanto, as estatísticas na tela do Designer não
podem ser divididas em partições individuais, que você pode visualizar no Director.
Aqui, vemos que o estágio Peek chamado PeekEmployees é executado em ambas as
partições (0 e 1). Cada instância processa cinco linhas. Assim, no geral, o estágio Peek
processa 10 linhas.
O estágio Row Generator Employees está em execução em uma única partição (0).
Aqui, vemos que ele gerou 10 linhas.
Conjuntos de parâmetros
• Armazena uma coleção de parâmetros da tarefa em um objeto do
repositório nomeado
Pode ser importado e exportado como qualquer outro objeto de repositório
• Um ou mais arquivos de valor podem ser vinculados ao conjunto de
parâmetros
Arquivos de valores específicos podem ser selecionados no tempo de
execução
Implementados como arquivos de texto armazenados no diretório de
projeto
• Usos:
Armazenar conjuntos padrão de parâmetros para reutilização
Usar arquivos de valores para armazenar conjuntos comuns de valores
de parâmetros da tarefa
Conjuntos de parâmetros
Conjuntos de parâmetros armazenam um conjunto de parâmetros de tarefas em um
objeto definido. Isso permite que eles sejam carregados em uma tarefa como uma
coleção, em vez de separadamente. Também permite que sejam importados e
exportados como um conjunto.
Suponha que uma empresa tenha um conjunto comum de 20 parâmetros que ela
inclua em todas as tarefas criadas. Sem os conjuntos de parâmetros, seria necessário
criar manualmente esses parâmetros em cada tarefa. Com conjuntos de parâmetros, a
empresa pode incluir toda uma coleção de uma só vez.
Outro recurso-chave dos conjuntos de parâmetros é que eles podem ser vinculados a
um ou mais "arquivos de valores" – arquivos que fornecem valores para os parâmetros
no conjunto de parâmetros. No tempo de execução, um usuário pode selecionar qual
arquivo de valores usar.
Conjunto de
parâmetros incluído
Incluir conjunto
de parâmetros
Prefixo do conjunto
de parâmetros
Parâmetro
Selecionar arquivo
de valores
Ponto de verificação
1. Qual estágio pode ser usado para exibir os dados de saída no
log da tarefa?
2. Qual estágio é usado para documentar sua tarefa na tela de tarefa?
3. Qual comando é usado para executar tarefas na linha de comandos
do sistema operacional?
4. O que é um "arquivo de valores"?
Ponto de verificação
Demonstração 1
Criação de tarefas paralelas
Demonstração 1:
Criação de tarefas paralelas
Propósito:
Você deseja explorar todo o processo de criar, compilar, executar e monitorar
uma tarefa paralela do DataStage. Para fazer isso, você vai primeiro projetar,
compilar e executar a tarefa paralela do DataStage. Em seguida, você vai
monitorar a tarefa primeiro visualizando o log da tarefa e, então,
documentando-o no estágio Annotation. Por fim, vai usar os parâmetros da
tarefa para aumentar a flexibilidade da tarefa e criar um conjunto de
parâmetros para armazenar os parâmetros para reutilização.
Usuário/senha do Windows: student/student
Cliente do DataStage: Designer
Usuário/senha do cliente do Designer: student/student
Projeto: EDSERVER/DSProject
Tarefa 1. Crie uma tarefa paralela.
Você deseja criar uma nova tarefa paralela com o nome GenDataJob e, então, salvá-
la na pasta _Training > Jobs.
1. Efetue login no Designer como student/student.
2. No menu File, clique em New.
13. Na guia Properties, especifique que 100 registros devem ser gerados. Para
fazer isso, selecione Number of Records = 10 no painel esquerdo e depois
atualize o valor na caixa Number of Records para 100. Pressione Enter para
aplicar o novo valor.
14. Clique em View Data e depois em OK para visualizar os dados que serão
gerados.
8. Para a coluna HireDate, especifique que você deseja que as datas sejam
geradas aleatoriamente.
Na janela Available properties to add:, no canto inferior direito, escolha
Type.
No campo Type, selecione random.
3. No Designer, clique em View > Job Log para visualizar as mensagens no log
da tarefa. Corrija quaisquer avisos ou erros.
4. Verifique os dados examinando as mensagens do estágio Peek no log.
Tarefa 5. Inclua um parâmetro da tarefa.
1. Salve sua tarefa como GenDataJobParam na pasta _Training > Jobs.
2. No menu Designer, clique em Edit > Job Properties. (Como alternativa, clique
no ícone Job Properties na barra de ferramentas.) Clique na guia
Parameters.
3. Defina um novo parâmetro chamado NumRows, com um valor padrão de 10,
digite Integer.
5. Visualize os dados.
6. Compile e execute sua tarefa. Verifique os resultados.
17. Clique no botão Run. Na caixa de diálogo Job Run Options, selecione o
arquivo de valores HighGen.
Resultados:
Você desejava explorar todo o processo de criar, compilar, executar e
monitorar uma tarefa paralela do DataStage. Para fazer isso, você primeiro
projetou, compilou e executou a tarefa paralela do DataStage. Em seguida,
você monitorou a tarefa primeiro visualizando o log da tarefa e, então,
documentando-o no estágio Annotation. Por fim, você usou os parâmetros da
tarefa para aumentar a flexibilidade da tarefa e criou um conjunto de
parâmetros para armazenar os parâmetros da coleção para reutilização.
Resumo da unidade
• Projetar uma tarefa paralela no DataStage Designer
• Definir um parâmetro da tarefa
• Usar os estágios Row Generator, Peek e Annotation na tarefa
• Compilar a tarefa
• Executar a tarefa
• Monitorar o log da tarefa
• Criar um conjunto de parâmetros e usá-lo em uma tarefa
Resumo da unidade
Objetivos da unidade
• Entender os estágios para acessar diferentes tipos de dados de
arquivo
• Ler e gravar arquivos sequenciais usando o estágio Sequential File
• Ler e gravar em arquivos do conjunto de dados usando o estágio Data
Set
• Criar links de rejeição
• Trabalhar com nulos em arquivos sequenciais
• Ler de vários arquivos sequenciais usando padrões do arquivo
• Usar vários leitores
Objetivos da unidade
Propósito – na última unidade, os alunos criaram uma tarefa que adquiriu dados
gerados pelo estágio Row Generator. Nesta unidade, trabalharemos com um tipo
principal de dados: dados sequenciais. Em uma unidade posterior, focaremos no
outro tipo principal de dados: dados relacionais.
Link de fluxo
Guia Output
Guia Properties
Caminho para
o arquivo
Nomes da coluna
na primeira linha
Guia Format
Guia Format
Formato
de registro
Carregar formato da
definição de tabela
Formato de
coluna
Guia Format
Esse gráfico mostra a guia Format do estágio Sequential File.
Aqui, você especifica o delimitador de registro e o formato de coluna geral,
incluindo o delimitador de coluna e o caractere aspas simples. Em geral, essas
propriedades são especificadas carregando a definição de tabela importada que
descreve o arquivo sequencial, mas essas propriedades também podem ser
especificadas manualmente.
Use o botão Load para carregar as informações de formato de uma definição de
tabela.
Observe que as definições de coluna não são especificadas aqui, mas
separadamente na guia Columns. Assim, como se pode ver, há dois lugares nos
quais é possível carregar as definições de tabela: a guia Format e a guia
Columns.
Guia Columns
Guia Columns
Visualizar
dados
Carregar colunas da
definição de tabela
Guia Columns
Esse gráfico mostra a guia Columns do estágio Sequential File.
Clique no botão Load para carregar as colunas de definição de tabela para o
estágio. As definições de coluna podem ser modificadas depois de serem
carregadas. Quando isso tiver sido concluído, é possível salvar as colunas
modificadas como uma nova definição de tabela. Esse é o propósito do botão
Save. Esteja atento para não confundir esse botão Save com salvar a tarefa. Clicar
nesse botão não salva a tarefa.
Depois de terminar de editar o formato e as propriedades do estágio, é possível
clicar no botão View Data. Esse é um bom teste para ver se o formato e as
propriedades do estágio foram especificados corretamente. Se não conseguir
visualizar os dados, sua tarefa provavelmente também não conseguirá ler os dados
quando for executada.
Usar curingas
Selecionar padrão
do arquivo
Vários leitores
Vários leitores
O gráfico mostra a guia Properties do estágio Sequential File.
Number of Readers per Node é uma propriedade opcional que pode ser incluída
para permitir a leitura de um único arquivo sequencial usando vários processos de
leitor sendo executados em paralelo. Por exemplo, se você especificar dois leitores,
esse arquivo poderá ser lido duas vezes mais rápido que com apenas um leitor (o
padrão). Conceitualmente, é possível imaginar isso como um leitor lendo a metade
superior do arquivo e o segundo leitor lendo a metade inferior do arquivo,
simultaneamente, em paralelo.
Observe que a ordem da linha não é mantida quando você usa vários leitores.
Portanto, se houver necessidade de identificar linhas de entrada, essa opção
poderá ser usada apenas se os dados em si fornecerem um identificador exclusivo.
Isso funciona para registros de comprimento fixo e de comprimento variável.
Guia Input
Caminho para o
arquivo de saída
Anexar/sobrescrever
Links de rejeição
• Link de saída opcional
• Distinguem-se dos links de saída normais de fluxo pelas suas linhas
quebradas
• Capturam linhas que o estágio rejeita
Em um estágio Sequential File de origem, as linhas que não podem ser
lidas devido a um problema de metadados ou formato
Em um estágio Sequential File de destino, as linhas que não podem ser
gravadas devido a um problema de metadados ou formato
• As linhas capturadas podem ser gravadas em um estágio Sequential
File ou estágio Peek ou processadas de alguma outra maneira
• As linhas rejeitadas são gravadas como uma única coluna de dados:
datatype = bruto (binário)
• Use a propriedade Reject Mode para especificar que rejeições devem
ser geradas como saída
Links de rejeição
O estágio Sequential File pode ter um único link de rejeição. Os links de rejeição
podem ser incluídos a estágios Sequential File usados para leitura ou para
gravação. Eles capturam linhas que o estágio rejeita. Em um estágio Sequential
File de origem, isso inclui linhas que não podem ser lidas devido a um problema de
metadados ou formato. Em um estágio Sequential File de destino, isso inclui linhas
que não podem ser gravadas devido a um problema de metadados ou formato.
Além de traçar o link de rejeição saindo do estágio, também é preciso definir a
propriedade Reject Mode. Caso contrário, você receberá um erro de compilação.
As linhas rejeitadas são gravadas no link de rejeição como uma única coluna de
dados binários (tipo de dados brutos).
Link de fluxo
Link de rejeição
Link de rejeição
(linha quebrada)
(linha quebrada)
Rejeições de saída
Estágio Copy
• Linhas que chegam no estágio Copy por meio do link de entrada
podem ser mapeadas para um ou mais links de saída
• Nenhuma transformação pode ser executada nos dados
• Nenhuma condição de filtragem pode ser especificada
O que entra deve sair
• Operações que podem ser executadas:
Números de colunas podem ser reduzidos
Nomes de colunas podem ser mudados
Conversões de tipo automáticas podem ocorrer
• Na guia Mapping, as colunas de entrada são mapeadas para as
colinas de link de saída
Estágio Copy
O estágio Copy é um estágio de processamento simples, mas eficiente. É chamado
de estágio Copy porque nenhuma transformação ou filtragem dos dados pode ser
executada dentro do estágio. Os dados de entrada são simplesmente copiados
para os links de saída. Por esse motivo, o estágio tem pouca sobrecarga. Contudo,
o estágio tem vários usos importantes. Uma vez que ele dá suporte a vários links
de saída, ele pode ser usado para dividir um único fluxo em vários fluxos para
processamento separado.
Os metadados também podem ser mudados usando o estágio. O número de
colunas na saída pode ser reduzido e os nomes das colunas de saída podem ser
mudados.
Embora nenhuma transformação explícita possa ser executada, conversões de tipo
automático de fato acontecem. Por exemplo, colunas do tipo Varchar() podem ser
mudadas para colunas do tipo Char().
Lista de links de
nome de saída
Lista de links
de saída
Mapeamentos Os nomes de
de coluna colunas mudaram
Demonstração 1
Leitura e gravação em arquivos sequenciais
Demonstração 1:
Leitura e gravação em arquivos sequenciais
Propósito:
Arquivos sequenciais são um tipo de dado que as empresas costumam
precisar processar. Você lerá e gravará arquivos sequenciais usando o
estágio Sequential File. Mais adiante, você criará um segundo link de saída,
criará links de rejeição dos estágios Sequential File, usará vários leitores no
estágio Sequential File e lerá vários arquivos usando um padrão de arquivo.
Usuário/senha do Windows: student/student
Cliente do DataStage: Designer
Usuário/senha do cliente do Designer: student/student
Projeto: EDSERVER/DSProject
Tarefa 1. Leia e grave em um arquivo sequencial.
Nesta tarefa, você projeta uma tarefa que lê dados do arquivo
Selling_Group_Mapping.txt, copia-o para um estágio Copy e, então, grava os dados
em um novo arquivo chamado Selling_Group_Mapping_Copy.txt.
1. No menu File, clique em New e, no painel esquerdo, clique em Jobs.
4. Trace links entre os estágios e atribua os nomes aos estágios e links, conforme
mostrado.
13. Crie-o com uma primeira linha de nomes da coluna. Deve sobrescrever
qualquer arquivo existente com o mesmo nome.
Coluna Nullable
Propriedade
incluída
Valor da
sequência de
caracteres vazia
Valor da sequência
de caracteres vazia
Demonstração 2
Leitura e gravação de valores nulos
Demonstração 2:
Leitura e gravação de valores nulos
Propósito:
Você deseja ler e gravar valores NULL usando um arquivo sequencial. Os
valores NULL entram no fluxo de tarefas em vários locais nas tarefas do
DataStage. Você deseja verificar como os valores NULL são manipulados no
contexto de leitura e gravação em arquivos sequenciais.
Usuário/senha do Windows: student/student
Cliente do DataStage: Designer
Usuário/senha do cliente do Designer: student/student
Projeto: EDSERVER/DSProject
NOTA:
Nesta demonstração e em outras demonstrações neste curso, pode haver atividades
que iniciam com tarefas que você foi instruído a criar em atividades anteriores. Se você
não tiver conseguido concluir a tarefa anterior, pode importá-la do arquivo
DSEssLabSolutions_V11_5_1.dsx no diretório de arquivos
C:\CourseData\DSEss_Files\dsx. Esse arquivo contém todas as tarefas construídas
nas demonstrações para este curso.
Nota: se for necessário importar (e substituir seu trabalho salvo existente), renomeie o
elemento existente para você não perder o que criou. Isso evitará sobrescrever (e
perder) o trabalho que você fez até agora no curso.
Etapas:
1. No menu do Designer, clique em Import e depois em DataStage
Components.
2. Selecione a opção Import selected (isso permitirá que você selecione e
escolha o que deseja importar) e depois selecione o elemento requerido na
lista de elementos exibida.
Tarefa 1. Leia valores NULL de um arquivo sequencial.
1. Abra a tarefa CreateSeqJobParam.
5. Compile e execute sua tarefa. Visualize o log da tarefa. Você não deve receber
nenhum erro ou rejeição.
6. Clique em View Data no estágio Sequential File de destino para verificar os
resultados.
7. Para ver os valores reais gravados no arquivo, abra o arquivo TargetFile.txt no
diretório DSEss_Files\Temp. Verifique os valores -99999 e UNKNOWN.
Nota: Ao visualizar os dados no DataStage, tudo o que você vê é a palavra
"NULL", não os valores reais. Para ver os valores reais, seria preciso abrir o
arquivo de dados no sistema de servidor do DataStage em um editor de texto.
Resultados:
Você lê e grava valores NULL usando um arquivo sequencial. Os valores
NULL entram no fluxo de tarefas em vários locais nas tarefas do DataStage.
Você verificou como os valores NULL são manipulados no contexto de leitura
e gravação em arquivos sequenciais.
Propriedades do
estágio Data Set
Exibição de dados
Exibição do
esquema
Visualizador de
dados
Esquema descrevendo o
formato dos dados
Demonstração 3
Trabalho com conjuntos de dados
Demonstração 3:
Trabalho com conjuntos de dados
Propósito:
Os conjuntos de dados são adequados como arquivos de preparação
temporários entre tarefas do DataStage. Aqui, você gravará em um conjunto
de dados e depois visualizará os dados no conjunto de dados usando o
utilitário Data Set Management.
NOTA:
Nesta demonstração e em outras demonstrações neste curso, pode haver atividades
que iniciam com tarefas que você foi instruído a criar em atividades anteriores. Se você
não tiver conseguido concluir a tarefa anterior, pode importá-la do arquivo
DSEssLabSolutions_V11_5_1.dsx no diretório de arquivos
C:\CourseData\DSEss_Files\dsx. Esse arquivo contém todas as tarefas construídas
nas demonstrações para este curso.
Etapas:
1. Clique em Import e depois em DataStage Components.
2. Selecione a opção Import selected e selecione a tarefa desejada na lista
exibida.
Se você quiser salvar uma versão anterior da tarefa, salve-a com um novo nome antes
de importar a versão do arquivo de soluções de demonstração.
Tarefa 1. Grave em um conjunto de dados
1. Abra a tarefa CreateSeqJob e salve-a como CreateDataSetJob.
2. Exclua o estágio sequencial de destino, deixando um link suspenso.
3. Arraste um estágio Data Set da pasta File da Pallete para a tela e conecte-o ao
link suspenso. Mude o nome do estágio de destino para
Selling_Group_Mapping_Copy.
Resultados:
Você gravou em um conjunto de dados e, então, visualizou os dados no
conjunto de dados usando o Utilitário Data Set Management.
Ponto de verificação
1. Liste três tipos de dados do arquivo.
2. O que torna o desempenho dos conjuntos de dados melhor que
o de arquivos sequenciais em tarefas paralelas?
3. Qual é a diferença entre um conjunto de dados e um conjunto de
arquivos?
Ponto de verificação
Resumo da unidade
• Entender os estágios para acessar diferentes tipos de dados de
arquivo
• Ler e gravar arquivos sequenciais usando o estágio Sequential File
• Ler e gravar em arquivos do conjunto de dados usando o estágio Data
Set
• Criar links de rejeição
• Trabalhar com nulos em arquivos sequenciais
• Ler de vários arquivos sequenciais usando padrões do arquivo
• Usar vários leitores
Resumo da unidade
Algoritmos de
particionamento e coleta
Objetivos da unidade
• Descrever a arquitetura de processamento paralelo
• Descrever paralelismo de pipeline
• Descrever paralelismo de partição
• Listar e descrever algoritmos de particionamento e coleta
• Descrever arquivos de configuração
• Descrever o processo de compilação de tarefa paralela
• Explicar OSH
• Explicar a pontuação
Objetivos da unidade
Propósito - os desenvolvedores do DataStage precisam de uma compreensão
básica da arquitetura paralela e da estrutura para desenvolver tarefas eficientes e
robustas.
Paralelismo de partição
• Divida o fluxo de entrada de dados em subconjuntos a serem
processados separadamente por um estágio/operação
Os subconjuntos são chamados de partições (nós)
Facilita o processamento de alto desempenho
−2 nós = duas vezes mais desempenho
− 12 nós = doze vezes mais desempenho
• Cada partição de dados é processada pelo mesmo estágio/operação
Se o estágio for um estágio Transformer, cada partição será processada
pelas instâncias do mesmo estágio Transformer
• O número de partições é determinado pelo arquivo de configuração
• O particionamento ocorre no nível do estágio
No link de entrada de um estágio que está particionando, o estágio
determina o algoritmo que será usado para particionar os dados
Paralelismo de partição
O particionamento rompe o fluxo de dados em conjuntos menores que são
processados de modo independente, em paralelo. Esse é um segredo da
escalabilidade. É possível aumentar o desempenho aumentando o número de
partições, presumindo que você tenha o número de processadores físicos para
processá-las. Embora haja limites ao número de processadores razoavelmente
disponíveis em um único sistema, há suporte para uma configuração GRID que
distribui o processamento entre um conjunto de sistemas de computador em rede.
Não há limite ao número de sistemas (e, portanto, de processadores) que podem
ser conectados em rede.
Os dados precisam ser distribuídos uniformemente pelas partições; de outra forma,
os benefícios da partição serão reduzidos.
É importante notar que o que é feito em cada partição de dados é igual. Cópias
exatas de cada estágio/operador são executadas em cada partição.
Particionamento de estágio
Estágio/operação Nó 0
subconjunto 1
subconjunto 2
Dados Estágio/operação Nó 0
subconjunto 3
Estágio/operação Nó 0
Particionamento de estágio
Este diagrama ilustra como o particionamento de estágio funciona. Subconjuntos
do total de dados vão para cada partição, nas quais o mesmo estágio ou operação
é aplicado. O modo como os dados são particionados é determinado pelo algoritmo
de particionamento de estágio que é utilizado.
O diagrama está mostrando apenas um estágio. Tarefas típicas envolvem muitos
estágios. Em cada estágio, ocorre particionamento, reparticionamento ou coleta.
Disco Disco
MEMÓRIA COMPARTILHADA
MEMÓRIA
MPP, sistemas em clusters
Sistema SMP
(processamento paralelo massivo)
Uniprocessador (multiprocessador
simétrico)
• Grade/cluster
• CPU única • SMP
Sistemas múltiplos com
• Memória dedicada • Várias CPUs (2-64+) várias CPU
Memória dedicada por nó
e disco
• Memória Armazenamento
compartilhada e compartilhado típico
baseado em SAN
disco
• MPP
Vários nós com memória
e armazenamento
dedicados
• 2 – Milhares de CPUs
Algoritmos de particionamento
• Round robin
• Random
• Hash: determina a partição com base no valor da chave
Requer especificação de chave
• Modulus
Requer especificação de chave
• Entire: envia todas as linhas para todas as partições
• Same: preserva o mesmo particionamento
• Auto: deixa o DataStage escolher o algoritmo
O DataStage escolhe o algoritmo com base no tipo de estágio
Algoritmos de particionamento
Os algoritmos de particionamento determinam como o estágio particiona os dados.
Aqui são mostrados os principais algoritmos usados. Você não precisa especificar
explicitamente um algoritmo para cada estágio. A maioria dos tipos de estágios é,
por padrão, definida para Auto, o que permite ao DataStage escolher o algoritmo
com base no tipo de estágio.
Não pense em Same como um algoritmo de particionamento separado. Ele sinaliza
que o estágio deve usar o mesmo algoritmo de particionamento adotado pelo
estágio anterior, qualquer que seja ele.
Coleta (1 de 2)
• A coleta retorna dados particionados de volta para um único fluxo
Algoritmos de coleta determinam como os dados são coletados
• A coleta reduz o desempenho, mas:
Às vezes é necessária para um propósito comercial
− Por exemplo, queremos carregar os dados em um único arquivo sequencial
Às vezes é requerida pelo estágio
− Alguns estágios, principalmente anteriores, são executados apenas no modo
sequencial
− Os estágios, às vezes, são executados no modo sequencial para obter um
determinado resultado, por exemplo, uma contagem global de todos os
registros
Coleta
A coleta é o oposto do particionamento. A coleta retorna dados particionados de
volta para um único fluxo. Os algoritmos de coleta determinam como os dados são
coletados.
De um modo geral, é o processamento paralelo dos dados que impulsiona o
desempenho da tarefa. Em geral, então, é preferível evitar a coleta dos dados. No
entanto, a coleta costuma ser necessária para atender às necessidades de
negócios. Alguns tipos de estágios são executados no modo sequencial. Por
exemplo, os estágios Sequential File e Row Generator são ambos executados por
padrão no modo sequencial.
Coleta (2 de 2)
Estágio/operação
Nó 0
Estágio/operação Estágio/operação
Nó 1
Estágio/operação
Nó 2
Este diagrama ilustra como os dados nas três partições são coletados em um único
fluxo de dados. O estágio inicial, mostrado aqui, está sendo executado em paralelo
em três nós. O segundo estágio está sendo executado sequencialmente. Para dar
suporte à operação do segundo estágio, todos os dados precisam ser coletados em
um único nó (Node 0).
Assim como ocorre com o particionamento, há diferentes algoritmos que o segundo
estágio pode usar para coletar os dados. Em geral, por padrão, o algoritmo é
"obtido da linha que chega primeiro".
Coleta de algoritmos
• Round robin
• Auto
Coleta o primeiro registro disponível
• Sort Merge
Lê por chave
Presume que os dados são classificados pela chave de coleção em cada
partição
Compila um único fluxo classificado com base na chave
• Ordered
Lê todos os registros da primeira partição, então da segunda e assim por
diante
Coleta de algoritmos
É mostrada uma lista dos principais algoritmos de coleta. Por padrão, a maioria dos
estágios é definida para Auto, o que deixa o DataStage decidir qual algoritmo usar.
Na maioria dos casos, isso é feito para coletar a próxima linha disponível.
Sort Merge é o algoritmo de coleta usado com mais frequência além de Auto. É
usado para compilar uma coleção global de dados classificada de várias partições
de dados classificados.
Particionamento Entire
• Cada partição recebe uma cópia Sem chave
completa dos dados …8 7 6 5 4 3 2 1 0
Pode afetar o desempenho devido à
duplicação de dados
• Entire é o algoritmo de Entire
particionamento padrão para os links
de referência do estágio Lookup
Em plataformas SMP, o estágio
Lookup utiliza memória compartilhada
em vez de duplicar todo o conjunto de . . .
dados de referência . . .
3 3 3
Em plataformas Grid, ocorrerá 2 2 2
1 1 1
duplicação de dados 0 0 0
Particionamento Entire
O diagrama ilustra o método de particionamento Entire. Cada partição recebe uma
cópia completa de todos os dados. Entire é o algoritmo de particionamento padrão
para os links de referência da consulta. Isso garante que a procura por uma linha
correspondente na tabela de consulta sempre obtenha sucesso, caso haja uma
correspondência. A linha não pode ficar "oculta" em outra partição, já que todas as
linhas estão em todas as partições.
Particionamento Hash
Com chave
• Método de particionamento com
chave
• As linhas são distribuídas de Valores da coluna-chave
colunas-chave
Garante que as linhas com os
mesmos valores da chave vão para
Hash
a mesma partição
Necessário para impedir que linhas
correspondentes fiquem "ocultas"
em outras partições
Os dados podem se tornar
0 1 2
distribuídos de modo não uniforme 3 1 2
entre as partições, dependendo das 0 1 2
frequências dos valores de coluna- 3
chave
• Selecionado por padrão para os
estágios Aggregator, Remove
Duplicates, Join
Algoritmos de particionamento e coleta © Copyright IBM Corporation 2015
Particionamento Hash
Para determinados estágios (Remove Duplicates, Join, Merge) funcionarem
corretamente em paralelo, Hash – ou um dos algoritmos similares (Range,
Modulus) – é necessário. A seleção padrão Auto seleciona Hash para esses
estágios.
O diagrama ilustra o método de particionamento Hash. Aqui, os números não são
mais identificadores de linha, mas os valores da coluna-chave. Hash garante que
todas as linhas com valores da chave 3, por exemplo, acabem na mesma partição.
Hash não garante "continuidade" entre os mesmos valores. Observe, no diagrama,
que há zeros separando alguns dos números três.
Hash também não garante balanceamento de carga. Algumas partições podem ter
muito mais linhas que outras. Escolhas colunas-chave que tenham valores
diferentes o suficiente para distribuir os dados entre as partições disponíveis.
Gender, por exemplo, seria uma má escolha de uma chave. Todas as linhas iriam
para apenas algumas partições, independentemente de quantas partições estão
disponíveis.
Particionamento Modulus
Com chave
• As linhas são distribuídas de
acordo com os valores em uma Valores da coluna-chave
coluna-chave numérica
…0 3 2 1 0 2 3 2 1 1
Usa a partição
Modulus = MOD
(key_value/número de partições)
Modulus
• Mais rápido que Hash
• Equivalente a Hash em termos
lógicos
0 1 2
3 1 2
0 1 2
3
Particionamento Modulus
Modulus funciona do mesmo modo que Hash. A única diferença é que ele requer
que a coluna-chave seja numérica. Uma vez que a coluna-chave está restrita a
tipos numéricos, o algoritmo é um pouco mais rápido que Hash.
Particionamento Auto
• O DataStage insere operadores de partição conforme necessário
para assegurar resultados corretos
Em geral, escolhe Round Robin ou Same
Insere hash em estágios que requerem valores da chave
correspondentes
(Join, Merge, Remove Duplicates)
Insere Entire nos links de referência do estágio Lookup
• Uma vez que o DataStage tem reconhecimento limitado dos seus
dados e regras de negócio, pode ser útil especificar explicitamente
Hash ou outro particionamento
O DataStage não possui visibilidade na lógica Transformer
O DataStage pode escolher algoritmos de particionamento mais
dispendiosos do que você sabe serem necessários
− Verifique a pontuação no log da tarefa para determinar o algoritmo utilizado
Particionamento Auto
Auto é a escolha padrão dos estágios. Contudo, não pense em Auto como um
algoritmo de particionamento separado. Ele indica que DataStage deve escolher o
algoritmo específico. A escolha do DataStage geralmente é baseada no tipo de
estágio.
Auto geralmente escolhe Round Robin ao ir de estágios sequenciais para
paralelos. Em geral, ele escolhe Same ao ir de estágios paralelos para paralelos.
Ele escolhe o último para evitar reparticionamento desnecessário, que reduz o
desempenho.
Visto que o DataStage possui reconhecimento limitado de seus dados e regras de
negócios, a melhor prática é especificar explicitamente o particionamento Hash
quando necessário, ou seja, quando o processamento precisa de grupos de
registros relacionados.
Parte 0
ID LName FName Endereço
Dados de origem
Partição 1
ID LName FName Endereço
3 Ford Edsel 7900 Jefferson
Indica que os
dados estão sendo
particionados
Indica que os
dados estão sendo
coletados
Mesmo particionador
"Borboleta" indica
reparticionamento Particionador
automático
Guia Partitioning
Guia Input
Seleção de colunas-chave
Tipo de partição
Seleção de algoritmo
Guia Partitioning
Seleção de colunas-chave
Tipo de coletor
Arquivo de configuração
• Determina o número de nós (partições) em que a tarefa é executada
• Especifica os recursos que podem ser usados por nós individuais
para:
Armazenamento temporário
Estouro de memória
Armazenamento de dados do conjunto de dados
• Especifica os "conjuntos de nós"
Usado para restringir estágios (operadores) ao uso de determinados nós
A configuração da variável de ambiente $APT_CONFIG_FILE determina
qual arquivo de configuração está em vigor durante uma execução da
tarefa
Se você incluir $APT_CONFIG_FILE como um parâmetro da tarefa, poderá
especificar no tempo de execução qual arquivo de configuração uma tarefa
usa
Arquivo de configuração
O arquivo de configuração determina o número de nós (partições) em que uma
tarefa é executada. A configuração em vigor para uma execução da tarefa em
particular é o arquivo de configuração atualmente referido pela variável de
ambiente $APT_CONFIG_FILE. Essa variável tem um padrão de projeto ou pode
ser incluída como um parâmetro da tarefa para uma tarefa.
Além de determinar o número de nós, o arquivo de configuração especifica os
recursos que podem ser usados pela tarefa em cada um dos nós. Esses recursos
incluem armazenamento temporário, armazenamento para conjuntos de dados e
armazenamento temporário que pode ser usado quando a memória se esgota.
Nome do nó
Recursos do nó
Incluir variável de
$APT_CONFIG_FILE
ambiente
OSH
• Operador Transform para cada Transformer
Um operador customizado construído durante a
compilação
Compilado em C++ e, então, para operadores Tarefa
executável
nativos correspondentes
− Assim, um compilador C++ é necessário para
compilar tarefas com um estágio Transformer
Componentes
do
Transformer
OSH gerado
Visualizável
do OSH
OSH gerado
É possível visualizar o OSH gerado no DataStage Designer na guia Job Properties
Generated OSH. Isso exibe o OSH gerado quando a tarefa é compilada. É
importante observar, porém, que esse OSH pode passar por algumas mudanças
adicionais antes de ser executado.
O gráfico à esquerda mostra o OSH gerado na janela Job Properties. Para
visualizar o OSH gerado, a opção de visualizar OSH deve estar ativada no
Administrator, como mostra o gráfico na parte superior à direita.
Pontuação da tarefa
• Gerada do OSH junto com o arquivo de configuração utilizado para
executar a tarefa
• Pense no "Score" como uma partitura musical, e não como a
pontuação de um jogo
• Atribui nós (partições) a cada operador OSH
• Especifica operadores OSH adicionais conforme necessário
Operadores tsort, quando requeridos por um estágio
Operadores de algoritmo de particionamento especificados explícita ou
implicitamente (Auto)
Inclui operadores de buffer para impedir conflitos
• Define os processos da tarefa reais
• Útil para depuração e ajuste de desempenho
Pontuação da tarefa
A pontuação da tarefa é gerada do OSH junto com o arquivo de configuração
utilizado para executar a tarefa. Uma vez que ela não é conhecida até o tempo de
execução ao qual o arquivo de configuração uma tarefa usará, a pontuação da
tarefa não será gerada até o tempo de execução. A geração da pontuação faz parte
da sobrecarga inicial da tarefa.
Essa pontuação determina quais operadores são executados em quais nós. Será
um único nó para operadores (estágios) em execução no modo sequencial. Pode
ser vários nós para operadores em execução no modo paralelo.
A pontuação também inclui operadores de adição conforme necessário. Por
exemplo, alguns estágios, como Join, requerem que os dados sejam classificados.
A pontuação incluirá operadores tsort para executar essas classificações. Os
operadores de buffer também são incluídos conforme necessário a dados em buffer
que estão indo para operadores, nos quais podem ocorrer conflitos.
Desenvolvedores experientes do DataStage costumam verificar a pontuação para
coletar informações úteis para depuração e ajuste de desempenho.
Visualização da pontuação
• Defina $APT_DUMP_SCORE
para saída do Score para o log
da tarefa
Operadores com
• Para identificar a mensagem designações de nó
do Score, procure por "main
program: This step ..."
A palavra "Score" não é usada
Mensagem de Score no
log da tarefa
Visualização da pontuação
A pontuação não está visível até que a tarefa seja executada. Uma das variáveis de
ambiente Reporting determina se ela é exibida no log da tarefa. Para identificar a
mensagem de Score, procure a mensagem chamada "main program: This step ..."
O gráfico exibe um exemplo de Score. Observe como os operadores são atribuídos
aos nós. Observe que op0 é atribuído a um único nó (node1). Isso foi gerado de um
estágio Sequential File em execução no modo sequencial. op2, gerado de um
estágio Copy, é atribuído a dois nós.
Ponto de verificação
1. Qual arquivo define o grau de paralelismo sob o qual uma tarefa é
executada?
2. Quais são os dois algoritmos de particionamento que particionam
com base em valores da chave?
3. Quais algoritmos de particionamento produzem distribuições
uniformes de dados nas partições?
4. Em que um design de tarefa é compilado?
5. O que é gerado do OSH e do arquivo de configuração usado para
executar a tarefa?
Ponto de verificação
Demonstração 1
Particionamento e coleta
Demonstração 1:
Particionamento e coleta
Propósito:
Neste exercício, você determinará como os dados são colocados nos nós
(partições) de uma tarefa configurando o particionamento e coletando
algoritmos em cada estágio.
Usuário/senha do Windows: student/student
Cliente do DataStage: Designer
Usuário/senha do cliente do Designer: student/student
Projeto: EDSERVER/DSProject
NOTA:
Nesta demonstração e em outras demonstrações neste curso, pode haver atividades
que iniciam com tarefas que você foi instruído a criar em atividades anteriores. Se você
não tiver conseguido concluir a tarefa anterior, pode importá-la do arquivo
DSEssLabSolutions_V11_5_1.dsx no diretório de arquivos
C:\CourseData\DSEss_Files\dsx. Esse arquivo contém todas as tarefas construídas
nas demonstrações para este curso.
Etapas:
1. Clique em Import e depois em DataStage Components.
2. Selecione a opção Import selected e selecione a tarefa desejada na lista
exibida.
Se você quiser salvar uma versão anterior da tarefa, salve-a com um novo nome antes
de importar a versão do arquivo de soluções de demonstração.
Tarefa 1. Particione e colete.
1. Salve a tarefa CreateSeqJobParam como CreateSeqJobPartition.
Observe o ícone no link de entrada para o estágio de destino (fan-in). Ele indica
que o estágio está coletando os dados.
9. Anexe algo ao fim do caminho para distinguir os dois nomes de arquivo. Por
exemplo, 1 e 2. Aqui, 1 e 2 foram anexados ao parâmetro de nome de cada
arquivo, respectivamente, de modo que os nomes dos dois arquivos são
diferentes.
Resultados:
Você determinou como os dados são colocados nos nós (partições) de uma
tarefa configurando o particionamento e coletando algoritmos em cada
estágio.
Resumo da unidade
• Descrever a arquitetura de processamento paralelo
• Descrever paralelismo de pipeline
• Descrever paralelismo de partição
• Listar e descrever algoritmos de particionamento e coleta
• Descrever arquivos de configuração
• Descrever o processo de compilação de tarefa paralela
• Explicar OSH
• Explicar a pontuação
Resumo da unidade
Combinação de dados
Objetivos da unidade
• Combinar dados usando o estágio Lookup
• Definir consultas de intervalo
• Combinar dados usando o estágio Merge
• Combinar dados usando o estágio Join
• Combinar dados usando o estágio Funnel
Objetivos da unidade
Esta unidade discute os principais estágios que podem ser usados para combinar
dados. Conforme discutido anteriormente, alguns estágios "passivos" para acessar os
dados (estágio Sequential File, estágio Data Set). Nesta unidade, começamos a
discutir alguns estágios de processamento "ativos".
Combinação de dados
• Necessidades comuns de negócios
Os registros contêm colunas que fazem referência a dados em outras
origens de dados
− Um registro de ordem contém IDs do cliente que fazem referência a informações
do cliente na tabela ou no arquivo CUSTOMERS
Registros de duas ou mais origens diferentes são combinados em um
registro mais longo com base em um valor de chave correspondente
− Asinformações de folha de pagamento do funcionário em um registro são
combinadas com as informações de endereço do funcionário de outro registro
• O DataStage tem vários estágios diferentes que podem ser usados
para combinar dados:
Join
Merge
Lookup
• Combine dados de um ou mais links de entrada que podem conter
dados de tabelas relacionais, arquivos ou processamento de envio de
dados
Combinação de dados © Copyright IBM Corporation 2015
Combinação de dados
Combinar dados é uma necessidade comum dos negócios. Por exemplo, registros de
dados em uma tabela ou arquivo podem conter referências a dados em outra tabela ou
arquivo. Os dados devem ser combinados de modo que registros individuais
contenham dados de ambas as tabelas.
O DataStage tem vários estágios diferentes que podem ser usados para combinar
dados: Join, Merge e Lookup. Em geral, é possível obter o mesmo resultado usando
qualquer um desses estágios. Porém, eles diferem com relação às suas exigências e
propriedades individuais.
É importante observar que esses estágios combinam fluxos de dados ou links de
dados. A origem dos dados não é restrita. É possível combinar dados de tabelas
relacionais, arquivos simples ou dados vindos de outro estágio de processamento,
como um Transformer.
Tipos de consulta
• Correspondência de igualdade
Combina os valores na coluna-chave de consulta do link de referência com
os valores selecionados na linha de origem
Retorna uma ou mais linhas correspondentes
Oferece suporte para correspondência exata ou correspondência
independente de maiúsculas/minúsculas
• Correspondência de intervalo
Duas colunas definem o intervalo
Uma correspondência ocorre quando um valor está dentro do intervalo
especificado
O intervalo pode estar no link de entrada de origem ou no link de referência
Correspondências de intervalo podem ser combinadas com
correspondências de igualdade
− Consulte registros para o ID do funcionário dentro de um determinado intervalo de
datas
Tipos de consulta
Há dois tipos gerais de consulta que você pode executar usando o estágio Lookup.
Correspondências de igualdade e consultas de intervalo. Correspondências de
igualdade comparam dois ou mais valores de coluna-chave quanto à igualdade. Um
exemplo é combinar um valor de ID do cliente em uma coluna de link de fluxo com um
valor em uma coluna no link de referência.
Uma correspondência de intervalo compara um valor em uma coluna no link de fluxo
com os valores nas duas colunas no link de referência. A correspondência obtém
sucesso se o valor estiver entre os valores nas duas colunas. As correspondências de
intervalo também comparam um único valor em um link de referência com duas
colunas no link de fluxo.
As consultas de intervalo podem ser combinadas com colunas de igualdade. Por
exemplo, é possível procurar o ID do cliente correspondente dentro de um intervalo de
datas.
Restrições
de consulta
Colunas
de saída
Correspondência
de consulta
Colunas do link
de referência
Nomes e definições
de coluna
Combinação de dados © Copyright IBM Corporation 2015
Correspondência
de igualdade
Coluna-chave
de consulta
Coluna renomeada
Combinação de dados © Copyright IBM Corporation 2015
Selecione a ação de
falha de consulta
Link de rejeição.
Selecione Reject para a
ação de falha de consulta
Coluna-chave
de consulta
Demonstração 1
Uso do estágio Lookup
Demonstração 1:
Uso do estágio Lookup
Propósito:
Você criará consultas usando o estágio Lookup, identificará como as falhas
de consulta são manipuladas e, por fim, capturará as falhas de consulta como
um link de rejeição.
Usuário/senha do Windows: student/student
Cliente do DataStage: Designer
Usuário/senha do cliente do Designer: student/student
Projeto: EDSERVER/DSProject
NOTA:
Nesta demonstração e em outras demonstrações neste curso, pode haver atividades
que iniciam com tarefas que você foi instruído a criar em atividades anteriores. Se você
não tiver conseguido concluir a tarefa anterior, pode importá-la do arquivo
DSEssLabSolutions_v11_5_1.dsx no diretório de arquivos
C:\CourseData\DSEss_Files\dsx. Esse arquivo contém todas as tarefas construídas
nas demonstrações para este curso.
Etapas:
1. Clique em Import e depois em DataStage Components.
2. Selecione a opção Import selected e selecione a tarefa desejada na lista
exibida.
Se você quiser salvar uma versão anterior da tarefa, salve-a com um novo nome antes
de importar a versão do arquivo de soluções de demonstração.
Tarefa 1. Consulte a descrição de item do warehouse
1. Abra uma nova tarefa paralela e salve-a com o nome LookupWarehouseItem.
2. Inclua os estágios, estratificando-os como mostrado, e nomeie-os de acordo. O
estágio Lookup é localizado na seção Processing da paleta.
10. Edite o estágio Sequential File de Items para extrair os dados do arquivo
Items.txt. Execute Load e confirme os resultados como mostrado. Atualize a
opção Quote para "single".
3. Compile e execute. Examine o log. Você não deve receber erros fatais desta vez.
4. Visualize os dados no arquivo de destino. Você localiza alguma linha no arquivo
de destino em que a consulta falhou? Essas seriam linhas com descrições de
item ausentes. Aumente o número de linhas exibidas para pelo menos algumas
centenas se não visualizar nenhum item ausente inicialmente. Por padrão,
quando há uma falha de consulta com Continue, o DataStage produz valores
vazios para as colunas de consulta. Se as colunas forem anuláveis, o DataStage
produz NULLs como saída. Se as colunas não forem anuláveis, o DataStage
gerará valores padrão como saída, dependendo do seu tipo.
6. Uma vez que NULLs serão gravados no estágio de destino, será preciso
manipulá-los. Abra o estágio Sequential de destino. Substitua NULLs pela
sequência de caracteres "NOMATCH". Para fazer isso, clique duas vezes à
esquerda da coluna ItemDescription na guia Columns. Nas propriedades
estendidas, especifique um valor de campo nulo de NOMATCH.
7. Compile e execute.
8. Visualize os dados no estágio Sequential File de destino. Execute a
visualização (view) com pelo menos 200 linhas de dados.
9. Clique em Find. Digite NULL na caixa Find what:. Selecione ItemDescription
para a lista suspensa In column:. Clique em Find Next para localizar o
primeiro valor NULL. Os resultados serão similares aos abaixo.
3. Feche o estágio Lookup e inclua um link de rejeição indo para um estágio Peek
para capturar as falhas de consulta.
Link de referência
Estágio Lookup
Valores do intervalo
de referência
Recuperar
descrição
Valores de origem
Combinação de dados © Copyright IBM Corporation 2015
Link de referência
Seleção de colunas do
intervalo
Seleção de
operadores
Intervalo de origem
Recuperar outros
valores de coluna
Seleção do
tipo de chave
do intervalo
Seleção de colunas
do intervalo
Demonstração 2
Consultas de intervalo
Demonstração 2:
Consultas de intervalo
Propósito:
Você deseja entender os dois tipos de consultas de intervalo melhor. Para
isso, você projetará uma tarefa com uma consulta de intervalo de linha de
referência e uma tarefa com uma consulta de intervalo de fluxo.
NOTA:
Nesta demonstração e em outras demonstrações neste curso, pode haver atividades
que iniciam com tarefas que você foi instruído a criar em atividades anteriores. Se você
não tiver conseguido concluir a tarefa anterior, pode importá-la do arquivo
DSEssLabSolutions_v11_5_1.dsx no diretório de arquivos
C:\CourseData\DSEss_Files\dsx. Esse arquivo contém todas as tarefas construídas
nas demonstrações para este curso.
Etapas:
1. Clique em Import e depois em DataStage Components.
2. Selecione a opção Import selected e selecione a tarefa desejada na lista
exibida.
Se você quiser salvar uma versão anterior da tarefa, salve-a com um novo nome antes
de importar a versão do arquivo de soluções de demonstração.
Tarefa 1. Projete uma tarefa com uma consulta de intervalo
de link de referência.
1. Abra sua tarefa LookupWarehouseItem e salve-a com o nome
LookupWarehouseItemRangeRef. Salve na pasta _Training > Jobs.
Renomeie os estágios e os links conforme mostrado.
6. Clique duas vezes na célula Key Expression para a coluna Item abrir o editor
Range Expression. Especifique que o valor da coluna Warehouse.Item deve
ser maior ou igual ao valor da coluna StartItem e menor que o valor da coluna
EndItem.
Resultados:
Você projetou uma tarefa com uma consulta de intervalo de linha de
referência e uma tarefa com uma consulta de intervalo de fluxo.
Estágio Join
• Quatro tipos de junções:
Inner
Left outer
Right outer
Full outer
• Os dados do link de entrada devem ser classificados
Link esquerdo e um link direito. Qual é qual pode ser especificado no
estágio
Dá suporte a links "intermediários" adicionais
• Leve
Pouca memória necessária devido à exigência de classificação
• Junção de uma ou mais colunas-chave
Os nomes da coluna para cada link de entrada devem corresponder. Se
necessário, inclua um estágio Copy antes do estágio Join para mudar o
nome de uma das colunas-chave
Combinação de dados © Copyright IBM Corporation 2015
Estágio Join
Como o estágio Lookup, o estágio Join também pode ser usado para combinar dados.
Ele tem a mesma funcionalidade básica que uma junção SQL. É possível selecionar
um entre quatro tipos de junção: interna, externa esquerda, externa direita e externa
integral.
Uma junção inner produz como saída linhas que correspondem.
Uma junção left outer produz como saída todas as linhas no link esquerdo, tenham
elas correspondências no link direito ou não. Os valores padrão são inseridos para
quaisquer valores ausentes no caso de uma falha de correspondência.
Uma junção right outer produz como saída todas as linhas no link direito, tenham elas
correspondências no link esquerdo ou não. Os valores padrão são inseridos para
quaisquer valores ausentes no caso de uma falha de correspondência.
Uma junção full outer produz como saída todas as linhas no link esquerdo e no link
direito, tenham elas correspondências ou não. Os valores padrão são inseridos para
quaisquer valores ausentes no caso de falhas de correspondência.
Link de
entrada direito
Coluna a
corresponder
Selecione
o tipo de
junção
Junção de
coluna-chave
Valor nulo ou
padrão
Estágio Merge
• Similar ao estágio Join
Link mestre (fluxo) e um ou mais links secundários
• Requisitos do estágio
Os dados de link mestre e secundário devem ser classificados pela chave
de mesclagem
Os dados do link mestre devem estar livres de duplicatas
• Leve
Pouca memória necessária devido à exigência de classificação
• As linhas do link mestre sem correspondência podem ser mantidas ou
eliminadas
• As linhas do link secundário sem correspondência podem ser
capturadas
Um link de rejeição pode ser incluído para cada link secundário
Estágio Merge
O estágio Merge é similar ao estágio Join. Ele pode ter vários links de entrada, um dos
quais é designado como o link mestre.
Ele difere um pouco nos seus requisitos de estágio. Os dados do link mestre devem
estar livres de duplicatas, além de serem classificados, o que não é um requisito do
estágio Join.
O estágio Merge também difere do estágio Join em algumas das suas propriedades.
As linhas do link secundário sem correspondência podem ser capturadas em links de
rejeição. Um link de rejeição pode ser incluído para cada link secundário.
Como o estágio Join, ele requer pouca memória devido à exigência de classificação.
Captura de não
correspondências
do link secundário
Correspondência
de chave
Manter ou eliminar
mestres sem
correspondência
Gráfico de comparação
Gráfico de comparação
Esse gráfico resume as diferenças entre três estágios de combinação. O ponto
principal aqui é que os estágios Join e Merge são leves com relação ao uso da
memória, mas têm o requisito adicional de que os dados sejam classificados. O estágio
Lookup não tem o requisito de classificação, mas é pesado em termos de uso de
memória.
Além dos requisitos de memória, cada estágio oferece um conjunto de propriedades
levemente diferente.
Estágio Funnel
Propriedade
Funnel Type
Ponto de verificação
1. Qual estágio usa a menor quantidade de memória? Join ou Lookup?
2. Qual estágio requer a classificação dos dados de entrada? Join ou
Lookup?
3. Se o link de entrada esquerdo tiver 10 linhas e o link de entrada
direito tiver 15 linhas, quantas linhas serão produzidas como saída
do estágio Join para uma junção externa esquerda? Do estágio
Funnel?
Ponto de verificação
Demonstração 3
Uso dos estágios Join, Merge e Funnel
Demonstração 3:
Uso dos estágios Join, Merge e Funnel
Propósito:
Você deseja entender como os estágios Join, Merge e Funnel podem ser
usados para combinar dados, portanto, criará cada um desses estágios em
uma tarefa.
NOTA:
Nesta demonstração e em outras demonstrações neste curso, pode haver atividades
que iniciam com tarefas que você foi instruído a criar em atividades anteriores. Se você
não tiver conseguido concluir a tarefa anterior, pode importá-la do arquivo
DSEssLabSolutions_v11_5_1.dsx no diretório de arquivos
C:\CourseData\DSEss_Files\dsx. Esse arquivo contém todas as tarefas construídas
nas demonstrações para este curso.
Etapas:
1. Clique em Import e depois em DataStage Components.
2. Selecione a opção Import selected e selecione a tarefa desejada na lista
exibida.
Se você quiser salvar uma versão anterior da tarefa, salve-a com um novo nome antes
de importar a versão do arquivo de soluções de demonstração.
Tarefa 1. Use o estágio Join em uma tarefa.
1. Abra a tarefa LookupWarehouseItem. Salve-a como JoinWarehouseItem.
2. Exclua o estágio Lookup e substitua-o por um estágio Join disponível na pasta
Processing na paleta. (Apenas exclua o estágio Lookup, arraste sobre um
estágio Join e, então, reconecte os links.)
5. Abra o estágio Join. Faça a junção por Item. Especifique uma junção Right Outer.
3. Na guia Link Ordering, garanta que o link Warehouse seja o link mestre.
Lembre-se de que o estágio Merge requer que os dados mestre não tenham
duplicatas na coluna-chave. Vários registros de atualização também foram
eliminados porque eles não correspondiam aos registros principais.
A moral aqui é que não se pode usar o estágio Merge se a origem principal
tiver duplicatas. Nenhum dos registros duplicados corresponderá a registros de
atualização.
Lembre-se de que outro requisito do estágio Merge (e do estágio Join) é que os
dados sejam particionados para hash e classificados pela chave. Você não fez
isso explicitamente, então por que a sua tarefa não falhou? Vamos examinar o
log da tarefa para pistas.
7. Abra a mensagem Score.
Observe que particionadores de hash e classificações (operadores tsort) foram
inseridos pelo DataStage.
Resultados:
Você desejava entender como os estágios Join, Merge e Funnel podem ser
usados para combinar dados, portanto, criou cada um desses estágios em
uma tarefa.
Resumo da unidade
• Combinar dados usando o estágio Lookup
• Definir consultas de intervalo
• Combinar dados usando o estágio Merge
• Combinar dados usando o estágio Join
• Combinar dados usando o estágio Funnel
Resumo da unidade
Estágios de processamento
de grupo
Objetivos da unidade
• Classificar dados usando classificações em estágio e o estágio Sort
• Combinar dados usando o estágio Aggregator
• Combinar dados usando o estágio Remove Duplicates
Objetivos da unidade
Classificação de dados
• Usos
A classificação é uma necessidade de negócios comum
− Pré-requisito para muitos tipos de relatórios
Alguns estágios requerem entrada classificada
− Estágios Join, Merge
Alguns estágios são mais eficientes com entrada classificada
−O estágio Aggregator usa menos memória
• Duas maneiras de classificar:
Classificações em estágio
− Na guia Partitioning do link de entrada
• Requer um algoritmo de particionamento diferente de Auto
−O ícone de classificação aparece no link de entrada
Estágios Sort
− Mais propriedades configuráveis que a classificação em estágio
Classificação de dados
A classificação tem muitos usos dentro de tarefas do DataStage. Além de implementar
as necessidades de negócios, os dados de entrada classificados são exigidos por
alguns estágios e úteis para outros.
A classificação pode ser especificada dentro de estágios (classificações no estágio) ou
usando um estágio Sort separado. O último fornece propriedades que não estão
disponíveis em classificações no estágio.
Alternativas de classificação
Alternativas de classificação
O slide mostra duas tarefas que classificam dados. O estágio Sort é usado na tarefa
superior. Na tarefa inferior, você vê o ícone de classificação no estágio, que fornece
um indicador visual de que uma classificação foi definida no estágio associado ao
ícone.
Classificação em estágio
Guia Ativação da Preservação da ordenação
Partitioning classificação de linha não chave
Remoção de
duplicatas
Classificação em estágio
Este slide mostra a guia Input > Partitioning de um estágio típico (aqui, o estágio
Merge). Para especificar uma classificação no estágio, primeiro marque a caixa de
seleção Perform sort. Então, marque as colunas-chave de classificação na caixa
Available. Na caixa Selected, é possível especificar algumas opções de classificação.
Opcionalmente, você pode selecionar Stable. Stable preservará a ordenação original
dos registros dentro de cada grupo de chave. Se não estiver configurado, nenhuma
ordenação em particular dos registros dentro de grupos de classificação será
garantida.
Opcionalmente, selecione a caixa Unique para remover linhas duplicadas com base
nas colunas-chave.
A classificação estará ativa somente se um Partition type diferente de Auto for
selecionado.
4 X 1 K
3 Y 1 A
1 K 2 P
3 C 2 L
2 P 3 Y
3 D 3 C
1 A 3 D
2 L 4 X
Chave de
classificação
Opções de
classificação
4 X 1 K 1
3 Y 1 A 0
1 K 2 P 1
2 L 0
3 C
3 Y 1
2 P
3 D 3 C 0
1 A 3 D 0
2 L 4 X 1
Classificações da partição
• A classificação ocorre separadamente dentro de cada partição
Por padrão, o estágio Sort é executado em modo paralelo
• E se você precisar de uma classificação global final, ou seja, uma
classificação de todos os dados, não apenas dos dados em uma
partição em particular?
Ao gravar os dados, colete-os usando o algoritmo Sort Merge
Ou execute o estágio Sort no modo sequencial
(não recomendado porque reduz o desempenho)
Classificações da partição
Por padrão, o estágio Sort é executado em modo paralelo. A classificação ocorre
separadamente dentro de cada partição. Em muitos casos, essa é toda a classificação
necessária. Em alguns casos, uma classificação global entre todas as partições é
necessária. Mesmo neste caso, faz sentido executar o estágio no modo paralelo e
coletá-lo depois usando Sort Merge. Isso geralmente é muito mais rápido que
executar o estágio no modo sequencial.
Estágio Aggregator
• Propósito: executar agregações de dados
Funciona como uma instrução SQL com uma cláusula GROUP BY
• Especifique uma ou mais colunas que definam os grupos de
agregação
• Dois tipos de agregações
Aqueles que agregam os dados dentro de colunas específicas
− Seleção de colunas
− Especificação das agregações: SUM, MAX, MIN etc.
Aqueles que simplesmente contam as linhas dentro de cada grupo
• O estágio Aggregator pode funcionar de modo mais eficiente se os
dados tiverem sido pré-classificados
Especificado na propriedade Method: Hash (padrão) / Sort
Estágio Aggregator
Este slide apresenta os principais recursos do estágio Aggregator. Ele funciona de
modo muito semelhante a uma
instrução SQL com uma cláusula GROUP BY. Porém, contém muito mais agregações
possíveis que aquelas que o SQL fornece.
As principais atividades que você executa no estágio Aggregator são especificar as
colunas-chave que definem os grupos e selecionar as agregações que o estágio deve
executar. Há dois tipos básicos de cálculos: contar as linhas dentro de cada grupo, que
é um cálculo que não é executado com relação a nenhuma coluna específica; e
cálculos executados com relação às colunas selecionadas.
Se os dados que estão indo para o estágio Aggregator já tiverem sido classificados,
esse estágio poderá funcionar de maneira mais eficiente. Você indica isso usando a
propriedade Method.
Estágio
Aggregator
Tipos de agregação
• Count rows
Contagem de linhas em cada grupo
Especificação da coluna de saída
• Calculation
Seleção das colunas para cálculo
Seleção de cálculos a executar, incluindo:
− Soma
− Mín., máx.
− Média
− Contagem de valor ausente
− Contagem de valor não ausente
Especificação das colunas de saída
Tipos de agregação
Há dois tipos básicos de agregação: Count rows, Calculation. O primeiro conta o
número de linhas em cada grupo. Com o segundo tipo, você seleciona uma coluna de
entrada em que deseja executar o cálculo. Então, você seleciona os cálculos a
executar naquela coluna de entrada e as colunas de saída nas quais colocar os
resultados.
Coluna-chave
do grupo
Tipo de
agregação
Count Rows
Coluna para
o resultado
Tipo de coluna
padrão
Coluna-chave de
agrupamento
Tipo de agregação
Calculation
Cálculos e nomes da
coluna de saída
Coluna para
cálculo
Mais cálculos
Métodos de agrupamento
• Hash (padrão)
Os cálculos são feitos para todos os grupos e armazenados na memória
− Estrutura da hashtable (portanto, o nome)
Os resultados são gravados depois de todas as colunas na partição terem
sido processadas
A entrada não precisa ser classificada
É necessário ter memória suficiente para armazenar todos os grupos de
dados a serem processados
• Sort
Requer que os dados de entrada sejam classificados por chaves de
agrupamento
− Não executa a classificação! Espera a classificação
Somente um único grupo é mantido na memória por vez
− Depois de um grupo ser processado, o resultado do grupo é gravado
Precisa apenas de memória suficiente para armazenar o grupo processado
no momento
Estágios de processamento de grupo © Copyright IBM Corporation 2015
Métodos de agrupamento
Há dois métodos de agrupamento no estágio Aggregator. Isso resume seus recursos e
diferenças. O método padrão é Hash. Quando esse método é selecionado, o estágio
Aggregator faz os cálculos para todos os grupos e armazena os resultados na
memória. Dito de outra forma, todos os dados de entrada são lidos e processados. Se
não houver memória suficiente para ler e processar todos os dados na memória, o
estágio usará o disco utilizável, que torna o processo consideravelmente mais lento.
Esse método não exigiu a pré-classificação dos dados.
O método Sort requer que os dados sejam pré-classificados. O estágio em si não
executa a classificação. Quando Sort é selecionado, o estágio somente armazena um
único grupo na memória por vez. Assim, é necessária muito pouca memória. O estágio
Aggregator também funciona mais rapidamente, uma vez que os dados foram pré-
processados.
Method = Hash
Chave Col 4 4X
4 X
3 Y
1 K 3 3Y 3C 3D
3 C
2 P 1 1K 1A
3 D
1 A 2 2P 2L
2 L
Method = Hash
Este diagrama ilustra o método Hash.
Quando o Method é igual a Hash, todos os grupos de dados devem ser colocados na
memória. Isso é ilustrado pelo círculo em torno de todos os grupos. A estrutura na
memória é uma estrutura com chave para retorno rápido dos resultados.
Method = Sort
Chave Col
1 K
1K 1A
1 A
2 P
2 L
2P 2L
3 Y
3 C
3 D 3Y 3C 3D
4 X
4X
Method = Sort
Este diagrama ilustra o método Sort.
Quando Method é igual a Sort, apenas o grupo atual precisa ser colocado na
memória. Isso é ilustrado pelos círculos ao redor dos grupos individuais.
Remoção de duplicatas
• por estágio Sort
Uso de uma única opção
− Não há escolha quanto a qual duplicata manter
−A classificação estável sempre retém a primeira linha no grupo
−A classificação não estável é indeterminada
OU
Remoção de duplicatas
Há várias maneiras de remover duplicatas em uma tarefa do DataStage. Ao classificar,
é possível especificar que as duplicatas sejam removidas, esteja você classificando
usando um estágio Sort ou executando uma classificação em estágio. Como
alternativa, a tarefa pode usar o estágio Remove Duplicates. A vantagem de usar o
estágio Remove Duplicates é que você pode especificar se a primeira ou a última
duplicata deve ser retida.
Estágio Remove
Duplicates
Colunas que
definem duplicatas
Duplicatas a
reter
Opcionalmente, inclua
mais colunas-chave
Ponto de verificação
1. Que estágio é usado para executar cálculos de valores de coluna
agrupados de maneiras específicas?
2. Quais são os dois modos possíveis de executar classificações?
3. O que é uma classificação estável?
4. Quais são dois tipos de agregações que podem ser executados?
Ponto de verificação
Demonstração 1
Estágios de processamento de grupo
Demonstração 1:
Estágios de processamento de grupo
Propósito:
Para entender como os grupos de dados são processados, você criará uma
tarefa que use os estágios Sort, Aggregator e Remove Duplicates. Também
criará um design de bifurcação-junção.
Usuário/senha do Windows: student/student
Cliente do DataStage: Designer
Usuário/senha do cliente do Designer: student/student
Projeto: EDSERVER/DSProject
NOTA:
Nesta demonstração e em outras demonstrações neste curso, pode haver atividades
que iniciam com tarefas que você foi instruído a criar em atividades anteriores. Se você
não tiver conseguido concluir a tarefa anterior, pode importá-la do arquivo
DSEssLabSolutions_V11_5_1.dsx no diretório de arquivos
C:\CourseData\DSEss_Files\dsx. Esse arquivo contém todas as tarefas construídas
nas demonstrações para este curso.
Etapas:
1. Clique em Import e depois em DataStage Components.
2. Selecione a opção Import selected e selecione a tarefa desejada na lista
exibida.
Se você quiser salvar uma versão anterior da tarefa, salve-a com um novo nome antes
de importar a versão do arquivo de soluções de demonstração.
10. Na guia Output > Columns, defina CountGroup como um número inteiro,
comprimento 10.
12. Verifique, na guia Link Ordering, que o link CopyToJoin é o link esquerdo.
13. Na guia Output > Mapping, mapeie todas as colunas. Clique em Yes para a
mensagem sobre a substituição do valor, se solicitado.
15. Na guia Output > Mapping, mova todas as colunas pelo estágio.
16. Na guia Input > Partitioning, selecione Same para garantir que o
particionamento que está indo para o estágio não mude.
18. Na guia Output > Mapping, mova todas as colunas pelo estágio.
19. Edite o estágio Sequential de destino. Grave em um arquivo chamado
Selling_Group_Code_Deduped.txt no diretório Temp dos arquivos de
laboratório. Na guia Partitioning, colete os dados usando Sort Merge com
base nas duas colunas pelas quais os dados foram classificados, clicando nas
colunas para movê-las para a caixa Selected.
21. Visualize os resultados. Deve haver menos linhas indo para o estágio de
destino do que o número saindo do estágio de origem, uma vez que os
registros duplicados foram eliminados.
Resultados:
Para entender como os grupos de dados são processados, você criou uma
tarefa que usa os estágios Sort, Aggregator e Remove Duplicates. Além
disso, você também criou um design de bifurcação-junção.
Bifurcação
de dados
Junção de dados
Resumo da unidade
• Classificar dados usando classificações em estágio e o estágio Sort
• Combinar dados usando o estágio Aggregator
• Combinar dados usando o estágio Remove Duplicates
Resumo da unidade
Estágio Transformer
Objetivos da unidade
• Usar o estágio Transformer em tarefas paralelas
• Definir restrições
• Definir derivações
• Usar variáveis de estágio
• Criar um conjunto de parâmetros e usar seus parâmetros em
restrições e derivações
Objetivos da unidade
Esta unidade foca no estágio primário para implementar lógica de negócios em uma
tarefa do DataStage, a saber, o Transformer.
Estágio Transformer
• Estágio principal para filtrar, direcionar e transformar dados
• Definir restrições
Apenas linhas que satisfazem a condição especificada podem passar o link
Use para filtrar dados
− Por exemplo, apenas gravar linhas para clientes localizados na Califórnia
Use para direcionar dados por links de saída diferentes com base nas condições
especificadas
− Por exemplo, enviar a clientes não registrados um link e a clientes registrados, outro
• Definir derivações
Derivar um valor de saída de várias colunas de entrada e gravá-los em uma
variável de estágio ou coluna
• Compila em um operador customizado no OSH
É por isso que o DataStage requer um compilador C++
• Opcionalmente, inclui um link de rejeição
Captura linhas que o estágio Transformer não pode processar
Estágio Transformer © Copyright IBM Corporation 2015
Estágio Transformer
Aqui, são listados os principais recursos do estágio Transformer, que é o estágio
primário para filtragem, direcionamento e transformação de dados.
Em um estágio Transformer, é possível especificar restrições para quaisquer links de
saída. As restrições podem ser usadas para filtrar dados ou para restringir os dados à
execução em um link de saída específico.
Em um estágio Transformer, é possível definir derivações para qualquer coluna ou
variável de saída. Uma derivação define o valor que deve ser gravado na coluna ou
variável.
Transformer
Entrada única
Link de
rejeição
Várias
saídas
Variáveis
de estágio
Loops
Colunas
do link de
entrada Derivações
Colunas
de saída
Definições
de coluna
Restrições
• O que é uma restrição?
Definida para cada link de saída
Especifica uma condição sob a qual uma linha de dados pode fluir para fora do
link
• Usos
Filtrar dados: Funciona como uma cláusula SQL WHERE
Direciona os dados por diferentes links de saída com base nas restrições
definidas nos links
• Construído usando o editor de expressão
• Especificado na janela Constraints
Lista os nomes dos links de saída
Clique duas vezes na célula à direita do nome do link para abrir o editor de
expressão do estágio para definir a restrição
Links de saída sem restrições definidas produzem todas as linhas como saída
Restrições
Descreve os principais recursos das restrições: o que são, como são utilizados e como
são construídos.
Uma restrição é uma condição. É verdadeira ou falsa. Quando é verdadeira
(cumprida), os dados podem fluir através do link de saída. Apenas se a restrição for
atendida, as derivações para cada uma das colunas de saída do link serão
executadas.
Exemplo de restrições
• Aqui, códigos de manipulação baixos são direcionados por um link de
saída e códigos de manipulação altos, pelo outro
• No Transformer, as restrições são definidas para ambos os links de saída
Exemplo de restrições
Este slide exibe uma tarefa paralela com um estágio Transformer. Há dois links de
saída. No Transformer, as restrições são definidas para ambos os links de saída.
Neste exemplo, códigos de manipulação baixos são direcionados por um link de saída
e códigos de manipulação altos, pelo outro.
Uma linha de dados pode cumprir uma ou mais de uma restrição de link de saída. Será
gravado cada link de saída cuja restrição seja atendida. Todas as linhas serão
gravadas para links que não tenham restrições.
Links de saída
Selecione a coluna
de entrada no menu
Link
Otherwise
Link
Otherwise
Link Otherwise
Demonstração 1
Definição de uma restrição
Demonstração 1:
Definição de uma restrição
Propósito:
Você deseja definir restrições no estágio Transformer de uma tarefa. Mais
adiante, você definirá um link Otherwise.
Usuário/senha do Windows: student/student
Cliente do DataStage: Designer
Usuário/senha do cliente do Designer: student/student
Projeto: EDSERVER/DSProject
NOTA:
Nesta demonstração e em outras demonstrações neste curso, pode haver atividades
que iniciam com tarefas que você foi instruído a criar em atividades anteriores. Se você
não tiver conseguido concluir a tarefa anterior, pode importá-la do arquivo
DSEssLabSolutions_V11_5_1.dsx no diretório de arquivos
C:\CourseData\DSEss_Files\dsx. Esse arquivo contém todas as tarefas construídas
nas demonstrações para este curso.
Etapas:
1. Clique em Import e depois em DataStage Components.
2. Selecione a opção Import selected e selecione a tarefa desejada na lista exibida.
Se você quiser salvar uma versão anterior da tarefa, salve-a com um novo nome antes
de importar a versão do arquivo de soluções de laboratório.
Tarefa 1. Defina restrições do Transformer.
1. Crie uma nova tarefa paralela e salve-a como TransSellingGroup.
2. Inclua um estágio Sequential File (disponível em Palette > File), um estágio
Transformer (disponível em Palette > Processing) e dois estágios Sequential
File de destino à tela. Nomeie os links e estágios como mostrado.
3. Abra o estágio Sequential File de origem. Edite-o para ler os dados do arquivo
Selling_Group_Mapping_RangeError.txt. Ele tem os mesmos metadados
que o arquivo Selling_Group_Mapping.txt.
4. Abra o estágio Transformer. Arraste todas as colunas de entrada para ambas
as janelas do link de saída.
Resultados:
Você definiu restrições no estágio Transformer de uma tarefa. Mais adiante,
você definiu um link Otherwise.
Derivações
• As derivações são expressões que derivam um valor
• Como expressões para restrições, elas são construídas a partir de itens:
Colunas de entrada
Parâmetros da tarefa
Funções
Variáveis de estágio
Variáveis do sistema
• Como as derivações diferem de restrições
As restrições são:
− Expressões true ou false
− Aplicam-se a linhas
Derivações:
− Retornam um valor gravado em uma variável de estágio ou coluna de saída
− Aplicam-se a colunas
Derivações
Aqui estão os principais recursos de derivações. As derivações são expressões que
retornam um valor.
As derivações são construídas usando o mesmo editor de expressão com o qual as
restrições são construídas. Em sua maioria, elas contêm os mesmos tipos de itens. A
diferença é que as restrições são condições avaliadas para true ou false. Derivações
retornam um valor (que não true ou false) que pode ser armazenado em uma coluna
ou variável.
Destinos de derivação
• Os resultados da derivação podem ser gravados em:
Colunas de saída
Variáveis de estágio
Variáveis de loop
• As derivações são executadas na ordem, de cima para baixo
As derivações da variável de estágio são executadas primeiro
As derivações da variável de loop são executadas em seguida
As derivações da coluna de saída são executadas por último
− Executadas apenas se as restrições do link de saída forem atendidas
−A ordenação do link de saída determina a ordem entre os conjuntos das variáveis
do link de saída
Destinos de derivação
Os valores resultantes de derivações podem ser gravados em diferentes destinos:
colunas de saída, variáveis de estágio, variáveis de loop. (As variáveis de loop são
discutidas mais adiante nesta unidade.)
Variáveis de estágio
• Funcionam como colunas de destino, mas não são produzidos como
saída (diretamente) do estágio
• As variáveis de estágio são um item que pode ser referido em
derivações e restrições
Em derivações, funcionam de maneira similar que colunas de entrada
• Têm muitos usos, incluindo:
Simplificar derivações complexas
Reduzir o número de derivações
−A derivação na variável de estágio é executada uma vez, mas pode ser usada
muitas vezes
Variáveis de estágio
As variáveis de estágio funcionam como colunas de destino, mas não são produzidas
como saída (diretamente) do estágio. As variáveis de estágio são um item (entre
outros) que pode ser referido em derivações e restrições. Elas têm muitos usos,
incluindo: simplificar derivações complexas e reduzir o número de derivações.
As variáveis de estágio são chamadas de variáveis de "estágio" porque seu escopo é
limitado ao Transformer em que são definidas. Por exemplo, uma derivação em um
Transformer não pode fazer referência a uma variável de estágio definida em outro
Transformer.
Sequência de Operador de
caracteres entre aspas concatenação (:)
(simples ou duplas)
• UpCase(<string>) / DownCase(<string>)
Exemplo: UpCase(In.Description) = "ORANGE JUICE"
• Len(<string>)
Exemplo: Len(In.Description) = 12
Manipulação de nulo
• Nulos podem entrar no fluxo de dados:
Por meio de consultas (falhas de consulta)
Por meio de dados de origem contendo nulos
• Nulos gravados em colunas de saída não
anuláveis causam a interrupção da tarefa
• Os nulos podem ser manipulados usando as
funções de manipulação de nulo do
Transformer:
Testar quanto ao nulo na coluna ou variável
− IsNull(<column>)
− IsNotNull(<column>)
Manipulação de nulo
Este slide mostra as funções de manipulação de nulo padrão disponíveis no editor de
expressão do Transformer.
Os nulos no fluxo de função precisam ser manipulados ou a função pode ser
interrompida ou produzir resultados inesperados. Por exemplo, um valor nulo gravado
em uma coluna não anulável causará a interrupção da tarefa. Esse tipo de erro de
tempo de execução pode ser difícil de capturar, especialmente porque a função pode
ser executada sem problemas por um tempo antes de ser interrompida em decorrência
do nulo.
Ainda, lembre-se de que nulos gravados em um arquivo sequencial serão rejeitados
pelo estágio Sequential File, a menos que sejam manipulados. Embora esses nulos
possam ser manipulados no estágio Sequential File, eles também podem ser
manipulados anteriormente em um Transformer.
Processamento
de nulo anterior Interromper em
nulo não manipulado
Link de
rejeição
Demonstração 2
Definir derivações
Demonstração 2:
Definição de derivações
Propósito:
Você deseja definir derivações no estágio Transformer.
NOTA:
Nesta demonstração e em outras demonstrações neste curso, pode haver atividades
que iniciam com tarefas que você foi instruído a criar em atividades anteriores. Se você
não tiver conseguido concluir a tarefa anterior, pode importá-la do arquivo
DSEssLabSolutions_V11_5_1.dsx no diretório de arquivos
C:\CourseData\DSEss_Files\dsx. Esse arquivo contém todas as tarefas construídas
nas demonstrações para este curso.
Etapas:
1. Clique em Import e depois em DataStage Components.
2. Selecione a opção Import selected e selecione a tarefa desejada na lista
exibida.
Se você quiser salvar uma versão anterior da tarefa, salve-a com um novo nome antes
de importar a versão do arquivo de soluções de laboratório.
Tarefa 1. Crie uma derivação de formatação.
1. Abra a tarefa TransSellingGroupOtherwise e salve-a como
TransSellingGroupDerivations.
2. Abra o Transformer.
3. Compile, execute e teste sua tarefa. Aqui está parte da saída do estágio
HighCode. Observe especificamente a linha (550000), que mostra a
substituição de SG055 por SH055 na segunda coluna.
Processamento de loop
• Para cada linha lida, o loop é processado
Várias linhas de saída podem ser gravadas para cada linha de entrada
• Um loop consiste em:
Condição de loop: o loop continua a ser iterado enquanto a condição for
verdadeira
− Variável do sistema @ITERATION:
• Mantém uma contagem do número de vezes que o loop iterou, começando em 1
• Redefinida para 1 quando a nova linha é lida
− Limite de aviso de iteração de loop
• Aviso gravado no log quando o limite é atingido
Variáveis de loop:
− Executadas na ordem, de cima para baixo
− Similares às variáveis de estágio
− Definidas na guia Loop Variables
Processamento de loop
Com loops, várias linhas de saída podem ser gravadas para cada linha de entrada. Um
loop consiste em uma condição de loop e variáveis de loop, que são similares a
variáveis de estágio. Desde que a condição de saída seja atendida, as derivações da
variável de loop continuarão sendo executados de cima para baixo.
A condição de loop é uma expressão que é avaliada para verdadeiro ou falso (como
uma restrição). É avaliada uma vez depois de a linha ser lida, antes da execução das
derivações da variável de loop. Você deseja garantir que a condição de loop acabe
sendo avaliada para falso. Caso contrário, seu loop continuará em execução para
sempre. O limite de aviso de iteração de loop é projetado para capturar alguns desses
casos. Depois de um determinado número de avisos, sua tarefa será cancelada.
Dados de origem
Resultados
Conta o número
de cores
Demonstração 3
Processamento de loop
Demonstração 3:
Processamento de loop
Propósito:
Você deseja criar variáveis e condições de loop. Você também deseja
processar linhas de entrada através de um loop.
NOTA:
Nesta demonstração e em outras demonstrações neste curso, pode haver atividades
que iniciam com tarefas que você foi instruído a criar em atividades anteriores. Se você
não tiver conseguido concluir a tarefa anterior, pode importá-la do arquivo
DSEssLabSolutions_V11_5_1.dsx no diretório de arquivos
C:\CourseData\DSEss_Files\dsx. Esse arquivo contém todas as tarefas construídas
nas demonstrações para este curso.
Etapas:
1. Clique em Import e depois em DataStage Components.
2. Selecione a opção Import selected e selecione a tarefa desejada na lista exibida.
Se você quiser salvar uma versão anterior da tarefa, salve-a com um novo nome antes
de importar a versão do arquivo de soluções de laboratório.
Tarefa 1. Transforme.
1. Abra C:\CourseData\DSEss_Files\ColorMappings.txt no WordPad.
Esse é seu arquivo de origem. Cada número de item é seguido por uma lista de
cores.
9. Abra a janela Loop Condition. Clique duas vezes na caixa branca ao lado da
caixa Loop While para abrir o Expression Editor. Especifique uma condição de
loop que itere para cada cor. O número total de iterações é armazenado na
variável de estágio NumColors. Use a variável do sistema @ITERATION.
12. Arraste a variável de loop Color para a célula de derivação ao lado da coluna
do link de saída Color.
15. Visualize os dados no estágio de destino. Você deve ver várias linhas para
cada número de item.
16. Teste se você tem os resultados corretos. Por exemplo, conte o número de
linhas para o item 16.
Resultados:
Você criou variáveis e condições de loop. Você também processou linhas de
entrada através de um loop.
Processamento de grupo
• LastRowInGroup(In.Col) pode ser usada para determinar quando a
última linha em um grupo está sendo processada
O estágio Transformer deve ser precedido por um estágio Sort que
classifique os dados pelas colunas-chave do grupo
• Variáveis de estágio podem ser usadas para calcular agregações e
resumos de grupo
Processamento de grupo
No processamento de grupo, a função LastRowInGroup(In.Col) pode ser usada para
determinar quando a última linha em um grupo está sendo processada.
Essa função requer que o estágio Transformer seja precedido por um estágio Sort que
classifique os dados pelas colunas-chave do grupo.
Classificar por
chave de grupo
Resultados da tarefa
Antes Depois
Resultados da tarefa
Esses slides mostram os resultados da tarefa antes e depois. Observe que as cores
individuais para o grupo de registros Item aparecem nos resultados como uma lista de
cores.
Os dados de origem são agrupados por número de item. Os dados também são
classificados por número de item, mas isso não é necessário. A função
LastRowInGroup() é usada para determinar que, por exemplo, a linha 16 da cor
branca seja a última linha no grupo. Neste ponto, os resultados para o grupo podem
ser concluídos e gravados. Neste exemplo, o resultado do grupo consiste em uma lista
de todas as cores no grupo. Porém, este é apenas um exemplo. É possível produzir
qualquer tipo de agregação de grupo de maneira similar.
Lógica do Transformer
LastRowInGroup()
TotalColorList
CurrentColorList
Lógica do Transformer
Neste exemplo, a variável de estágio IsLastInGroup é usada como uma sinalização.
Quando é igual a "Y", a última linha está sendo processada no momento. A função
LastRowInGroup() é usada para configurar a sinalização.
O valor para a variável de estágio TotalColorList é construído concatenando a cor
atual para a CurrentColorList. Quando a sinalização IsLastInGroup é configurada, a
CurrentColorList contém toda a lista, exceto a linha atual.
A CurrentColorList é construída conforme cada linha no grupo é processada. Quando
a última linha é processada, mas após a criação de TotalColorList, ela é inicializada
para a sequência de caracteres vazia.
Antes Depois
Lógica do Transformer
Salvar linha
de entrada
Saída
Lógica do Transformer
Esse slide mostra a lógica do Transformer. Depois de salvar os registros em um grupo,
os registros serão recuperados em um loop. Uma linha de saída é gravada para cada
iteração através do loop. Isso consiste em dados da linha recuperada mais a lista de
cores total.
Configurar ponto
de interrupção
Ícone
Breakpoint
Condições do
ponto de
interrupção
Ícone
Start/Continue
Guia Node 1
Lista de
observação
Demonstração 4
Processamento de grupo em um Transformer
Demonstração 4:
Processamento de grupo em um Transformer
Propósito:
Você deseja processar grupos de linhas de dados em um Transformer. Mais
adiante, você usará o depurador de tarefa paralela.
NOTA:
Nesta demonstração e em outras demonstrações neste curso, pode haver atividades
que iniciam com tarefas que você foi instruído a criar em atividades anteriores. Se você
não tiver conseguido concluir a tarefa anterior, pode importá-la do arquivo
DSEssLabSolutions_V11_5_1.dsx no diretório de arquivos
C:\CourseData\DSEss_Files\dsx. Esse arquivo contém todas as tarefas construídas
nas demonstrações para este curso.
Etapas:
1. Clique em Import e depois em DataStage Components.
2. Selecione a opção Import selected e selecione a tarefa desejada na lista
exibida.
Se você quiser salvar uma versão anterior da tarefa, salve-a com um novo nome antes
de importar a versão do arquivo de soluções de laboratório.
Tarefa 1. Processe grupos em um Transformer.
1. Crie uma nova tarefa chamada TransGroup. Nomeie os links e estágios como
mostrado.
8. Na guia Sort Input > Partitioning, faça o hash da partição pela coluna Item.
9. Abra o estágio Transformer. Arraste a coluna Item para o link de saída. Defina
uma nova coluna chamada Colors como VarChar(255).
10. Crie uma variável de estágio Char(1) chamada IsLastInGroup. Inicialize com
'N' (significando "Não").
11. Crie uma variável de estado VarChar(255) chamada TotalColorList. Inicialize-a
com a sequência de caracteres vazia.
16. Arraste a variável de estágio TotalColorList para baixo para a célula ao lado
de Colors no link de destino.
17. Em seguida, defina uma restrição para o link de destino. Inclua a restrição
IsLastInGroup = 'Y' para gerar como saída uma linha quando a última linha do
grupo estiver sendo processada.
5. Defina a condição de loop. Itere nas linhas salvas depois de atingir a última
linha no grupo.
5. Compile a tarefa.
6. No menu do Designer, clique em Debug > Debug Window.
14. Na janela Debug, clique em Run to End para ver para onde as outras
linhas vão.
A tarefa é concluída e todas as linhas percorrem o link otherwise. Mas por quê?
Isso não deve acontecer.
Nota: para ver rapidamente quantos itens são gravados em cada arquivo
sequencial, clique com o botão direito em qualquer lugar da tela e garanta que
haja uma marca de seleção ao lado de Show performance statistics.
16. A situação definitivamente parece melhor desta vez. Mais linhas passaram pelo
link LowCode e o ponto de interrupção para o link LowCode não foi ativado. O
ponto de interrupção para o link otherwise foi ativado. Uma vez que o valor do
Special_Handling_Code está fora do intervalo, é assim que deve ser.
18. Visualize os dados no arquivo LowCode para verificar se eles contêm apenas
linhas "Food Service".
19. Visualize os dados no arquivo RangeErrors para verificar se ele não contém
nenhuma linha "Food Service" que não esteja fora do intervalo.
Parece haver várias linhas "Food Service" que deveriam ter saído do link
LowCodes.
Ponto de verificação
1. O que ocorre primeiro? Derivações ou restrições?
2. As variáveis de estágio podem ser referidas em restrições?
3. Que função se pode usar em um Transformer para determinar
quando você está processando a última linha em um grupo? Que
estágio adicional é necessário para usar essa função?
4. Que função se pode usar em um Transformer para salvar cópias de
linhas de entrada?
5. Que função se pode usar em um Transformer para recuperar linhas
salvas?
Ponto de verificação
Resumo da unidade
• Usar o estágio Transformer em tarefas paralelas
• Definir restrições
• Definir derivações
• Usar variáveis de estágio
• Criar um conjunto de parâmetros e usar seus parâmetros em
restrições e derivações
Resumo da unidade
Funções de repositório
Objetivos da unidade
• Executar uma busca simples
• Executar uma busca avançada
• Executar uma análise de impacto
• Comparar as diferenças entre duas definições de tabela
• Comparar as diferenças entre duas tarefas
Objetivos da unidade
Busca rápida
Inclusão de
correspondências
nas descrições de
Execução
objeto
da busca
Busca rápida
Este slide mostra um exemplo de uma busca rápida. Ela procura objetos que
correspondem ao nome na caixa Name to find. O asterisco (*) é um caractere curinga
que representa zero ou mais caracteres.
Busca rápida destaca o primeiro objeto que corresponde na janela Repository. É
possível clicar em Find repetidamente para alternar entre mais objetos
correspondentes.
Se a caixa Include descriptions estiver marcada, o texto nas descrições Short
descriptions e Long será procurado junto com os nomes dos objetos.
Resultados localizados
Clique para
Clique em Next para
abrir a janela
destacar o item
Advanced Find
seguinte
Item
localizado
Resultados localizados
Esse slide mostra os resultados de Quick Find. O primeiro item localizado é
destacado. Clique em Next para ir para o próximo item localizado.
É possível mover para a janela Advanced Find clicando no botão Adv.... A janela
Advanced Find lista todos os resultados localizados em uma lista.
Itens
localizados
Opções de procura
Comparação
de objetos
Criação de
análise de
impacto
Exportação
para um
arquivo
Localização de tarefas
em que uma definição
de tabela é usada
Resultados
Guia Results
Resultados
Tarefas que
dependem
da definição
Visualização
de tabela
“Birds Eye”
Guia Graphical
Results
Funções de repositório © Copyright IBM Corporation 2015
Mostrar gráfico de
dependência
Definição
de tabela
Tarefa contendo
(dependente de)
definição de tabela
Descrições do
caminho de
dependência
Selecione e
depois clique em
Show where data
originates from
Selecione
as
colunas
Resultados exibidos
Resultados exibidos
Esse slide mostra a tarefa depois da geração do gráfico. O caminho do estágio
Sequential File Items para o estágio Data Set de destino é destacado em amarelo.
Início da comparação
Tarefa com
as mudanças
Início da comparação
Esse slide mostra como iniciar uma comparação entre duas tarefas. Selecione uma
das tarefas. Clique com o botão direito do mouse e depois clique em Compare
against...
Resultados da comparação
Clique no item
sublinhado para abrir
o editor de estágio
Clique no estágio e
nas referências do
link para destacar as
tarefas abertas
Resultados da comparação
Esse slide mostra os resultados da comparação e destaca determinados recursos no
relatório. Neste exemplo em particular, o relatório lista as mudanças ao nome da tarefa,
aos valores de propriedade dentro de estágios e às definições de coluna.
Observe que alguns itens estão sublinhados. É possível clicar neles para abrir o item
em um editor de estágio.
Clique quando a
janela Comparison
Results estiver ativa
Ponto de verificação
1. É possível comparar as diferenças entre quais dois tipos de objetos?
2. Quais caracteres "curinga" podem ser usados em uma busca?
3. Você tem uma tarefa cujo nome começa com "abc". Você não
consegue se lembrar do restante do nome ou de onde a tarefa está
localizada. Qual seria a maneira mais rápida de exportar a tarefa
para um arquivo?
4. Cite três filtros que você pode usar em Advanced Find.
Ponto de verificação
Escreva suas respostas aqui:
Demonstração 1
Funções de repositório
Demonstração 1:
Funções de repositório
Propósito:
Você deseja usar as funções de repositório para localizar objetos do
DataStage, gerar um relatório e executar uma análise de impacto. Por fim,
deseja localizar as diferenças entre duas tarefas e entre duas definições de
tabela.
Usuário/senha do Windows: student/student
Cliente do DataStage: Designer
Usuário/senha do cliente do Designer: student/student
Projeto: EDSERVER/DSProject
NOTA:
Nesta demonstração e em outras demonstrações neste curso, pode haver atividades
que iniciam com tarefas que você foi instruído a criar em atividades anteriores.
Se você não tiver conseguido concluir a tarefa anterior, pode importá-la do
arquivo DSEssLabSolutions_v11_5_1.dsx no diretório de arquivos
C:\CourseData\DSEss_Files\dsx. Esse arquivo contém todas as tarefas construídas
nas demonstrações para este curso.
Etapas:
1. Clique em Import e depois em DataStage Components.
2. Selecione a opção Import selected e selecione a tarefa desejada na lista
exibida.
Se você quiser salvar uma versão anterior da tarefa, salve-a com um novo nome antes
de importar a versão do arquivo de soluções de laboratório.
Tarefa 1. Execute uma busca rápida.
1. No painel esquerdo, na janela Repository, clique em Open quick find na
parte superior.
6. Clique em Find.
Resultados:
Você usou as funções de repositório para localizar objetos do DataStage,
gerar um relatório e executar uma análise de impacto. Por fim, localizou as
diferenças entre duas tarefas e entre duas definições de tabela.
Resumo da unidade
• Executar uma busca simples
• Executar uma busca avançada
• Executar uma análise de impacto
• Comparar as diferenças entre duas definições de tabela
• Comparar as diferenças entre duas tarefas
Resumo da unidade
Trabalho com
dados relacionais
Objetivos da unidade
• Importar as definições de tabela para tabelas relacionais
• Criar conexões de dados
• Usar os estágios ODBC e DB2 Connector em uma tarefa
• Usar o SQL Builder para definir instruções SQL SELECT e INSERT
• Usar vários links de entrada em estágios Connector para atualizar
diversas tabelas dentro de uma única transação
• Criar links de rejeição de estágios do conector para capturar linhas
com erros de SQL
Objetivos da unidade
Importação da tabela
de banco de dados
Nome da tabela
Importação do ODBC
Seleção do nome de Começar a
origem de dados ODBC importação
Selecione tabelas
a importar
Pasta do Repository de
definição de tabela
Importação do ODBC
Esse slide mostra a janela ODBC Import Metadata. A origem de dados ODBC que
acessa o banco de dados contendo as tabelas a serem importadas foi definida
anteriormente.
Selecione uma ou mais tabelas a importar. Na caixa To folder, selecione a pasta
Repository na qual armazenar as definições de tabela importadas.
Estágios Connector
• Os tipos do Connector incluem:
ODBC
DB2
Oracle
Teradata
• Todos os estágios Connector têm exatamente a mesma aparência e o
mesmo conjunto central de propriedades
Alguns tipos incluem propriedades específicas do tipo de banco de dados
• As propriedades da tarefa podem ser inseridas em qualquer
propriedade
• As propriedades requeridas são identificadas visualmente
• Suporte paralelo para leitura e gravação
Leitura: conexões paralelas ao servidor e consultas SQL modificadas para
cada conexão
Gravação: conexões paralelas ao servidor
Trabalho com dados relacionais © Copyright IBM Corporation 2015
Estágios Connector
Existem estágios Connector para todos os principais tipos de banco de dados, e tipos
adicionais são incluídos continuamente. Todos os tipos de Connector têm exatamente
a mesma aparência e o mesmo conjunto central de propriedades.
Existem outros estágios para acessar dados relacionais (por exemplo, estágios
Enterprise), mas, na maioria dos casos, os estágios Connector oferecem a máxima
funcionalidade e o melhor desempenho.
Os estágios Connector oferecem suporte paralelo para leitura e gravação em tabelas
de banco de dados. Isso é verdadeiro, não importa se o sistema de banco de dados
em si implementa paralelismo.
ODBC Connector
para leitura
Propriedades Colunas
Testar
conexão
Visualizar
dados
Painel Navigation
• Guia Stage
Exibe o subconjunto de propriedades em comum a todos os usos do
estágio, não importa seus links de entrada e saída
Por exemplo, propriedades de conexão do banco de dados
• Guia Output / Input
Exibe propriedades relacionadas ao link de saída ou entrada
Por exemplo, o nome da tabela da qual o link de saída está lendo
ou na qual o link de entrada está gravando
Painel Navigation
Use o painel Navigation para destacar um link ou estágio no painel para exibir as
propriedades associadas a ele.
Propriedades da conexão
• Propriedades da conexão ODBC
Nome da origem de dados ou nome do banco de dados
Nome de usuário e senha
Requer uma origem de dados ODBC definida no DataStage Server
• Propriedades da conexão DB2
Instância
− Não é necessário se um padrão for especificado nas variáveis de ambiente
Banco de dados
Nome de usuário e senha
Arquivo de biblioteca do cliente DB2
• Use Test para testar a conexão
• Pode carregar as propriedades da conexão de um objeto de
conexão de dados (discutido mais adiante)
Propriedades da conexão
O conjunto específico de propriedades da conexão depende do tipo de estágio. Todos
exigem uma origem de dados ou um nome de banco de dados e nome de usuário e
senha. Alguns tipos de estágios Connector incluirão propriedades de conexão
adicionais. O estágio Connector do DB2 tem propriedades para especificar o nome da
instância do DB2, se não for possível determiná-la pelas configurações da variável de
ambiente, e para especificar o local do arquivo de biblioteca do cliente do DB2, se não
for possível determiná-lo pelas configurações da variável de ambiente.
Quando você tiver especificado as propriedades da conexão, clique em Test para
verificar a conexão.
Propriedades da conexão
Modo de gravação
SQL gerado
Ação da tabela
Valores da propriedade
do conector
Nova
conexão de
dados
Carregar a Criar a
conexão de conexão de
dados dados
Demonstração 1
Leitura e gravação em tabelas relacionais
Demonstração 1:
Leitura e gravação em tabelas relacionais
Propósito:
Você deseja ler e gravar em um banco de dados. Para fazer isso, primeiro
você criará um objeto Data Connection, então criará e carregará uma tabela
DB2. Por fim, você lerá da tabela DB2 e gravará em um arquivo.
Usuário/senha do Windows: student/student
Cliente do DataStage: Designer
Usuário/senha do cliente do Designer: student/student
Projeto: EDSERVER/DSProject
NOTA:
Nesta demonstração e em outras demonstrações neste curso, pode haver atividades
que iniciam com tarefas que você foi instruído a criar em atividades anteriores. Se você
não tiver conseguido concluir a tarefa anterior, pode importá-la do arquivo
DSEssLabSolutions_V11_5_1.dsx no diretório de arquivos
C:\CourseData\DSEss_Files\dsx. Esse arquivo contém todas as tarefas construídas
nas demonstrações para este curso.
Etapas:
1. Clique em Import e depois em DataStage Components.
2. Selecione a opção Import selected e selecione a tarefa desejada na lista
exibida.
Se você quiser salvar uma versão anterior da tarefa, salve-a com um novo nome antes
de importar a versão do arquivo de soluções de laboratório.
Tarefa 1. Crie um objeto Data Connection.
1. Clique em New e depois em Other.
4. Clique na guia Parameters e, na caixa Connect using Stage Type, clique nas
reticências para selecionar o tipo de estágio DB2 Connector:
5. Role para baixo e configure a propriedade Table action como Replace. Mude
também o número de linhas por transação (Record count) para 1. Depois de
mudar o valor, também é preciso configurar Array size para 1 (porque o
número de linhas por transação deve ser um múltiplo do tamanho da matriz).
4. Clique em OK.
5. Especifique To folder para apontar para a pasta _Training > Metadata.
Selecione a tabela STUDENT.ITEMS.
NOTA: se você tiver dificuldade para localizar, digite STUDENT.ITEMS na
caixa Name Contains e clique em Refresh.
6. Clique em Import.
7. Abra a definição de tabela STUDENT.ITEMS no painel Repository e clique na
guia Columns para examinar as definições de coluna. Se a coluna ITEM
contiver um tipo SQL ímpar, mude o tipo SQL para NVarChar.
Resultados:
Primeiro, você criou um objeto Data Connection, então criou e carregou uma
tabela DB2. Por fim, você leu da tabela DB2 e gravou em um arquivo Data Set.
Seleção do link
de entrada
Parâmetro da
tarefa
Clique para
criar o parâmetro
da tarefa
Propriedades
do estágio
Ordenação
de registro
Link de
rejeição
Condições Inclusão
do link de na linha de
rejeição rejeição
Associação
do links de
rejeição
Demonstração 2
Estágios Connector com vários links de entrada
Demonstração 2:
Estágios Connector com vários links de entrada
Propósito:
Você vai atualizar tabelas relacionais usando vários links de entrada do
Connector em uma única tarefa.
NOTA:
Nesta demonstração e em outras demonstrações neste curso, pode haver atividades
que iniciam com tarefas que você foi instruído a criar em atividades anteriores. Se você
não tiver conseguido concluir a tarefa anterior, pode importá-la do arquivo
DSEssLabSolutions_V11_5_1.dsx no diretório de arquivos
C:\CourseData\DSEss_Files\dsx. Esse arquivo contém todas as tarefas construídas
nas demonstrações para este curso.
Etapas:
1. Clique em Import e depois em DataStage Components.
2. Selecione a opção Import selected e selecione a tarefa desejada na lista
exibida.
Se você quiser salvar uma versão anterior da tarefa, salve-a com um novo nome antes
de importar a versão do arquivo de soluções de laboratório.
Tarefa 1. Crie uma tarefa com vários links de entrada do
Connector.
1. Crie uma nova tarefa paralela chamada relMultInput. Nomeie os links e
estágios como mostrado. Trabalhe da esquerda para a direita ao criar seu fluxo
de trabalho de tarefa, incluindo seus elementos e conectores.
2. Abra o estágio Sequential File de origem. Edite-o de modo que leia do arquivo
Selling_Group_Mapping.txt. Certifique-se de poder visualizar os dados.
10. Clique em Table action para selecionar a linha, então clique em Use Job
Parameter .
11. Clique em New Parameter e crie um novo parâmetro da tarefa chamado
TableAction, com um valor padrão de Append.
14. Na caixa Input name (upstream stage) na parte superior esquerda do estágio,
selecione SGM_CODES (Split).
15. Na guia Properties, configure a propriedade Write mode como Insert, a
propriedade Generate SQL para Yes, a propriedade Table name para
SGM_CODES e Table action para #TableAction#, como mostrado.
29. No log, abra a mensagem que descreve a instrução usada para gerar a tabela.
Observe que a instrução CREATE TABLE inclui a opção PRIMARY KEY.
30. Agora, vamos testar os links de rejeição. Execute a tarefa novamente, desta
vez selecionando uma Table action de Append.
31. Observe que todas as linhas são rejeitadas, pois elas têm chaves duplicadas.
32. No log da tarefa, abra uma das mensagens Peek de rejeição e visualize as
informações que ela contém. Observe que ela contém duas colunas adicionais
de informações (RejectERRORCODE, RejectERRORTEXT) que possuem
informações de erro SQL.
Resultados:
Você atualizou tabelas relacionais usando vários links de entrada do
Connector em uma única tarefa.
SQL Builder
• Usa a definição de tabela
Certifique-se de que as informações da guia Locator estejam
corretas
− Nomes de esquema e tabela são baseados nas informações da guia
Locator
• Arraste as definições de tabela para a tela SQL Builder
• Arraste colunas da definição de tabela para selecionar a tabela das
colunas
Opcionalmente, especifique a ordem de classificação
• Defina expressões da coluna
• Defina a cláusula WHERE
SQL Builder
Os estágios Connector contêm um utilitário chamado SQL Builder que pode ser usado
para construir o SQL usado pelo estágio. O SQL é construído usando as operações da
GUI, como arrastar e soltar em uma área da tela. Usando o SQL Builder, é possível
construir instruções SQL complexas sem saber como construí-las manualmente.
Nome do esquema
da tabela
Nome da
tabela
Abrir o
SQL Builder
SQL
construído
Arrastar definição
de tabela
Arrastar
colunas
Incluir segundo
parâmetro da tarefa
Segunda
coluna pela
Classificar na ordem qual classificar
ascendente/decrescente
Primeira
coluna pela
qual classificar
Somente leitura
Guia SQL
Ponto de verificação
1. Quais são as três maneiras de compilar instruções SQL em
estágios Connector?
2. Qual das seguintes instruções pode ser especificada nos estágios
Connector? Select, Insert, Update, Upsert, Create Table.
3. Quais são duas maneiras de carregar metadados de conexão
de dados em um estágio do banco de dados?
Ponto de verificação
Escreva suas respostas aqui:
Demonstração 3
Construção de SQL usando o SQL Builder
Demonstração 3:
Construção de SQL usando o SQL Builder
Propósito:
Você deseja construir uma instrução SQL SELECT usando o SQL Builder.
NOTA:
Nesta demonstração e em outras demonstrações neste curso, pode haver atividades
que iniciam com tarefas que você foi instruído a criar em atividades anteriores. Se você
não tiver conseguido concluir a tarefa anterior, pode importá-la do arquivo
DSEssLabSolutions_v11_5_1.dsx no diretório de arquivos
C:\CourseData\DSEss_Files\dsx. Esse arquivo contém todas as tarefas construídas
nas demonstrações para este curso.
Etapas:
1. Clique em Import e depois em DataStage Components.
2. Selecione a opção Import selected e selecione a tarefa desejada na lista
exibida.
Se você quiser salvar uma versão anterior da tarefa, salve-a com um novo nome antes
de importar a versão do arquivo de soluções de laboratório.
Tarefa 1. Crie uma instrução SQL SELECT usando o SQL
Builder.
1. Abra sua tarefa relReadTable_odbc e salve-a como
relReadTable_odbc_sqlBuild.
9. Clique na guia SQL na parte inferior da janela para visualizar o SQL com base
nas suas especificações até o momento.
10. Clique em OK para salvar e fechar a sua instrução SQL e o SQL Editor.
11. Você pode receber algumas mensagens de aviso. Clique em Yes para aceitar
o SQL como gerado e permitir ao DataStage mesclar as colunas selecionadas
do SQL Builder com as colunas na guia Columns.
12. Clique na guia Columns. Assegure que as colunas ALLOCATED e
HARDALLOCATED sejam removidas, já que não são referidas no SQL.
Verifique também se as definições de coluna correspondem ao que você vê a
seguir.
6. Clique em OK.
10. Clique na guia SQL na parte inferior do SQL Builder para visualizar o SQL
construído. Verifique se está correto.
Resultados:
Você construiu uma instrução SQL SELECT usando o SQL Builder.
Resumo da unidade
• Importar as definições de tabela para tabelas relacionais
• Criar conexões de dados
• Usar os estágios ODBC e DB2 Connector em uma tarefa
• Usar o SQL Builder para definir instruções SQL SELECT e INSERT
• Usar vários links de entrada em estágios Connector para atualizar
diversas tabelas dentro de uma única transação
• Criar links de rejeição de estágios do conector para capturar linhas
com erros de SQL
Resumo da unidade
Controle da tarefa
Objetivos da unidade
• Usar o sequenciador de tarefas do DataStage para compilar uma
tarefa que controle uma sequência de tarefas
• Usar links e estágios do sequenciador para controlar a sequência de
execução de um conjunto de tarefas
• Usar acionadores e estágios do sequenciador para controlar as
condições de execução das tarefas
• Enviar informações em parâmetros da tarefa da tarefa controladora
principal para as tarefas controladas
• Definir variáveis de usuário
• Ativar reinicialização
• Manipular erros e exceções
Objetivos da unidade
Espera
pelo
arquivo
Execução
Execução
de um
de uma
comando
tarefa
Envio de
um e-mail
Manipulação
de exceções
Estágio de exceção
para manipular
Controle da tarefa
interrupções © Copyright IBM Corporation 2015
Modo de execução
Parâmetros da
tarefa e seus valores
Lista de tipos
de acionador
Compilação de expressões
de acionador customizadas
Executável
Parâmetros a
passar
Inclusão de
informações de
status da tarefa no
corpo do e-mail
Expressão definindo
o valor para a
variável
Variável
Arquivo
Opções
Estágio Sequencer
• Sequencie várias tarefas usando o estágio Sequence
Pode ser
configurado
para All ou Any
Controle da tarefa © Copyright IBM Corporation 2015
Estágio Sequencer
Esse slide mostra um exemplo de uma sequência de tarefas com o estágio Sequencer.
Este estágio passa o controle para o estágio seguinte (PTPCredit) quando o controle
chega a ele de todos ou de alguns dos links de entrada. Ele tem dois modos: All/Any.
Se All for o modo ativo, o controle deve chegar a ele de todos os seus links de entrada
antes de passar o controle para o estágio seguinte. Se Some for o modo ativo, o
controle deve chegar a ele de pelo menos um dos seus links de entrada antes de
passar o controle para o estágio seguinte.
Bifurcação baseada em
condições acionadoras
Condições
acionadoras
Controle da tarefa © Copyright IBM Corporation 2015
Estágios de loop
Link de
referência
para iniciar
Estágios de loop
Esse slide mostra uma sequência de tarefas com um estágio de loop. Neste exemplo,
o estágio de loop processa cada uma das listas de valores na caixa Delimited Values
mostrada no canto inferior esquerdo. Os valores são delimitados por vírgulas. Neste
exemplo, o loop irá iterar três vezes. O valor para cada iteração será armazenado na
variável de estágio Counter que será passada para o estágio ProcessPayrollFiles Job
Activity no parâmetro FileName. Para cada iteração, a tarefa executada pelo estágio
Job Activity lerá do arquivo cujo nome está na variável de estágio Counter.
Ativação da reinicialização
Permita a inclusão
de pontos de
verificação
Ativação da reinicialização
Esse slide mostra a janela Job Properties da sequência de tarefas.
Se Add check points so sequence is restartable on failure estiver selecionada, a
sequência poderá ser reiniciada quando houver uma falha. A execução iniciará no
ponto da falha. As atividades que foram executadas com sucesso anteriormente e que
passaram por ponto de verificação não serão executadas novamente.
Ponto de verificação
1. Qual estágio é utilizado para executar tarefas de execução em
uma sequência de tarefas?
2. O estágio Exception Handler tem suporte para um link de entrada?
Ponto de verificação
Escreva suas respostas aqui:
Demonstração 1
Compilação e execução de uma sequência de tarefas
Demonstração 1:
Compilação e execução de uma sequência de tarefas
Propósito:
Você deseja criar uma sequência de tarefas que execute três tarefas e
explorar como manipular exceções.
Usuário/senha do Windows: student/student
Cliente do DataStage: Designer
Usuário/senha do cliente do Designer: student/student
Projeto: EDSERVER/DSProject
NOTA:
Nesta demonstração e em outras demonstrações neste curso, pode haver atividades
que iniciam com tarefas que você foi instruído a criar em atividades anteriores. Se você
não tiver conseguido concluir a tarefa anterior, pode importá-la do arquivo
DSEssLabSolutions_V11_5_1.dsx no diretório de arquivos
C:\CourseData\DSEss_Files\dsx. Esse arquivo contém todas as tarefas construídas
nas demonstrações para este curso.
Etapas:
1. Clique em Import e depois em DataStage Components.
2. Selecione a opção Import selected e selecione a tarefa desejada na lista
exibida.
Se você quiser salvar uma versão anterior da tarefa, salve-a com um novo nome antes
de importar a versão do arquivo de soluções de laboratório.
Tarefa 1. Crie uma sequência de tarefas.
1. Importe o arquivo seqJobs.dsx para o diretório DSEss_Files\dsxfiles.
Esse arquivo contém as tarefas que você irá executar na sequência de tarefas:
seqJob1, seqJob2 e seqJob3.
2. Quando solicitado, importe tudo o que estiver listado no diálogo DataStage
Import.
3. Abra seqJob1. Compile a tarefa.
14. Abra a guia General na janela Job Properties. Revise e selecione todas as
opções de compilação.
15. Inclua parâmetros de tarefa à sequência de tarefas para fornecer valores aos
parâmetros da tarefa nas tarefas. Clique no botão Add Environment Variable
e, então, inclua $APT_DUMP_SCORE. Configure $APT_DUMP_SCORE
como True.
Dica: clique duas vezes na parte inferior da janela para classificar as variáveis.
16. Inclua três variáveis RecCount numeradas: RecCount1, RecCount2 e
RecCount3. Todas são uma sequência de tipos com um valor padrão de 10.
17. Abra o primeiro estágio Job Activity e configure e/ou verifique se o valor Job
name está definido para a tarefa que o estágio Activity deve executar.
18. Para o estágio Job Activity, configure os parâmetros da tarefa para os
parâmetros da tarefa correspondentes da sequência de tarefas. Para o valor
PeekHeading, use uma sequência de caracteres com um único espaço.
20. Repita a configuração para os outros dois estágios usando os dois e três
valores correspondentes que correspondem ao estágio relevante.
Em cada um dos dois primeiros estágios Job Activity, você quer configurar os
acionadores de tarefa de modo que as últimas tarefas sejam executadas
apenas se as tarefas anteriores tiverem sido executadas sem erros, embora
possivelmente com avisos. Isso significa que DSJS.JOBSTATUS é
DSJS.RUNOK ou DSJS.RUNWARN.
Para fazer isso, é preciso criar um acionador customizado que especifique que
o status da tarefa anterior é igual a um dos dois valores acima.
21. Para seqJob1, na guia Triggers, na caixa Expression Type, selecione Custom
- (Conditional).
22. Clique duas vezes na célula Expression, clique com o botão direito, clique em
Activity Variable e, então, insira $JobStatus.
23. Clique com o botão direito para inserir "=", clique com o botão direito, clique em
DS Constant e, então, insira DSJS.RUNOK.
24. Clique com o botão direito para inserir Or.
25. Clique com o botão direito para inserir "=", clique com o botão direito, clique em
DS Constant e, então, insira DSJS.RUNWARN.
27. Repita a etapa anterior para seqJob2 para incluir a expressão customizada.
O resultado para seqJob2 aparece da seguinte maneira:
2. Abra o estágio User Variables e depois a guia User Variables. Clique com o
botão direito no painel e depois clique em Add Row. Crie uma variável de
usuário chamada varMessagePrefix.
3. Clique duas vezes na célula Expression para abrir o Expression Editor.
Concatene a constante da sequência "Date is " com DSJobStartDate
DSMacro, seguida por uma barra entre espaços (" | ").
4. Abra cada estágio Job Activity. Para cada parâmetro PeekHeading, insira o
parâmetro varMessagePrefix na célula Value Expression.
5. Compile e execute.
Você deseja confirmar que sua variável de usuário seja incluída em cada item
de cabeçalho peek.
7. Feche o diálogo Job Status Detail, então clique com o botão direito em
seqJob1 e clique em View Log.
8. No log da tarefa, clique duas vezes no item Peek_0.0, conforme indicado.
Você agora vê que a variável de usuário "Date is: " prefixa os dados que vão
para a col1.
4. Editar o estágio Wait for File. Especifique que a tarefa deve esperar para
sempre até o arquivo #StartFile# aparecer no diretório DSEss_Files>Temp.
4. Compile e execute sua tarefa. Para testar se ela manipula as exceções, faça
uma atividade falhar. Por exemplo, configure o parâmetro RecCount3 para -10.
Então, vá para o log da tarefa e abra a mensagem Summary. Verifique se o
estágio Terminator foi executado.
Resultados:
Você construiu uma sequência de tarefas que execute três tarefas e explorou
como manipular exceções.
Resumo da unidade
• Usar o sequenciador de tarefas do DataStage para compilar uma
tarefa que controle uma sequência de tarefas
• Usar links e estágios do sequenciador para controlar a sequência
de execução de um conjunto de tarefas
• Usar acionadores e estágios do sequenciador para controlar as
condições de execução das tarefas
• Enviar informações em parâmetros da tarefa da tarefa controladora
principal para as tarefas controladas
• Definir variáveis de usuário
• Ativar reinicialização
• Manipular erros e exceções
Resumo da unidade