Criação de manipuladores que ficam dentro das restrições impostas pelo Snowflake

Para garantir a estabilidade dentro do ambiente do Snowflake, o Snowflake impõe as seguintes restrições no código do manipulador. A menos que o contrário seja indicado, essas limitações são aplicadas quando o manipulador é executado, não quando ele é criado.

Neste tópico:

Como evitar consumir muita memória

Evite o seguinte para não consumir grandes quantidades de memória:

  • Grandes valores de dados. Isso pode incluir valores binários, assim como grandes matrizes, objetos ou variantes.

    Snowflake converte entre os tipos de dados SQL e tipos correspondentes na linguagem do manipulador. Para obter mais informações, consulte Mapeamentos de tipos de dados entre linguagens do manipulador e SQL.

  • Profundidade excessiva da pilha. O Snowflake testou chamadas de funções simples com aninhamento de 50 níveis de profundidade sem erros. O limite máximo prático depende de quanta informação é colocada na pilha.

O código do manipulador retornará um erro se ele consumir muita memória. O limite específico está sujeito a mudanças.

Como evitar algoritmos que demoram muito tempo por chamada

Se um manipulador levar tempo demais para ser concluído, o Snowflake interrompe a instrução SQL e retorna um erro ao usuário. Isso limita o impacto e o custo de erros como loops infinitos.

Não usar bibliotecas que possam introduzir vulnerabilidades de segurança

Embora seu manipulador possa utilizar funcionalidades em bibliotecas externas, as restrições de segurança do Snowflake desabilitam alguns recursos, tais como escrever em arquivos. Para obter mais detalhes sobre restrições de bibliotecas, consulte Práticas de segurança para UDFs e procedimentos.