Persistir Dados para Processamento Posterior Usando Armazenamento Temporário
Caso de Uso
Um padrão comum ao integrar dados é o uso de arquivos para armazenar temporariamente dados que são usados como parte do processo de transformação ou movimentação de dados da origem para o destino.
Exemplos
Arquivos Temporários
Um padrão típico é consultar uma fonte, salvar a saída em um arquivo temporário e ler a saída na próxima etapa.
No exemplo acima, uma consultar do Salesforce é executada periodicamente, gerando uma saída que é gravada em um destino chamado Trabalhos cancelados. Na segunda operação, uma fonte com o mesmo nome é lida como entrada em uma atualização do NetSuite.
Use Considerações Sobre Armazenamento Temporário
- O armazenamento temporário é gravado no diretório temporário do sistema operacional padrão no Agente que está executando o trabalho. No caso de um único Agente Privado, então é o diretório temporário padrão do host do servidor do Agente Privado. Se o Grupo de Agentes estiver executando mais de um Agente Privado, então é o diretório temporário no hospedar do servidor para qualquer Agente específico que esteja fazendo o trabalho. Se você estiver gravando em Armazenamento Temporário em Agentes em Nuvem (que estão em cluster), ele será gravado em qualquer hospedar de servidor específico do Agente de Nuvem.
- Por padrão, o armazenamento temporário é excluído após 24 horas por um serviço Jitterbit Clean-up
-
Construir uma fonte a partir de um destino é simples: primeiro, crie um destino e dê a ele um nome exclusivo. Em seguida, use a opção "Copiar para nova fonte" para criar a fonte usando o mesmo nome de arquivo (clique com o botão direito no nome do destino na árvore de itens do projeto no painel do lado esquerdo da tela e selecione "Copiar para nova fonte" em no menu suspenso.). O destino e as fontes são, na verdade, independentes, portanto, alterar unilateralmente um nome de arquivo em um destino não afeta uma fonte com o mesmo nome.
-
Em um ambiente de agente clusterizado (Private ou Agentes em Nuvem), desde que as operações que usam o armazenamento temporário estejam vinculadas (encadeadas), todas as leituras e gravações de arquivos temporários acontecerão no mesmo hospedar do servidor.
-
Para destinos, o padrão é sobrescrever o arquivo. Isso pode ser alterado com a opção "Anexar ao arquivo" (clique duas vezes no destino, clique em Opções e clique na caixa de seleção "Anexar ao arquivo"). Quando o arquivo é lido, ele precisa ser tratado de forma que uma operação posterior não continue a ser anexada ao arquivo. Quando o arquivo é lido como fonte, geralmente o arquivo é excluído ou arquivado. Uma maneira simples de fazer isso é escolher "Excluir arquivo" ou "Renomear arquivo" na fonte (clique duas vezes na fonte, clique em Opções e clique na caixa de seleção "Excluir arquivo" ou digite um nome em "Renomear arquivo" campo.).
-
Existem várias palavras-chave entre colchetes que podem ser usadas no nome do arquivo:
- data - insere AAAA-MM-DD
- data_hora - insere AAAA-MM-DD_HHMMSS
- tempo - insere HHMMSS
- ext - substitui a extensão do arquivo
- arquivo - substitui o nome do arquivo
- sequência - insere o número de sequência (1,2,3) do arquivo
- exclusivo - insere um GUID para criar um nome de arquivo exclusivo. Se for usado, a operação de 'leitura' terá que usar um tipo de fonte "Usar fonte da operação anterior" ou um curinga na fonte.
- É possível construir sua própria parte 'exclusiva' do nome do arquivo construindo um script de pré-operação que usa uma variável global atribuída a um guid: $unique_filename = Guid(). Em seguida, passe '[unique_filename]' para a origem e o destino.
- Um arquivo temporário pode ser lido no estúdio construindo um script com a função ReadFile(): ReadFile("\<TAG>Sources/test\</TAG>"). Em seguida, teste o script. Tenha em mente que isto só funciona de forma confiável se houver um único Agente Privado.
Arquivos Temporários Versus Variáveis globais Como Fontes e Destinos
Em vez de ler e gravar arquivos temporários em um agente, é possível usar uma variável global.
Vantagens de Usar Variáveis globais Como Fonte Ou Destino
- Mais fácil de escrever. Para gravar em um arquivo temporário em um script, são necessárias duas funções: WriteFile() e FlushFile(). O mesmo pode ser feito em um único script simplesmente atribuindo um valor a uma variável, como $foo="123","456","789".
- Mais fácil de usar em funções. Ter uma variável global que pode ser passada para outras funções, como WriteToOperationLog(), é muito conveniente. O mesmo pode ser feito com arquivos temporários, mas requer um ReadFile() para obter os dados.
- Sem limpeza. Por lidar com variáveis globais, quando a operação é concluída, com sucesso ou não, os dados não são persistidos. No caso de arquivos temporários, uma operação com falha pode deixar arquivos órfãos temporários que podem acumular-se rapidamente e exceder os limites de armazenamento.
Vantagens de Usar Arquivos Temporários Como Origem Ou Destino
- Mais fácil de depurar. Se estiver usando um Agente Privado, ter acesso ao arquivo real pode ser muito útil para depurar detalhes de integração
- Rico em funções. Existem muitos recursos úteis de palavras-chave integrados para nomes de arquivos Target. Os exemplos são data, data_hora, sequência, único. Também pode usar SCOPE_CHUNK para dividir arquivos temporários em partes.
- Muitas opções e mais controle. Tipo fim de linha, opções para escrever cabeçalhos, anexar ao arquivo, não criar arquivos vazios, codificação e compactação de caracteres.
- Dinâmico. As entradas de caminho e nome de arquivo podem ser preenchidas com uma variável global, permitindo assim que os valores sejam definidos com base nas escolhas de operação anteriores. Se construído corretamente, um único destino e origem podem ser reutilizados por múltiplas operações.