Notas de lançamento de Snowflake CLI para 2024

Este artigo contém as notas de versão do Snowflake CLI, incluindo o seguinte, quando aplicável:

  • Mudanças de comportamento

  • Novos recursos

  • Correções de bugs voltados para o cliente

Consulte Snowflake CLI para ver a documentação.

Versão 3.1.0 (25 de outubro de 2024)

Preterições

  • Adição de um aviso de descontinuação aos comandos snow spcs service status e snow spcs image-repository list-tags. Esses comandos serão removidos em um lançamento futuro.

Novos recursos e atualizações

  • Adição dos seguintes comandos:

    • O comando snow connection generate-jwt para gerar token JWT para conexões Snowflake.

    • snow spcs service list-containers para buscar informações sobre contêineres em um serviço.

    • snow spcs service list-instances para buscar informações sobre instâncias em um serviço.

    • snow spcs service list-roles para buscar informações sobre funções em um serviço.

  • Adição da opção --eai-name ao comando snow spcs set para oferecer suporte à atualização de integrações de acesso externo para um serviço.

  • O comando snow spcs image-repository list-images foi atualizado para exibir tags e resumos de imagens.

Correções de bugs

  • Correção de um bug que fazia com que os diretórios deploy_root, bundle_root e generated_root fossem criados no diretório de trabalho atual em vez da raiz do projeto ao invocar comandos com o sinalizador --project de um diretório diferente.

  • Variáveis ​​alinhadas para os comandos snow stage e snow git execute. Para arquivos Python, as variáveis ​​não têm aspas iniciais nem finais.

  • Correção de um problema com snow stage list-files para caminhos com diretórios.

Versão 3.0.2 (15 de outubro de 2024)

Novos recursos e atualizações

Correções de bugs

  • Correção do tratamento de valores padrão vazios para cadeias de caracteres por snow snowpark deploy.

  • Adição de detalhes de erro de log se o comando pip falhar.

Versão 3.0.1 (8 de outubro de 2024)

Novos recursos e atualizações

  • Migração do repositório PyPi snowflake-cli-labs para snowflake-cli.

    Para instalar ou atualizar a Snowflake CLI, você pode executar um comando semelhante ao seguinte:

    pip install --upgrade snowflake-cli
    
    Copy

    Nota

    Snowflake CLI continuará oferecendo suporte ao uso do nome do repositório snowflake-cli-labs para lhe dar tempo de fazer a transição de scripts e aplicativos existentes que você possa usar.

Correções de bugs

  • Nenhum.

Versão 2.8.2 (8 de outubro de 2024)

Novos recursos e atualizações

  • Migração do repositório PyPi snowflake-cli-labs para snowflake-cli.

    Para instalar ou atualizar a Snowflake CLI, você pode executar um comando semelhante ao seguinte:

    pip install --upgrade snowflake-cli
    
    Copy

    Nota

    Snowflake CLI continuará oferecendo suporte ao uso do nome do repositório snowflake-cli-labs para lhe dar tempo de fazer a transição de scripts e aplicativos existentes que você possa usar.

Correções de bugs

  • Nenhum.

Versão 3.0.0 (1º de outubro de 2024)

Mudanças de BCR (versão da mudança de comportamento)

A partir da versão 3.0.0, Snowflake CLI introduziu as seguintes alterações significativas:

  • Implementação das seguintes alterações no Python:

    • Remoção do suporte para versões do Python anteriores à 3.10.

    • Definição da versão padrão do Python para funções e procedimentos do Snowpark como a 3.10.

  • Substituição dos comandos snow object stage pelos comandos snow stage.

  • Substituição dos comandos snow snowpark init e snow streamlit init pelo comando snow init command.

  • Remoção das opções anteriormente obsoletas dos comandos snow snowpark.

  • Modificação do comportamento dos seguintes comandos Snowpark:

    • snow snowpark build cria um arquivo .zip para cada artefato especificado que seja um diretório. Dependências não Anaconda são empacotadas uma vez como dependencies.zip.

    • snow snowpark deploy carrega todos os artefatos criados durante a etapa de construção. O arquivo dependencies.zip é carregado uma vez para cada estágio Snowpark especificado na definição do projeto.

    • Os comandos snow snowpark package não recorrem mais aos metadados do canal Anaconda quando a busca de informações de pacotes disponíveis falha.

      Nota

      Essas alterações são compatíveis com os arquivos de definição de projeto V1, embora o layout do arquivo resultante seja diferente.

