Ir para o conteúdo

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.

Nota

Este padrão de design usa Design Studio como um exemplo; você pode aplicar os mesmos conceitos em Cloud Studio usando etapas semelhantes.

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.

anexo

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.

    anexo

  • 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.).

    anexo

  • 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.