Configuração do Snowflake CLI

Snowflake CLI usa um arquivo de configuração global chamado config.toml para configurar conexões e logs para Snowflake CLI. Se o arquivo não existir, executar qualquer comando snow pela primeira vez criará automaticamente um arquivo config.toml vazio que você poderá preencher com as conexões desejadas. Para obter mais informações sobre formatos de arquivo toml, consulte TOML (Tom’s Obvious Minimal Language). As bibliotecas Snowflake Python atualmente oferecem suporte a TOML versão 1.0.0.

O config.toml oferece suporte às seguintes seções:

  • [conexões] para definir e gerenciar conexões

  • [logs] para configurar quais tipos de mensagens são salvas em arquivos de log

Um arquivo de configuração Snowflake CLI tem a seguinte estrutura:

[connections]
[connections.myconnection]
account = "myaccount"
user = "jdoe"
...

[connections.testingconnection]
account = "myaccount"
user = "jdoe"
...

[cli.logs]
save_logs = true
level = "info"
path = "/home/<username>/.snowflake/logs"
Copy

Local do arquivo de configuração .toml

Por padrão, Snowflake CLI procura o arquivo config.toml no diretório ~/.snowflake ou, caso este diretório não exista, em um local específico do sistema, conforme listado abaixo. Você também pode especificar qual arquivo de configuração deve ser usado usando o sinalizador --config-file ou a variável de ambiente SNOWFLAKE_HOME.

  • Se você especificar a opção --config-file (como snow --config-file ./my-config-file-path), Snowflake CLI usará o arquivo de configuração especificado.

  • Se a variável de ambiente SNOWFLAKE_HOME estiver definida, Snowflake CLI usa o local especificado por esta variável.

  • Se existir um diretório ~/.snowflake em sua máquina, o Snowflake CLI usará o arquivo ~/.snowflake/config.toml.

  • Caso contrário, o Snowflake CLI usará o arquivo config.toml em um dos seguintes locais, com base em seu sistema operacional:

    • Linux: ~/.config/snowflake/config.toml, mas é possível atualizá-lo com variáveis XDG

    • Windows: %USERPROFILE%\AppData\Local\snowflake\config.toml

    • Mac: ~/Library/Application Support/snowflake/config.toml

Nota

Para sistemas MacOS e Linux, Snowflake CLI exige o arquivo config.toml para limitar suas permissões de leitura e gravação somente para o proprietário do arquivo. Para definir as permissões de arquivo necessárias, execute os seguintes comandos:

chown $USER config.toml
chmod 0600 config.toml
Copy

Escolha um arquivo de configuração diferente

Em algumas situações, como ambientes de integração contínua e implantação contínua (CI/CD), você pode preferir criar arquivos de configuração dedicados para pipelines de teste e implementação em vez de definir todas as configurações possíveis em um único arquivo de configuração padrão do Snowflake.

Para usar um arquivo de configuração diferente de seu arquivo padrão, é possível usar a opção --config-file para o comando snow, conforme mostrado:

snow --config-file="my_config.toml" connection test
Copy

Suporte para variáveis de ambiente do sistema

Snowflake CLI oferece suporte ao uso de variáveis de ambiente do sistema para substituir valores de parâmetro definidos em seu arquivo config.toml, usando o seguinte formato:

SNOWFLAKE_<config-section>_<variable>=<value>
Copy

onde:

  • <config_section> é o nome de uma seção no arquivo de configuração com pontos (.) substituídos por sublinhados (_), como CLI_LOGS.

  • variável é o nome de uma variável definida naquela seção, como caminho.

Alguns exemplos incluem:

  • Substitua o parâmetro de path na seção [cli.logs] no arquivo config.toml:

    export SNOWFLAKE_CLI_LOGS_PATH="/Users/jondoe/snowcli_logs"
    
    Copy
  • Defina a senha para a conexão myconnection:

    export SNOWFLAKE_CONNECTIONS_MYCONNECTION_PASSWORD="*******"
    
    Copy
  • Defina o nome da conexão padrão:

    export SNOWFLAKE_DEFAULT_CONNECTION_NAME="myconnection"
    
    Copy

Configuração do registro em log

Por padrão, Snowflake CLI salva automaticamente as mensagens de nível INFO, WARNING e ERROR em arquivos de log. Para desabilitar ou personalizar o registro, crie uma seção [cli.logs] em seu arquivo config.toml:

[cli.logs]
save_logs = true
level = "info"
path = "/home/<username>/.snowflake/logs"
Copy

onde:

  • save_logs indica se os logs devem ser salvos em arquivos. Padrão: true.

  • level especifica quais níveis de mensagens salvar nos arquivos de log. Escolha entre os seguintes níveis, que incluem todos os níveis abaixo do selecionado:

    • debug

      Aviso

      Mudando para o nível de registro em log debug pode expor informações confidenciais, como consultas SQL. Tenha cuidado ao habilitar este nível.

    • info

    • warning

    • error

    Padrão: info

  • path especifica o caminho absoluto para salvar os arquivos de log. O formato do caminho varia de acordo com o seu sistema operacional, conforme mostrado:

    • Linux: path = "/home/<seu_nome_de_usuário>/.config/snowflake/logs"

    • MacOS: path = "/Users/<seu_nome_de_usuário>/Library/Application Support/snowflake/logs"

    • Windows: path = "C:\\Users\\<seu_nome_de_usuário>\\AppData\\Local\\snowflake\\logs"

    Se não for especificado, o comando cria um diretório logs na localização padrão config.toml do arquivo.

Se oseu config.toml foi criado automaticamente, o arquivo config.toml contém a seção `` |cli.logs| `` preenchida com valores padrão.

Os registros de um único dia são anexados ao arquivo snowflake-cli.log, que mais tarde foi renomeado para snowflake-cli.log.YYYY-MM-DD, como mostrado.

ls logs/
Copy
snowflake-cli.log            snowflake-cli.log.2024-10-22