Novos recursos e atualizações

  • Adição dos seguintes comandos:

    • snow spcs service execute-job para oferecer suporte à criação e execução de um serviço de trabalho no esquema atual.

    • snow app events para buscar logs e rastreamentos de instalações do Snowflake Native App locais e de cliente.

    • snow helpers v1-to-v2 para migrar arquivos snowflake.yml da versão 1.x para a versão 2.

  • Adição de suporte para o seguinte:

    • Acesso externo (integrações de API e segredos) no Streamlit

    • Sintaxe <% … %> em modelos SQL

    • Vários aplicativos Streamlit em um único arquivo de definição de projeto snowflake.yml

  • Atualização do arquivo de definição do projeto para a versão 2.

Correções de bugs

  • Correção de um problema com espaços em branco no comando snow connection add.

  • Correção de um erro SQL que ocorria ao executar os comandos snow app version create ou snow app version drop com um nome de versão que não é um identificador válido do Snowflake sem aspas.

  • Adição de uma verificação da exatidão de um arquivo de token e caminhos de chave privada ao adicionar uma conexão.

  • Correção de um erro de digitação na descrição do argumento de spcs service name. É o identificador do service em vez do service pool.

  • Correção de um problema com o tratamento de erro e melhoria das mensagens quando nenhum artefato é fornecido.

  • Mensagens de erro aprimoradas para parâmetros incompatíveis.

Versão 2.8.1 (10 de setembro de 2024)

Novos recursos e atualizações

  • Nenhum.

Correções de bugs

  • Correção de um problema em que o comando :codenowrap:` git execute` não manipulava corretamente letras maiúsculas em nomes de diretório.

  • Correção de um problema em que snow git setup não manipulava corretamente nomes de repositório totalmente qualificados.

  • Correção do comportamento do comando snow git setup em casos em que a integração de API ou um segredo com um nome padrão já existia.

  • Correção de um problema em que o comando snow snowpark package create criava arquivos zip vazios quando o nome do pacote continha letras maiúsculas.

Versão 2.8.0 (28 de agosto de 2024)

Preterições

  • Adição de um aviso de descontinuação para a propriedade native_app.package.scripts nos arquivos de definição do projeto.

Novos recursos e atualizações

  • Adição de suporte para padrões de arquivo de definição de projeto em modelos.

  • Adição de suporte a scripts native_app.package.post_deploy em arquivos de definição de projeto.

    • Esses scripts são executados quando um pacote Snowflake Native App é criado ou atualizado.

    • Atualmente, Snowflake REST APIs oferece suporte apenas a scripts SQL: post_deploy: [{sql_script: script.sql}].

Correções de bugs

  • Correção de um problema com valores de retorno inválidos para os comandos snow snowpark list, snow snowpark describe e snow snowpark drop.

  • O comando snow app run agora mostra o aviso retornado por Snowflake.

Versão 2.7.0 (2 de agosto de 2024)

Preterições

  • Os comandos snow snowpark init e snow streamlit init estão marcados como obsoletos. Os comandos ainda funcionam, mas você deve usar o novo comando snow init no lugar.

Novos recursos e atualizações

  • Adição da opção --token-file-path ao comando snow connection add para oferecer suporte à passagem de um token OAuth usando um arquivo. A função também é compatível com a configuração do parâmetro token_file_path para definições de conexão no arquivo config.toml.

  • Adição de suporte para execução remoto do Python com snow stage execute e snow git execute semelhante ao suporte a EXECUTE IMMEDIATE existente.

  • Adição de suporte para funcionalidade de preenchimento automático na opção snow connection add --connection.

  • Adição do comando snow init para oferecer suporte à inicialização de projetos com modelos externos.

  • Adição de suporte a estágios de usuário nos comandos stage execute e stage execute copy.

  • Suporte aprimorado para identificadores entre aspas em comandos do Snowpark.

  • O comando snow app run agora permite a atualização para um modo não versionado a partir de uma instalação de aplicativo em modo versionado ou de lançamento.

  • O comando snow app teardown agora permite remover um pacote com versões quando o sinalizador --force é fornecido.

  • O comando snow app version create agora permite operar em pacotes de aplicativo criados fora da Snowflake CLI.

  • Atualização do script application.post_deploy para usar o banco de dados do aplicativo como padrão.

  • Snowflake CLI agora oferece suporte a hosts sem região ao gerar URLs do Snowsight.

  • Os comandos snow app run e snow app deploy agora determinam corretamente o status modificado para arquivos grandes enviados ao S3.

