Algumas regras de processamento para o mecanismo Spark são diferentes das regras de processamento do Serviço de Integração de Dados.
Restrições gerais
A transformação Java é suportada com as seguintes restrições no mecanismo Spark:
O código Java na transformação não pode gravar a saída na saída padrão quando você envia a lógica de transformação para o Hadoop. O código Java pode gravar a saída no erro padrão que aparece nos arquivos de log.
Para valores de data/hora, o mecanismo Spark suporta a precisão de até microssegundos. Se um valor de data/hora contiver nanossegundos, os dígitos à direita serão truncados.
Particionamento
A transformação Java possui as seguintes restrições quando usada com particionamento:
A propriedade Particionável deve estar ativada na transformação Java. A transformação não pode ser executada em uma partição.
As seguintes restrições se aplicam à propriedade Escopo da Transformação:
O valor de Transação para o escopo da transformação não é válido.
Se você ativar uma porta de entrada para a chave de partição, o escopo da transformação deverá ser definido como Todas as Entradas.
Sem Estado deve ser ativado se o escopo da transformação for linha.
Validação de Mapeamento
A validação do mapeamento falha nas seguintes situações:
Você faz referência a uma transformação de Pesquisa não conectada de uma expressão dentro de uma transformação Java.
Você seleciona uma porta de um tipo de dados complex como a partição ou a chave de classificação.
Você ativa o processamento de nanossegundos em data/hora e a transformação Java contém uma porta de tipo de dados complex com um elemento de um tipo de data/hora. Por exemplo, uma porta de tipo
array<data/time>
não é válida se você ativar o processamento de nanossegundos em data/hora.
O mapeamento falha nas seguintes situações:
A transformação Java e o mapeamento usam diferentes modos de precisão quando a transformação Java contém uma porta decimal ou uma porta complexa com um elemento de um tipo de dados decimal.
Mesmo que a alta precisão esteja ativada no mapeamento, o mapeamento processa os dados no modo de baixa precisão em algumas situações, como quando o mapeamento contém uma porta complexa com um elemento de um tipo de dados decimal ou o mapeamento é um mapeamento de fluxo. Se a alta precisão estiver ativada na transformação Java e no mapeamento, mas o mapeamento processar dados no modo de baixa precisão, o mapeamento falhará.
Caracteres nulos binários são passados para uma porta de saída. Para evitar uma falha de mapeamento, você pode adicionar código à transformação Java que substitui os caracteres nulos binários por um caractere alternativo antes de gravar os dados nas portas de saída.
Usando arquivos .jar externos
Para usar arquivos .jar externos em uma transformação Java, execute as seguintes etapas:
Copie os arquivos .jar externos para o diretório de instalação do Informatica na máquina do Serviço de Integração de Dados no seguinte local:
<Diretório de instalação do Informatica>/services/shared/jars
Recicle o Serviço de Integração de Dados.
Na máquina que hospeda a Developer tool, onde você desenvolve e executa o mapeamento que contém a transformação Java:
Copie os arquivos .jar externos para um diretório na máquina local.
Edite a transformação Java para incluir uma instrução de importação apontando para os arquivos .jar locais.