Ir para o conteúdo

Processamento de Transformação

Introdução

O Harmony oferece suporte a estes métodos para processar uma transformação:

Uma transformação de streaming é o método preferido para usar quando a quantidade de memória usada por uma transformação precisa ser limitada. Em casos em que você não consegue usar uma transformação de streaming, o fragmentação de dados pode ser aplicável. Da perspectiva de uma transformação, uma resposta/solicitação de serviço web SOAP corresponde a uma fonte/destino XML ao considerar limitações no processamento.

Esta página também aborda como o Harmony lida com o processamento de arquivos que já foram processados.

Problema Conhecido

Esse problema é conhecido por ocorrer com transformações:

  • Usar um esquema de origem simples como entrada pode retornar campos mapeados em branco
    • Resumo: Em certas circunstâncias, ao usar um esquema de origem simples, os campos de destino não são mapeados corretamente, o que faz com que fiquem em branco.
    • Informações adicionais: Isso não ocorre com esquemas espelhados ou esquemas JSON.
    • Solução alternativa: Adicione um script no início da operação que desabilite as transformações de streaming definindo $jitterbit.transformation.auto_streaming = false;.

Transformação de Streaming

Uma transformação streaming carrega um registro por vez na memória, realiza a transformação do registro e grava o alvo no disco. Isso minimiza a quantidade de memória usada durante a transformação para o que é necessário para transformar aquele registro.

O streaming é aplicado automaticamente às transformações em que a origem e o destino são estruturas planas (por exemplo, uma única tabela de banco de dados ou um único arquivo CSV) e estes requisitos são atendidos:

  • O streaming não foi explicitamente desabilitado pela configuração AutoStreaming=0 no jitterbit.conf arquivo para um agente privado.

  • O streaming não foi explicitamente desabilitado ao definir a variável Jitterbit jitterbit.transformation.auto_streaming para 0 ou false.

  • Nenhuma função de resolução de instância é usada, como FindByPos, FindValue, ou Sum.

  • Estas funções de dicionário e array não estão presentes: GetSourceInstanceMap, GetSourceAttrNames, GetSourceElementNames, GetSourceInstanceElementMap, GetSourceInstanceArray, GetSourceInstanceElementArray.

  • A função XML GetXMLString não está presente.

  • Não há múltiplos mapeamentos no alvo.

  • A transformação não tem uma condição definido no alvo.

Nenhuma outra ação é necessária; o streaming será usado automaticamente pela transformação quando ela for processada.

Examples" "Exemplo "Exemplos"

As Transformações que usam streaming automaticamente incluem estas estruturas de dados:

  • CSV para CSV
  • Mesa única para mesa única
  • Tabela única para CSV
  • CSV para tabela única

Fragmentação

Em uma situação em que uma transformação de streaming não é aplicável ou possível, você pode usar chunking para fazer a transformação exigir menos memória. Para fontes e destinos XML muito grandes, o fragmentação de dados pode ser a única opção. (Se o uso de memória não for um problema, uma transformação de streaming é sempre a escolha preferida.)

O chunking é configurado no nível da operação nas opções de operação, para que você possa usar a mesma transformação tanto no modo chunking quanto no modo não chunking.

A opção Configurações para operações pode ser acessada nestes locais:

Quando a tela de configurações da operação estiver aberta, selecione a aba Opções.

Use o maior tamanho de bloco possível, certificando-se de que os dados de um bloco caibam na memória disponível.

Para obter instruções e práticas recomendadas sobre o uso de fragmentação de dados, consulte Opções de operação.

Repetindo Transferências de Arquivos

O Harmony garante que os arquivos de texto sejam transferidos apenas uma vez. Quando uma operação começa, mas antes de mover qualquer arquivo, o Harmony verifica a lista do histórico de transferências dos arquivos de origem para ver se as mesmas informações de origem já foram usadas. Três critérios são usados para garantir transferências de arquivos exclusivas:

  • Nome do arquivo
  • Data de modificação
  • ID da operação

Se todos esses critérios para qualquer arquivo de texto de origem forem os mesmos, o sistema assumirá que o arquivo foi processado e pulará a transferência desse arquivo específico.