Correções de bugs

  • Trate os valores md5 NULL corretamente quando retornados por backends de armazenamento de estágio.

Versão 2.6.1 (15 de julho de 2024)

Novos recursos e atualizações

  • Nenhum.

Correções de bugs

  • Foi esclarecida a mensagem de erro retornada ao executar snow object create se um banco de dados não estiver definido para conexão.

  • Correção de um problema que fazia Snowflake CLI travar quando save_logs é false e o diretório de log não existia.

Versão 2.6.0 (11 de julho de 2024)

Novos recursos e atualizações

  • Adição do comando snow object create.

  • Adição de suporte para um campo title na definição do Streamlit no arquivo de projeto snowflake.yml.

  • Adição do sinalizador --auto-compress ao comando snow stage copy para habilitar arquivos de compressão gzip durante o upload.

  • Adição de uma nova seção native_app.application.post_deploy ao esquema snowflake.yml para executar ações após o aplicativo ter sido implementado via snow app run.

    • Adição do tipo de gancho sql_script para executar scripts SQL com suporte a modelos.

  • Adição de suporte para argumentos de linha de comando --env para modelagem.

    • Disponível para comandos que usam o arquivo de definição de projeto.

    • Formato do argumento: --env key1=value1 --env key2=value2.

    • Substitui os valores de variáveis ​​de ambiente quando usados ​​na modelagem.

    • Pode ser referenciado em modelos por meio de ctx.env.<key_name>.

    • O modelo lê as variáveis ​​de ambiente na seguinte ordem de prioridade (da maior para a menor prioridade):

      • Variáveis ​​do argumento da linha de comando --env.

      • Variáveis ​​de variáveis ​​de ambiente do shell.

      • Variáveis ​​da seção env do arquivo de definição do projeto.

  • O comando snow sql agora mostra o texto da consulta antes de executá-la.

Correções de bugs

  • Passar um diretório para snow app deploy agora implementa qualquer arquivo ou subpasta contido especificado nas regras de artefato do aplicativo.

  • Erros de escape de marcação corrigidos em snow sql que podiam ocorrer quando os usuários usavam involuntariamente tags de escape semelhantes a marcação.

  • Correção de casos em que snow app teardown não conseguia derrubar aplicativos órfãos (aqueles cujos pacotes foram descartados).

  • Correção de casos em que snow app teardown poderia deixar aplicativos órfãos se eles não fossem criados por Snowflake CLI.

  • Correção de casos em que snow app run poderia falhar ao executar um aplicativo existente cujo pacote tenha sido removido, solicitando o descarte e a recriação do aplicativo.

  • Melhoria na higienização da saída do terminal para evitar códigos de escape ASCII.

  • Melhoria na saída de diferença de estágio em snow app

  • Ocultação das diferenças redundantes da saída de snow app validate.

  • Adição de informações de log ao arquivo com plugins externos carregados.

  • Avisos adicionados caso os usuários tentem usar modelos com a versão 1 da definição de projeto.

  • Melhoria da saída e do formato dos erros de validação do Pydantic.

  • Suporte aprimorado para identificadores entre aspas em comandos do Streamlit.

  • O comando snow app run não substitui mais o modo de depuração durante uma atualização de aplicativo, a menos que seja explicitamente definido em snowflake.yml.

Versão 2.5.0 (20 de junho de 2024)

