Limitações para Scala em procedimentos armazenados criados com SQL¶
Os procedimentos armazenados têm as seguintes limitações:
Não há suporte para simultaneidade. Por exemplo, de dentro de seu código, você não pode enviar consultas a partir de múltiplos threads. O código que emite simultaneamente múltiplas consultas produzirá um erro.
Se você estiver executando seu procedimento armazenado a partir de uma tarefa, você deve especificar um warehouse ao criar a tarefa. (Você não pode usar recursos de computação sem servidor para executar a tarefa.)
Considere as seguintes limitações para usar algumas APIs do Snowpark em seu procedimento armazenado.
Ao usar APIs para executar os comandos PUT e GET (incluindo
Session.sql("PUT ...")
eSession.sql("GET ...")
), você só pode gravar no diretório/tmp
no sistema de arquivos com suporte de memória fornecido para a consulta que chama o procedimento.Não use APIs que criem novas sessões (por exemplo,
Session.builder().configs(...).create()
).O uso de
session.jdbcConnection
(e da conexão retornada por ele) não é compatível porque pode resultar em comportamento inseguro.
A criação de objetos temporários nomeados não é suportada em um procedimento armazenado de direitos do proprietário. Um procedimento de armazenamento de direitos do proprietário é um procedimento armazenado que funciona com os privilégios do proprietário do procedimento armazenado. Para obter mais informações, consulte direitos do chamador ou direitos do proprietário.