Ir para o conteúdo

Processamento de Transformação

Introdução

Harmony suporta estes métodos para processar uma transformação:

Uma transformação de streaming é o método preferencial a ser usado quando a quantidade de memória usada por uma transformação precisa ser limitada. Nos 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 da Web SOAP corresponde a uma origem/destino XML ao considerar as limitações de 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:

  • O uso de um esquema de origem plana como entrada pode retornar campos mapeados em branco
    • Resumo: Em certas circunstâncias, ao usar um esquema de origem plana, os campos de destino não são mapeados corretamente, o que os deixa 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 desabilita as transformações de streaming definindo $jitterbit.transformation.auto_streaming = false;.

Transmissão de Transformação

Uma transformação streaming carrega um registro por vez na memória, executa a transformação do registro e grava o destino 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 a 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:

  • A transmissão não foi explicitamente desativada pela configuração AutoStreaming=0 no jitterbit.conf arquivo para um Agente Privado.

  • A transmissão não foi explicitamente desativada 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á vários mapeamentos no alvo.

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

Nenhuma outra ação é necessária; streaming é usado automaticamente pela transformação quando é processado.

Exemplos

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

  • CSV para CSV
  • Mesa individual para mesa individual
  • 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 origens e destinos XML muito grandes, a 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.)

A fragmentação é configurada no nível da operação nas opções de operação, portanto, você pode usar a mesma transformação nos modos fragmentado e não fragmentado.

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 é iniciada, mas antes de mover qualquer arquivo, o Harmony verifica a lista do histórico de transferência de 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
  • Modificação de data
  • Identificação da operação

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