Novos recursos e atualizações

  • Adição dos seguintes recursos Snowflake Native App:

    • Adição do comando snow app bundle que prepara uma pasta local no diretório do projeto com artefatos para carregar em um estágio como parte da criação de um Snowflake Native App.

      Os projetos Snowflake Native App podem, opcionalmente, gerar declarações CREATE FUNCTION e CREATE PROCEDURE em scripts de configuração do código Snowpark Python que inclui decoradores (como @sproc e @udf).

    • Adição do comando snow app validate que valida o SQL no script de configuração de um Snowflake Native App para sintaxe válida, referências de objeto inválidas e práticas recomendadas.

      • Adição do novo campo native_app.scratch_stage ao esquema snowflake.yml para permitir a personalização do estágio que Snowflake CLI usa para executar a validação.

    • Alteração dos comandos snow app deploy e snow app run para acionar a validação automática do script de configuração SQL e interromper os uploads se a validação falhar. Os usuários podem substituir essa verificação habilitando o parâmetro --no-validate para os respectivos comandos.

    • O comando snow app version create --patch foi alterado para exigir um número de patch inteiro, alinhando-se com o que o Snowflake espera.

  • Adição dos seguintes comandos para oferecer suporte a notebooks:

    • snow notebook execute permite a execução headless de um notebook Snowflake.

    • snow notebook create cria um notebook Snowflake a partir de um arquivo em um estágio.

  • Adição de suporte de modelagem para arquivos de definição de projeto. Variáveis ​​de modelo agora podem ser usadas em qualquer lugar em um arquivo de definição de projeto.

  • Adição do parâmetro --default ao comando snow connection add para permitir que os usuários especifiquem uma conexão como padrão.

Correções de bugs

  • Correção do tratamento de erro para arquivos config.toml formatados incorretamente.

  • Correção do empacotamento ZIP de dependências de projeto Snowpark com pacotes de namespace implícitos como snowflake.

  • A implementação de funções ou procedimentos com o parâmetro --replace agora copia todas as concessões.

  • Correção do cache de MFA

  • Correção dos problemas com DeprerationWarning e SyntaxWarning causados por sequências de escape inválidas.

  • Mensagens de erro aprimoradas no snow spcs image-registry login quando o Docker não está instalado.

  • Detecção aprimorada de conflitos entre regras de artefatos para projetos Snowflake Native App

  • Geração de URL fixa para aplicativos, streamlits e notebooks que usam um identificador entre aspas com espaços.

Versão 2.4.1 (12 de junho de 2024)

Novos recursos e atualizações

  • Nenhum.

Correções de bugs

  • Correção de problemas relacionados ao cache de MFA e implementações de GCP.

Versão 2.4.0 (31 de maio de 2024)

Novos recursos e atualizações

  • Adicionada a opção --cascade para o comando snow app teardown que remove automaticamente todos os objetos de aplicativo pertencentes a um aplicativo.

  • Adicionada integração de acesso externo para comandos snow object.

  • Adicionados aliases para comandos snow object list, describe e drop para o seguinte:

    • snow stage para estágios

    • snow git para estágios do repositório git

    • snow streamlit para aplicativos Streamlit

    • snow snowpark para procedimentos e funções do Snowpark Python

    • snow spcs compute-pool para pools de computação

    • snow spcs image-repository para repositórios de imagens

    • snow spcs service para serviços

  • Adicionou o seguinte suporte ao comando snow sql:

    • Funciona com o arquivo snowflake.yml. As variáveis definidas na nova seção env do snowflake.yml podem ser usadas para expandir modelos.

    • Permite executar consultas de vários arquivos especificando várias opções -f/--file.

  • Adicionado suporte para passagem de variáveis de entrada para os comandos snow git execute e snow stage execute.

  • Adicionados os seguintes comandos snow cortex para oferecer suporte a AI e ML Snowflake:

    • complete: gera uma resposta a uma pergunta usando o modelo de linguagem de sua escolha.

    • extract-answer: extrai uma resposta a uma determinada pergunta de um documento de texto.

    • sentiment: retorna uma pontuação de sentimento para o texto de entrada em inglês fornecido.

    • summarize: resume o texto de entrada fornecido no idioma inglês.

    • translate: traduz texto do idioma de origem indicado ou detectado para um idioma de destino.

  • Adicionada a função de conclusão de tabulação para comandos snow.

  • Adicionadas as seguintes melhorias:

    • Executando o comando snow sem argumentos ou opções agora exibe automaticamente a ajuda da linha de comando (como em snow --help).

    • Suporte aprimorado para identificadores entre aspas.

