Como escrever procedimentos armazenados com SQL e Python¶
Você pode escrever um procedimento armazenado cujo manipulador é codificado em Python. Ao usar APIs da biblioteca Snowpark em seu manipulador, você pode realizar consultas, atualizações e outros trabalhos nas tabelas do Snowflake.
Com os procedimentos armazenados do, você pode construir e executar seu pipeline de dados dentro do Snowflake, usando um warehouse do Snowflake como estrutura computacional. Crie seu pipeline de dados usando a API Snowpark para Python para escrever procedimentos armazenados. Para programar a execução desses procedimentos armazenados, você usa tarefas.
Para obter informações sobre modelos de aprendizado de máquina e o Snowpark Python, consulte Treinamento dos modelos de machine learning com Snowpark Python.
Você pode escrever procedimentos armazenados para o Python usando uma planilha Python ou usando um ambiente de desenvolvimento local.
É possível capturar dados de registro e rastreamento à medida que o código do manipulador é executado. Para obter mais informações, consulte Registro, rastreamento e métricas.
Nota
Para criar e chamar um procedimento anônimo, use CALL (com procedimento anônimo). Criar e chamar um procedimento anônimo não exige uma função com privilégios de esquema CREATE PROCEDURE.
Pré-requisitos para escrever de procedimentos armazenados localmente¶
Para escrever procedimentos armazenados em Python em seu ambiente de desenvolvimento local, é preciso cumprir os seguintes pré-requisitos:
Você deve usar a versão 0.4.0 ou uma versão mais recente da biblioteca do Snowpark.
Habilite os pacotes do Anaconda para que o Snowpark Python possa carregar as dependências de terceiros necessárias. Consulte Como usar pacotes de terceiros do Anaconda.
As versões suportadas do Python são:
3.9
3,10
3,11
Configure seu ambiente de desenvolvimento para usar a biblioteca do Snowpark. Consulte Configuração do ambiente de desenvolvimento para o Snowpark.
Como usar pacotes de terceiros do Anaconda¶
Você pode especificar pacotes do Anaconda a serem instalados quando você cria procedimentos armazenados de Python. Para ver a lista de pacotes de terceiros do Anaconda, veja o canal Anaconda do Snowflake. Esses pacotes de terceiros são construídos e fornecidos pelo Anaconda. Você pode usar o canal Snowflake do Conda para testes e desenvolvimento local sem custo sob os Termos Suplementares de Software Incorporado dos Termos de Serviço do Anaconda.
Para limitações, consulte Limitações do procedimento armazenado do Python.
Introdução¶
Antes de começar a usar os pacotes fornecidos pelo Anaconda dentro do Snowflake, você deve reconhecer os Termos de ofertas externas.
Nota
É necessário usar a função ORGADMIN para aceitar os termos. Você só precisa aceitar os Termos de ofertas externas uma vez para sua conta Snowflake. Se você não tiver acesso à função ORGADMIN, consulte Ativação da função ORGADMIN em uma conta.
Faça login na Snowsight.
Selecione Admin » Billing & Terms.
Na seção Anaconda, selecione Enable.
Na caixa de diálogo Anaconda Packages, clique no link para rever a página Termos de ofertas externas.
Se você concordar com os termos, selecione Acknowledge & Continue.
Se você encontrar um erro ao tentar aceitar os Termos de ofertas externas, isso pode ser devido à falta de informações em seu perfil de usuário, como nome, sobrenome ou endereço de e-mail. Se você tiver privilégios de administrador, consulte Adição dos detalhes do usuário ao seu perfil de usuário para atualizar seu perfil usando Snowsight. Caso contrário, entre em contato com um administrador para atualizar sua conta.
Nota
Se você não reconhecer os Termos de Terceiros do Snowflake, como descrito acima, você ainda pode usar procedimentos armazenados, mas com estas limitações:
Você não pode usar pacotes de terceiros do Anaconda.
Você ainda pode especificar o Snowpark Python como um pacote em um procedimento armazenado, mas não pode especificar uma versão específica.
Você não pode usar o método
to_pandas
ao interagir com um objetoDataFrame
.
Exibição e utilização de pacotes¶
Você pode exibir todos os pacotes disponíveis e suas informações de versão consultando a exibição PACKAGES no Information Schema:
SELECT * FROM information_schema.packages WHERE LANGUAGE = 'python';
Para obter mais informações, consulte Como usar pacotes de terceiros na documentação da UDF do Snowflake Python.
Chamada do seu procedimento armazenado¶
Depois de criar um procedimento armazenado, você pode chamá-lo das seguintes maneiras: