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
nojitterbit.conf
arquivo para um agente privado. -
O streaming não foi explicitamente desabilitado ao definir a variável Jitterbit
jitterbit.transformation.auto_streaming
para0
oufalse
. -
Nenhuma função de resolução de instância é usada, como
FindByPos
,FindValue
, ouSum
. -
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:
- A aba Workflows do painel do projeto (consulte menu de ações do componente na aba Workflows do painel Projeto).
- A aba Componentes do painel do projeto (consulte menu de ações do componente na aba Componentes do painel Projeto).
- A quadro de design (veja menu de ações do componente em Tela de design).
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.