Correções de bugs

  • Corrigido um problema com a criação de patches com snow app version create quando uma versão tinha duas ou mais existentes.

  • Adicionada uma nova linha final ao usar --format=json para evitar que % seja adicionado por alguns terminais para sinalizar nenhuma quebra de linha no final da saída.

  • Habilitou a opção --interactive por padrão em ambientes interativos e adicionou a opção --no-interactive para desabilitar o prompt.

Versão 2.3.1 (20 de maio de 2024)

Novos recursos e atualizações

  • Nenhum.

Correções de bugs

  • Corrigidos bugs na lógica de mapeamento de artefatos de origem para Snowflake Native Apps.

Versão 2.3.0 (15 de maio de 2024)

Novos recursos e atualizações

  • Adicionada a opção --info para o snow command para exibir os sinalizadores de recursos configurados.

  • Adicionada a opção -D/--variable para o comando snow sql para oferecer suporte a substituições de variáveis na entrada de SQL (modelagem de consulta do lado do cliente).

  • Adicionado suporte para nomes de estágio totalmente qualificados nos comandos snow stage e snow git execute.

  • Adicionada a capacidade de especificar arquivos e diretórios como argumentos para o comando snow app deploy <some-file> <some-dir>.

  • Adicionadas novas opções ao comando snow app deploy:

    • --recursive para sincronizar todos os arquivos e subdiretórios recursivamente.

    • --prune para excluir arquivos especificados do estágio se eles não existirem localmente.

  • Otimizada a pesquisa de dependência do Snowpark para reduzir o tamanho de artefatos .zip e o número de dependências do Anaconda para projetos do Snowpark.

  • Mensagens de erro melhoradas para um arquivo corrompido config.toml.

Correções de bugs

  • Corrigiu um problema com os comandos snow app que fazem com que os arquivos sejam reenviados desnecessariamente.

  • Corrigido um problema em que o comando snow app run não atualiza um aplicativo quando o estado local e o estágio remoto são idênticos.

  • Corrigido um problema com o manuseio dos separadores de padrões de estágio no Windows.

Versão 2.2.0 (25 de abril de 2024)

Recursos obsoletos

Nota

Os seguintes recursos estão obsoletos nesta versão e serão removidos quando o Snowflake lançar o Snowflake CLI 3.0.0. Considere atualizar quaisquer scripts existentes que usem esses recursos obsoletos.

  • O comando snow snowpark package lookup não realiza mais uma verificação em relação a PyPi. O uso de --pypi-download ou --yes não tem efeito e causa um aviso. O comando agora verifica apenas se um pacote está disponível no canal Snowflake Anaconda.

  • snow snowpark package create changes:

    • As opções --pypi-download ou --yes estão obsoletas, não têm efeito e geram um aviso. O comando agora sempre verifica PyPi.

    • A opção --allow-native-libraries está obsoleta em favor da opção de booleano --allow-shared-libraries. Usar a opção obsoleta gera um aviso.

  • snow snowpark build changes:

    • A opção --pypi-download está obsoleta, não tem efeito e gera um aviso. O comando agora sempre verifica PyPi.

    • A opção --check-anaconda-for-pypi-depts está obsoleta e gera um aviso. Use a opção --ignore-anaconda em vez disso.

    • A opção --package-native-libraries está obsoleta e gera um aviso. Use a opção --allow-shared-libraries em vez disso.

  • Os comandos snow object stage estão obsoletos e causam um aviso. Esses comandos serão substituídos pelos comando snow stage. Considere migrar quaisquer scripts existentes que usem os comandos snow object stage.

