Persistir dados para processamento posterior usando armazenamento temporário no Jitterbit Design Studio
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 depois 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 Cancelled Jobs. Na segunda operação, uma fonte com o mesmo nome é lida como entrada em uma atualização do NetSuite.
Considerações sobre o uso de armazenamento temporário
- O Temporary Storage é 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 desse 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 no Temporary Storage em agentes de nuvem (que são agrupados), ele é gravado no hospedar do servidor do agente de nuvem específico.
- Por padrão, o armazenamento temporário é excluído após 24 horas por um serviço de limpeza Jitterbit
-
Construir uma fonte a partir de um alvo é simples: Primeiro, construa um alvo e dê a ele um nome exclusivo. Então 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 alvo na árvore Itens do Projeto no painel no lado esquerdo da tela e selecione "Copiar para Nova Fonte" no menu suspenso.). O alvo e as fontes são realmente independentes, então mudar unilateralmente um nome de arquivo em um alvo não afeta uma fonte com o mesmo nome.
-
Em um ambiente de agente em cluster (agentes privados ou 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 ocorrerão no mesmo hospedar do servidor.
-
Para alvos, o padrão é sobrescrever o arquivo. Isso pode ser alterado com a opção "Append to File" (Clique duas vezes no alvo, clique em Options e clique na caixa de seleção "Append to File"). Quando o arquivo é lido, ele precisa ser tratado de forma que uma operação posterior não continue a anexar ao arquivo. Quando o arquivo é lido como a fonte, geralmente o arquivo é excluído ou arquivado. Uma maneira simples de fazer isso é escolher "Delete File" ou "Rename File" na fonte (Clique duas vezes na fonte, clique em Options e clique na caixa de seleção "Delete File" ou digite um nome no campo "Rename File".).
-
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
- unique - insere um GUID para criar um nome de arquivo exclusivo. Se isso for usado, a operação de 'leitura' terá que usar um tipo de fonte de "Usar fonte da operação anterior" ou um curinga na fonte.
- É possível construir sua própria parte de nome de arquivo 'único' construindo um script de pré-operação que usa uma variável global atribuída a um guid: $unique_filename = Guid(). Então 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>"). Então teste o script. Tenha em mente que isso só funciona de forma confiável se houver um único agente privado.
Arquivos temporários vs variáveis globais como fontes e alvos
Em vez de ler e escrever em 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 escrever 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. Como lida 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 em temporários que podem rapidamente acumular e exceder os limites de armazenamento.
Vantagens de usar arquivos temporários como fonte 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. Há muitos recursos úteis de palavras-chave integradas para nomes de arquivo de destino. Exemplos são date, date_time, sequence, unique. Também é possível usar SCOPE_CHUNK para dividir arquivos temporários em pedaços.
- Muitas opções e mais controle. Tipo End of Line, opções para escrever cabeçalhos, anexar ao arquivo, não criar arquivos vazios, codificação de caracteres e compressão.
- 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 em escolhas de operação anteriores. Se construído corretamente, um único alvo e fonte podem ser reutilizados por múltiplas operações.