Ir para o conteúdo

Considerações sobre armazenamento temporário no Integration Studio

O Integration Studio oferece diversas soluções para usuários que precisam de armazenamento temporário em suas integrações. Esta página fornece considerações para escolher qual solução usar, um endpoint usando o conector de variável ou o conector de armazenamento temporário.

Endpoint variável

endpoints variáveis (Leitura e Atividades de escrita, não deve ser confundido com scripts variáveis globais) são fáceis de codificar e reduzem a complexidade, conforme descrito mais adiante nesta página. No entanto, eles têm certas limitações.

Para um cenário em que uma integração está trabalhando com pequenos conjuntos de dados — típicos de solicitações e respostas de serviços web ou pequenos arquivos de algumas centenas de registros — sugerimos usar um endpoint variável.

Quando o conjunto de dados está na faixa de megabytes, o endpoint variável se torna mais lento que o endpoint de armazenamento temporário equivalente. Isso começa a acontecer quando os dados ultrapassam 4 MB.

Quando o conjunto de dados está na faixa de vários megabytes, há risco de truncamento de dados. Recomendamos um limite de 50 MB para ser conservador e evitar qualquer risco de truncamento.

O uso de endpoints variáveis em operações assíncronas é um caso de uso que requer consideração especial. Há um limite de 7 KB para o tamanho de um conjunto de dados usado em um endpoint variável em uma operação assíncrona. Nesse cenário, exceder esse limite pode resultar em truncamento. Consulte RunOperation() função para uma descrição de chamada de uma operação assíncrona.

Os endpoints variáveis aumentam a reutilização e reduzem a complexidade

Usar um endpoint variável para conjuntos de dados pequenos pode aumentar a reutilização e reduzir a complexidade. Por exemplo, ao criar operações encadeadas com ações de operação, cada operação pode ter atividades que funcionam como fontes (Atividades de leitura) e metas (Escrever atividades). Em vez de criar combinações individuais de origem ou destino para cada operação, é fácil usar uma variável de destino e origem comum.

Para aumentar a reutilização e a padronização, você pode criar um script reutilizável que registre o conteúdo da variável. Essa abordagem também pode ser realizada usando armazenamento temporário, mas é necessário um script adicional para inicializar o caminho e o nome do arquivo.

Ao usar um endpoint de variável, seu escopo é a cadeia — a thread — de operações. Portanto, os valores de endpoint de variável são exclusivos de uma thread específica e são destruídos quando a thread é concluída. Este não é o caso com um endpoint de armazenamento temporário; como resultado, ele requer mais manipulação para garantir a exclusividade. A prática recomendada é inicializar um GUID no início de uma cadeia de operação e, em seguida, passar esse GUID para cada um dos nomes de arquivo de armazenamento temporário na cadeia, conforme descrito em Persistir dados para processamento posterior usando armazenamento temporário. (Embora esse documento seja para o Design Studio, os mesmos conceitos podem ser aplicados ao Integration Studio.)

Ao realizar testes unitários de operação, é útil carregar os dados de teste. Usar uma variável de origem ou destino simplifica isso: você adiciona um script de pré-operação para gravar os dados de teste em um destino:

  $memory = "a,b,c";

Em contraste, gravar dados em um endpoint de armazenamento temporário se parece com isto:

  WriteFile("<TAG>activity:tempstorage/Temporary Storage/tempstorage_write/Write</TAG>", "a,b,c");

  FlushFile("<TAG>activity:tempstorage/Temporary Storage/tempstorage_write/Write</TAG>");

Da mesma forma, a leitura de dados é mais simples com um endpoint variável:

  myLocalVar= $memory;

Em contraste, é assim que você lê dados de um endpoint de armazenamento temporário:

  myLocalVar = ReadFile("<TAG>activity:tempstorage/Temporary Storage/tempstorage_read/Read</TAG>");

Em resumo, usar endpoints variáveis para leitura, gravação e registro de entrada e saída de operação é simples, mas é preciso ter muito cuidado para garantir que os dados tenham o tamanho adequado.

Endpoint de armazenamento temporário

Conjuntos de dados maiores, como aqueles com contagens de registros na casa dos milhares, devem ser manipulados usando endpoints de armazenamento temporário.

Ao contrário dos endpoints variáveis, não há degradação de desempenho nem truncamento ao usar endpoints de armazenamento temporário, mesmo com conjuntos de dados muito grandes. No entanto, o uso de endpoints de armazenamento temporário pode exigir scripts adicionais. Ao usar endpoints de armazenamento temporário, você não poderá aproveitar a reutilização e a simplicidade dos endpoints variáveis, conforme descrito posteriormente nesta página.

Observe que agentes de nuvem têm um limite de tamanho de arquivo de endpoint de Armazenamento Temporário de 50 GB por arquivo. Aqueles que precisam criar arquivos temporários maiores que 50 GB precisarão de um agente privado.