Novos recursos e atualizações

  • Adicionado suporte para nomes totalmente qualificados (database.schema.name) no parâmetro name da definição do projeto Streamlit.

  • Adicionado suporte para nomes de repositórios de imagens totalmente qualificados nos comandos spcs image-repository.

  • Adicionada a opção --if-not-exists option para os comandos snow spcs service create e snow spcs compute-pool create.

  • Adicionadas as opções --replace e --if-not-exists para o comando snow spcs image-repository create.

  • Adicionado suporte para o Snowflake Connector para relatórios de diagnóstico do Python.

  • Adicionado o comando snow app deploy que cria um pacote de aplicativo e sincroniza as alterações locais no estágio sem criar ou atualizar o aplicativo.

  • Adicionada a coluna is_default para a saída snow connection list para destacar a conexão padrão.

  • Atualizado o comando snow snowpark package create:

    • Adicionada a opção --ignore-anaconda para desabilitar a pesquisa de pacotes no canal Snowflake Anaconda, para que as dependências sejam baixadas de PyPi.

    • Adicionada a opção --skip-version-check para pular a comparação de versões de dependências entre requisitos e Anaconda.

    • Adicionada a opção --index-url para configurar o URL básico do Python Package Index a ser usado para pesquisa de pacotes.

  • Atualizado o comando snow snowpark build:

    • Adicionada a opção --skip-version-check para pular a comparação de versões de dependências entre requisitos e Anaconda.

    • Adicionada a opção --index-url configurada como URL básico do Python Package Index a ser usado para pesquisa de pacotes.

  • Adicionada a opção --recursive para o comando snow stage copy para reproduzir a estrutura de diretório localmente ao copiar de um estágio.

  • Adicionados os seguintes comandos snow git para oferecer suporte aos repositórios Git no Snowflake:

    • snow git setup: configura um estágio de repositório Git e cria todos os objetos necessários.

    • snow git fetch: obtém as alterações mais recentes do repositório de origem em um repositório Snowflake.

    • snow git list-branches: lista todas as ramificações em um repositório.

    • snow git list-tags: lista todas as tags em um repositório.

    • snow git list-files: lista todos os arquivos em uma ramificação, tag ou commit especificado.

    • snow git copy: copia arquivos de uma ramificação, tag ou confirmação especificada para um estágio ou diretório local.

    • snow git execute: executa o comando SQL EXECUTE IMMEDIATE para arquivos em um repositório.

  • Adicionado o comando snow stage execute para executar o comando SQL EXECUTE IMMEDIATE de um caminho do estágio.

  • Adicionada a opção --pattern para o comando snow stage list-files para dar suporte à filtragem de resultados com regex.

  • Adicionado suporte para qualquer fonte suportada por pip no comando snow snowpark.

  • Adicionada a capacidade de buscar a lista de pacotes disponíveis do Snowflake em vez de diretamente do Anaconda com fallback para o método antigo (para compatibilidade com versões anteriores). Como a nova abordagem requer uma conexão com o Snowflake, ela adiciona opções de conexão aos seguintes comandos:

    • snow snowpark build

    • snow snowpark package lookup

    • snow snowpark package create

Correções de bugs

  • Adicionada a opção --image-name para o argumento do nome da imagem no comando spcs image-repository list-tags para consistência com outros comandos.

  • Corrigido um problema em que os erros de spcs image-registry login não eram formatados corretamente.

  • As definições de projeto não aceitam mais campos extras. Quaisquer campos extras causam um erro.

  • Corrigido um problema com arquivos zip vazios para caminhos de construção do Snowpark para compilações que usavam a opção --project.

  • Mensagens de erro melhoradas para o comando snow snowpark build.

  • Análise de versão corrigida para pesquisa de pacotes no canal Snowflake Anaconda.

  • Corrigido um problema com o tratamento de identificadores de banco de dados, esquema e função contendo traços.

  • Corrigiu um bug de substituição de esquema no comando th snow connection test.

  • Devido a um problema com o Windows OSes, Snowflake CLI não mostra avisos quando as permissões do arquivo de configuração são muito amplas para sistemas Windows.

  • Mensagens de erro snow connection test melhoradas quando uma função, warehouse ou banco de dados não existe.

Versão 2.1.2 (27 de março de 2024)

Novos recursos e atualizações

  • Adicionado pip como uma dependência do Snowflake CLI.

  • Otimizado o comando snow connection test.

Correções de bugs

  • Corrigido um problema com a criação de ambientes virtuais nos comandos snow snowpark package create e snow snowpark build.

Versão 2.1.1 (20 de março de 2024)

Novos recursos e atualizações

  • Lançamento inicial público

Correções de bugs

  • Nenhum.