Antes de começar
Este exercício usa duas origens: transações e catálogo de clientes. O resultado deve somar apenas transações aprovadas por região. Prepare um runtime com suporte a duas entradas e Join; streaming linear genérico não executa esse grafo. Ambos os arquivos precisam estar disponíveis por bindings autorizados.
Use as tabelas pequenas deste capítulo sem baixar pacotes antigos. Antes de desenhar, confira a unicidade de customer_id nos clientes: duplicatas podem multiplicar linhas e inflar o total.
Procedimento
- Crie TXT delimitado por
|comcustomer_id,amount,status. Em Flat File input configureformat=txt,delimiter=|,hasHeader=true. - Crie Excel com planilha Customers e cabeçalho
customer_id,region. Selecione essa planilha em Excel input, cabeçalho na linha 1 e dados a partir da linha 2. - Converta
customer_idparaintegerem ambos os ramos. Nas transações, convertaamountparanumbercomoutputField=amount_numbereonError=fail. - Limpe
regiondos clientes comtrimeupper. Filtre transações porstatus=APPROVEDcom Row filter. - Una os ramos com Join
inner: transações à esquerda e clientes à direita; chavescustomer_id,keyType=integer,nullsEqual=false. Selecione os identificadores reais dos componentes conectados. - Agrupe por
region:metric=sum,field=amount_number,outputField=total. Ordenetotaldecrescente e selecioneregion,totalantes do destino CSV.
Exemplo sintético
Transações:
customer_id|amount|status
1|10|APPROVED
1|5|APPROVED
2|7|APPROVED
2|99|REJECTED
Linhas da planilha Customers:
customer_id,region
1,NORTH
2,SOUTH
Resultado esperado:
region,total
NORTH,15.0
SOUTH,7.0
A representação textual do número pode variar com a formatação numérica; confira os totais numéricos 15 e 7 e a ordem configurada.
Conferir o resultado
Calcule o resultado de forma independente: ignore REJECTED e some 10+5 para NORTH e 7 para SOUTH. Espere duas linhas e exatamente duas colunas. Confirme que Join encontrou todos os identificadores aprovados sem expandir linhas por duplicatas. Salve e publique o Mapping aceito, configure ambos os bindings na Session e execute um Workflow de laboratório.
Group aggregate retorna apenas chaves de agrupamento e métrica; não preserva o detalhe de cada transação original.
Resolver problemas
Se faltarem regiões, confira tipos de chaves, dados sem correspondência e tipo de Join. Se os totais aumentarem, confira duplicatas no catálogo. Para regiões separadas por espaços ou maiúsculas, revise Clean text antes do agregado. Erro de streaming pode indicar incompatibilidade de topologia, não dados incorretos. Para valores reais, defina precisão, moeda e arredondamento separadamente; este exemplo não estabelece política contábil.