Gerenciamento de estágios Snowflake¶
Os comandos snow stage permitem que você execute tarefas adicionais específicas do estágio:
Criação de um estágio nomeado¶
O comando snow stage create cria um estágio nomeado se ele ainda não existir.
Por exemplo, para criar um estágio chamado new_stage, digite o seguinte comando:
O exemplo a seguir mostra o que acontece se você tentar criar um estágio, packages, que já existe.
Se quiser especificar o tipo de criptografia a ser usado para todos os arquivos armazenados no estágio, adicione a opção --encryption para especificar se deseja a criptografia completa (SNOWFLAKE_FULL) ou somente a criptografia do lado do servidor (SNOWFLAKE_SSE).
Cópia de arquivos de e para um estágio¶
O comando snow stage copy copia um arquivo da máquina local para um estágio, de um estágio para uma máquina local ou entre estágios nomeados.
Observe as seguintes diretrizes:
O caminho do estágio deve começar com
@, conforme mostrado nos exemplos a seguir.Quando você copia um único arquivo,
<destination_path>deve identificar um diretório, não um arquivo. Se o diretório especificado não existir, o comando o criará.Por padrão, quando você copia um diretório local para um estágio, o diretório local deve conter apenas arquivos. Você pode usar a opção
--recursivepara carregar subdiretórios no diretório local. Você pode usar padrões glob com a opção--recursive.Quando você copia um diretório de um estágio para um sistema de arquivos local, o comando atualmente simplifica sua estrutura de árvore interna. Para ilustrar, suponha que seu diretório local contenha o seguinte:
Após copiar o diretório do estágio, o diretório do sistema de arquivos local terá o seguinte:
Nota
Se você quiser manter a estrutura do arquivo do diretório de origem, você pode incluir a opção
--recursive.
Como copiar arquivos para um estágio¶
Para copiar arquivos da máquina local para um estágio, insira um comando semelhante ao seguinte:
Você pode usar o comando snow stage list-files para verificar se o comando copiou os arquivos com sucesso:
Cópia de arquivos de um estágio¶
Para copiar arquivos de um estágio para um diretório na máquina local, digite um comando semelhante ao seguinte:
Você pode listar o conteúdo do diretório para verificar se o comando copiou os arquivos corretamente:
Observe que o diretório local deve existir.
É possível copiar de um estágio de usuário (@~):
Cópia de arquivos entre estágios¶
Você pode copiar arquivos diretamente entre dois estágios nomeados sem baixá-los primeiro para sua máquina local. Isto pode ser útil para organizar arquivos em diferentes estágios ou criar backups.
Para copiar arquivos de um estágio para outro, use a seguinte sintaxe:
O exemplo a seguir copia todos os arquivos de production_stage para backup_stage:
Nota
Ao copiar entre estágios, o destino não pode ser um estágio de usuário (@~). Você deve especificar estágios nomeados para a origem e para o destino.
Use padrões glob para especificar arquivos¶
Você pode especificar vários arquivos que correspondem a uma expressão regular usando um padrão glob para o argumento source_path. Você deve colocar o padrão glob entre aspas simples ou duplas.
O exemplo a seguir copia todos os arquivos .txt em um diretório para um estágio.
Listagem do conteúdo de um estágio¶
O comando snow stage list-files lista o conteúdo do estágio.
Por exemplo, para listar os pacotes em um estágio, digite o seguinte comando:
Execução de arquivos de um estágio¶
Nota
Snowflake CLI não oferece suporte à execução de arquivos Python para as versões 3.12 e superiores do Python.
O comando snow stage execute executa arquivos SQL ou Python de um estágio.
Para arquivos
.sql, ele executa um comando EXECUTE IMMEDIATE FROM em arquivos.sqlde um estágio.Para arquivos
.py, ele executa um procedimento Snowpark Python com escopo de sessão.Snowflake CLI executa o procedimento no Snowflake para garantir um ambiente de execução consistente. Se seus scripts Python exigirem requisitos adicionais, é necessário especificá-los em um arquivo
requirements.txtque resida no mesmo diretório dos arquivos no estágio. O comandosnow stage executeoferece suporte apenas a pacotes do canal Snowflake Anaconda.Por padrão, o comando procura o arquivo
requirements.txtna seguinte precedência:Caminho do estágio especificado no parâmetro
stage_pathdo comando.Diretórios pai da hierarquia de caminho do estágio especificado, até atingir o estágio.
Se você não especificar um arquivo
requirements.txt, o comando assumirá que nenhum pacote adicional é necessário.
Por exemplo, se você executar
snow stage execute @my_stage/ml/app1/scripts, o comando procurará o arquivo da seguinte forma:my_stage/ml/app1/scripts/requirements.txtmy_stage/ml/app1/requirements.txtmy_stage/ml/requirements.txtmy_stage/ml/requirements.txt
Os exemplos a seguir ilustram maneiras de executar diferentes conjuntos de arquivos .sql de um estágio:
Especifique apenas um nome de estágio para executar todos os arquivos
.sqlno estágio:Especifique um estágio de usuário (
@~) para executar os arquivosscript.sqlno estágio de usuário:
Use padrões glob para selecionar subconjuntos de arquivos¶
Especifique um padrão semelhante a um glob para executar todos os arquivos
.sqlno diretóriodir:Especifique um padrão semelhante a um glob para executar somente arquivos
.sqlno diretóriodirque começa com «script», seguido por um caractere:Especifique um caminho de arquivo direto com a opção
--silent:
Remoção de um arquivo de um estágio¶
O comando snow stage remove remove um arquivo de um estágio.
Por exemplo, para remover um arquivo de um estágio, digite um comando semelhante ao seguinte: