Configuração do SnowSQL

Este tópico descreve como configurar o SnowSQL usando parâmetros de conexão, opções de configuração e variáveis.

Neste tópico:

Sobre o arquivo SnowSQL config

O SnowSQL oferece suporte a múltiplos arquivos de configuração que permitem às organizações definir valores base para parâmetros de conexão, configurações padrão e variáveis, além de permitir que usuários individuais personalizem suas configurações pessoais em seus próprios arquivos <HOME_DIR>/.snowsql/config. Quando o SnowSQL é iniciado, ele carrega em ordem os valores dos parâmetros de configuração dos seguintes locais do arquivo de configuração, substituindo os valores dos arquivos carregados anteriormente:

  • /etc/snowsql.cnf

  • /etc/snowflake/snowsql.cnf

  • /usr/local/etc/snowsql.cnf

  • <HOME_DIR>/.snowsql.cnf (suporte apenas para compatibilidade com versões anteriores)

  • <HOME_DIR>/.snowsql/config

Por exemplo, se o arquivo de configuração /etc/snowsql.cnf definir o parâmetro log_level como info, você pode substituir isso definindo o parâmetro como debug no seu arquivo <HOME_DIR>/.snowsql/config.

O comando snowsql gera um arquivo de configuração semelhante ao seguinte na primeira vez que você executa o comando.

[connections]
# *WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING*
#
# The Snowflake user password is stored in plain text in this file.
# Pay special attention to the management of this file.
# Thank you.
#
# *WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING*

#If a connection doesn't specify a value, it will default to these
#
#accountname = defaultaccount
#region = defaultregion
#username = defaultuser
#password = defaultpassword
#dbname = defaultdbname
#schemaname = defaultschema
#warehousename = defaultwarehouse
#rolename = defaultrolename
#proxy_host = defaultproxyhost
#proxy_port = defaultproxyport

[connections.example]
#Can be used in SnowSql as #connect example

accountname = accountname
username = username
password = password1234

[variables]
# SnowSQL defines the variables in this section on startup.
# You can use these variables in SQL statements. For details, see
# https://docs.snowflake.com/en/user-guide/snowsql-use.html#using-variables

# example_variable=27

[options]
# If set to false auto-completion will not occur interactive mode.
auto_completion = True

# main log file location. The file includes the log from SnowSQL main
# executable.
log_file = ~/.snowsql/log

# bootstrap log file location. The file includes the log from SnowSQL bootstrap
# executable.
# log_bootstrap_file = ~/.snowsql/log_bootstrap

# Default log level. Possible values: "CRITICAL", "ERROR", "WARNING", "INFO"
# and "DEBUG".
log_level = INFO

# Timing of sql statments and table rendering.
timing = True

# Table format. Possible values: psql, plain, simple, grid, fancy_grid, pipe,
# orgtbl, rst, mediawiki, html, latex, latex_booktabs, tsv.
# Recommended: psql, fancy_grid and grid.
output_format = psql

# Keybindings: Possible values: emacs, vi.
# Emacs mode: Ctrl-A is home, Ctrl-E is end. All emacs keybindings are available in the REPL.
# When Vi mode is enabled you can use modal editing features offered by Vi in the REPL.
key_bindings = emacs

# OCSP Fail Open Mode.
# The only OCSP scenario which will lead to connection failure would be OCSP response with a
# revoked status. Any other errors or in the OCSP module will not raise an error.
# ocsp_fail_open = True

# Enable temporary credential file for Linux users
# For Linux users, since there are no OS-key-store, an unsecure temporary credential for SSO can be enabled by this option. The default value for this option is False.
# client_store_temporary_credential = True

# Select statement split method (default is to use the sql_split method in snowsql, which does not support 'sql_delimiter')
# sql_split = snowflake.connector.util_text # to use connector's statement_split which has legacy support to 'sql_delimiter'.

# Force the result data to be decoded in utf-8. By default the value is set to false for compatibility with legacy data. It is recommended to set the value to true.
# json_result_force_utf8_decoding = False
Copy

Você deve criar esses arquivos de configuração usando a codificação UTF-8.

Modificação do arquivo de configuração SnowSQL

Para modificar o arquivo de configuração:

  1. Abra o arquivo de configuração do SnowSQL (chamado config) em um editor de texto. A localização padrão do arquivo é:

    Linux/macOS

    ~/.snowsql/

    Windows

    %USERPROFILE%\.snowsql\

    Nota

    Você pode mudar o local padrão especificando o sinalizador de linha de comando --config path ao iniciar o SnowSQL.

  2. Modifique as configurações nas seguintes seções:

Atenção

  • A senha é armazenada em texto simples no arquivo config. Você deve proteger explicitamente o arquivo para restringir o acesso. Por exemplo, no Linux ou no macOS, você pode definir as permissões de leitura somente para você, executando chmod:

    $ chmod 700 ~/.snowsql/config
    
    Copy

Nota

  • Se um valor contiver caracteres especiais (além de aspas simples ou duplas), você deve colocá-lo entre aspas simples ou duplas, por exemplo:

    password = "my$^pwd"
    
    Copy
  • Se um valor contiver caracteres de aspas além de outros caracteres especiais, coloque as aspas entre os caracteres de escape de barra invertida (\), por exemplo:

    password = "my$^\"\'pwd"
    
    Copy

    Observe que colocar as aspas entre caracteres de escape é opcional em valores sem delimitadores (ou seja, valores que não contêm outros caracteres especiais).

  • Os valores com várias linhas devem ser colocados entre três aspas simples ou duplas (''' ou """), por exemplo:

    prompt_format='''[#FFFF00][user]@[account]
    [#00FF00]> '''
    
    Copy

Seção de parâmetros de conexão

Na seção [connections] do arquivo config, você tem a opção de definir os parâmetros de conexão padrão do SnowSQL, por exemplo: identificador de conta, credenciais de login de usuário, e banco de dados e warehouse padrão. Você também pode definir conexões nomeadas para fazer múltiplas conexões simultâneas ao Snowflake ou armazenar conjuntos diferentes de configurações de conexões.

Para obter mais informações, consulte Conexão por meio do SnowSQL.

Seção de opções de configuração

Defina o comportamento do SnowSQL adicionando configurações na seção [options] do arquivo config:

[options]
<option_name> = <option_value>
Copy

Onde:

  • <nome_opção> é o nome da opção (não diferencia maiúsculas de minúsculas). Se um nome inválido for especificado, o SnowSQL exibe um erro.

  • <valor_opção> especifica um valor com suporte (não diferencia maiúsculas de minúsculas) para a opção, conforme descrito abaixo.

+----------------------------+---------------------+------------------------------------------------------------------------------------+
| Name                       | Value               | Help                                                                               |
+----------------------------+---------------------+------------------------------------------------------------------------------------+
| auto_completion            | True                | Displays auto-completion suggestions for commands and Snowflake objects.           |
| client_session_keep_alive  | False               | Keeps the session active indefinitely, even if there is no activity from the user. |
| echo                       | False               | Outputs the SQL command to the terminal when it is executed.                       |
| editor                     | vim                 | Changes the editor to use for the !edit command.                                   |
| empty_for_null_in_tsv      | False               | Outputs an empty string for NULL values in TSV format.                             |
| environment_variables      | ['PATH']            | Specifies the environment variables that can be referenced as SnowSQL variables.   |
|                            |                     | The variable names should be comma separated.                                      |
| execution_only             | False               | Executes queries only.                                                             |
| exit_on_error              | False               | Quits when SnowSQL encounters an error.                                            |
| fix_parameter_precedence   | True                | Controls the precedence of the environment variable and the config file entries    |
|                            |                     | for password, proxy password, and private key phrase.                              |
| force_put_overwrite        | False               | Force PUT command to stage data files without checking whether already exists.     |
| friendly                   | True                | Shows the splash text and goodbye messages.                                        |
| header                     | True                | Outputs the header in query results.                                               |
| insecure_mode              | False               | Turns off OCSP certificate checks.                                                 |
| key_bindings               | emacs               | Changes keybindings for navigating the prompt to emacs or vi.                      |
| log_bootstrap_file         | ~/.snowsql/log_...  | SnowSQL bootstrap log file location.                                               |
| log_file                   | ~/.snowsql/log      | SnowSQL main log file location.                                                    |
| log_level                  | CRITICAL            | Changes the log level (critical, debug, info, error, warning).                     |
| login_timeout              | 120                 | Login timeout in seconds.                                                          |
| noup                       | False               | Turns off auto upgrading SnowSQL.                                                  |
| output_file                | None                | Writes output to the specified file in addition to the terminal.                   |
| output_format              | psql                | Sets the output format for query results.                                          |
| paging                     | False               | Enables paging to pause output per screen height.                                  |
| progress_bar               | True                | Shows progress bar while transferring data.                                        |
| prompt_format              | [user]#[warehou...] | Sets the prompt format. Experimental feature, currently not documented.            |
| sfqid                      | False               | Turns on/off Snowflake query id in the summary.                                    |
| sfqid_in_error             | False               | Turns on/off Snowflake query id in the error message.                              |
| quiet                      | False               | Hides all output.                                                                  |
| remove_comments            | False               | Removes comments before sending query to Snowflake.                                |
| remove_trailing_semicolons | True                | Removes trailing semicolons from SQL text before sending queries to Snowflake.     |
| results                    | True                | If set to off, queries will be sent asynchronously, but no results will be fetched.|
|                            |                     | Use !queries to check the status.                                                  |
| rowset_size                | 1000                | Sets the size of rowsets to fetch from the server.                                 |
|                            |                     | Set the option low for smooth output, high for fast output.                        |
| stop_on_error              | False               | Stops all queries yet to run when SnowSQL encounters an error.                     |
| syntax_style               | default             | Sets the colors for the text of SnowSQL.                                           |
| timing                     | True                | Turns on/off timing for each query.                                                |
| timing_in_output_file      | False               | Includes timing in the output file.                                                |
| variable_substitution      | False               | Substitutes variables (starting with '&') with values.                             |
| version                    | 1.1.70              | Returns SnowSQL version.                                                           |
| wrap                       | True                | Truncates lines at the width of the terminal screen.                               |
+----------------------------+---------------------+------------------------------------------------------------------------------------+
Copy

Para ver as descrições de todas as opções válidas, consulte Referência de opções de configuração do SnowSQL (neste tópico).

Nota

Além de definir as opções de configuração no arquivo config, você pode definir as opções usando um dos seguintes métodos:

  • Ao conectar-se ao Snowflake, você pode usar o parâmetro de conexão -o ou --option para definir essas opções. Para obter mais informações, consulte Referência de parâmetros de conexão.

  • Após conectar-se ao Snowflake, você pode usar o comando !set para definir essas opções para a sessão. Para obter mais informações, consulte Referência de comandos.

Seção de variáveis

Na seção [variables] do arquivo config, você pode armazenar valores como variáveis para reutilização. Esse recurso permite o uso de valores de banco de dados e definidos pelo usuário e em consultas.

Para obter mais informações, consulte Uso de variáveis.

Referência de opções de configuração do SnowSQL

As opções modificam o comportamento padrão do SnowSQL. Você pode definir essas opções usando um dos seguintes métodos:

Nota

Os nomes e valores das opções não diferenciam maiúsculas de minúsculas.

auto_completion

Tipo

Booleano

Descrição

Permite o preenchimento automático contextual. Se habilitada, as funções, nomes de tabelas e variáveis armazenadas no SnowSQL são preenchidas automaticamente no modo interativo.

Padrão

auto_completion=True

client_session_keep_alive

Tipo

Booleano

Descrição

Indica se é para forçar um usuário a fazer login novamente após um período de inatividade em uma sessão JDBC ou ODBC. Quando definida como True, o Snowflake mantém a sessão ativa indefinidamente, mesmo que não haja atividade do usuário. Quando definida como False, o usuário deve fazer o login novamente após quatro horas de inatividade.

Padrão

client_session_keep_alive=False

echo

Tipo

Booleano

Descrição

Ecoa a entrada local. Quando definida como True, ecoa tanto para stdout como para o arquivo de saída.

Padrão

echo=False

editor

Tipo

Cadeia de caracteres (constante)

Descrição

Especifica o editor a ser invocado quando o comando !edit é emitido no SnowSQL. Valores com suporte:

  • emacs

  • vi

  • vim

Padrão

editor=vim

empty_for_null_in_tsv

Tipo

Booleano

Descrição

Se habilitada, quando output_format é definida como TSV, o SnowSQL gera uma cadeia de caracteres vazia para cada valor NULL.

Exemplo

empty_for_null_in_tsv=True

environment_variables

Tipo

Lista

Descrição

Especifica as variáveis de ambiente a serem definidas nas variáveis do SnowSQL.

Exemplo

environment_variables=PATH,USER,AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY

execution_only

Tipo

Booleano

Descrição

Se habilitada, o SnowSQL executa consultas sem buscar dados. Essa opção é útil quando você só quer medir os tempos de execução. Observe que os valores retornados incluem a latência de rede e não são os tempos de execução puros no servidor.

Exemplo

execution_only=True

exit_on_error

Tipo

Booleano

Descrição

Se habilitada, o SnowSQL é encerrado quando ocorre um erro. Este comportamento é útil para interromper a execução de consultas quando um erro é encontrado.

Exemplo

exit_on_error=True

fix_parameter_precedence

Tipo

Booleano

Descrição

Controla a precedência entre as possíveis fontes da senha, da senha de proxy e dos parâmetros da frase-chave privada.

Se o valor for Verdadeiro, a precedência (da mais alta para a mais baixa) é:

  • A variável de ambiente ou o parâmetro de linha de comando do SnowSQL.

  • Os parâmetros de conexão específicos da conexão, que são os parâmetros na seção de conexão nomeada do arquivo de configuração, por exemplo, a seção [connections.myconnection].

  • Os parâmetros de conexão padrão, que são os parâmetros na seção [connections] do arquivo de configuração.

Se o valor for Falso, a precedência (da mais alta para a mais baixa) é:

  • Os parâmetros de conexão específicos da conexão, que são os parâmetros na seção de conexão nomeada do arquivo de configuração, por exemplo, a seção [connections.myconnection].

  • A variável de ambiente ou o parâmetro de linha de comando do SnowSQL.

  • Os parâmetros de conexão padrão, que são os parâmetros na seção [connections] do arquivo de configuração.

Padrão

True

force_put_overwrite

Tipo

Booleano

Descrição

Se habilitada, o SnowSQL força o comando PUT a carregar (ou seja, preparar) arquivos de dados de um diretório/pasta local em uma máquina cliente para o estágio interno especificado (ou seja, o Snowflake) sem verificar se os arquivos já existem no estágio. Se os arquivos já estiverem presentes no estágio de destino, o comando PUT substitui os arquivos existentes.

Padrão

force_put_overwrite=False

friendly

Tipo

Booleano

Descrição

Se desabilitada, o SnowSQL suprime as mensagens de inicialização e encerramento.

Padrão

friendly=True

insecure_mode

Tipo

Booleano

Descrição

Ignora as verificações de revogação de certificado usando o OCSP(Online Certificate Status Protocol). Essa opção pode ser utilizada em uma situação de emergência em que nenhum serviço OCSP esteja acessível. O Snowflake recomenda fortemente que você não habilite essa opção, a menos que receba instruções do suporte Snowflake.

Padrão

insecure_mode=False

key_bindings

Tipo

Cadeia de caracteres (constante)

Descrição

Atalhos a serem usadas. Possíveis valores:

  • emacs: CTRL + a é principal, CTRL + e é fim. Todas os atalhos do Emacs para o ambiente REPL estão disponíveis.

  • vi: você pode usar todos os recursos de edição modal oferecidos por vi no ambiente REPL.

Observação

O valor não pode ser alterado pelo comando !set durante a sessão do SnowSQL. Em vez disso, defina o valor no arquivo de configuração ou na linha de comando ao conectar-se ao Snowflake.

Padrão

key_bindings=vi

log_bootstrap_file

Tipo

Cadeia de caracteres (caminho)

Descrição

Localização do arquivo de log Bootstrap. Se não especificado, log_file é usado como o nome base seguido por _bootstrap. Por exemplo, por padrão, o nome do arquivo de log é log_bootstrap.

Padrão

log_bootstrap_file=~/.snowsql/bootlog

log_file

Tipo

Cadeia de caracteres (caminho)

Descrição

Localização de log_file.

Nota

Você deve ter permissões para gravar no diretório pai do arquivo de log ou para modificar a localização do arquivo de log.

Padrão

log_file=~/.snowsql/log

log_level

Tipo

Cadeia de caracteres (constante)

Descrição

Nível de log padrão. Possíveis valores: CRITICAL, ERROR, WARNING, INFO, DEBUG.

login_timeout

Tipo

Número

Descrição

Tempo limite para login em segundos.

Padrão

login_timeout=120

noup

Tipo

Booleano

Descrição

Impede o SnowSQL de baixar e instalar uma nova versão se True. Por padrão, o SnowSQL é atualizado automaticamente para a versão mais recente se nenhuma versão for especificada.

Padrão

noup=False

output_file

Tipo

Cadeia de caracteres (caminho e nome do arquivo)

Descrição

Grava a saída no arquivo especificado, além da saída do terminal.

Padrão

Nenhum

output_format

Tipo

Cadeia de caracteres (constante)

Descrição

Especifica o formato dos resultados exibidos no terminal. Possíveis valores:

  • csv

  • expanded

  • fancy_grid

  • grid

  • html

  • json

  • latex

  • latex_booktabs

  • mediawiki

  • orgtbl

  • pipe

  • plain

  • psql

  • rst

  • simple

  • tsv

Valores recomendados para os resultados tabulares: psql, grid ou fancy_grid

Valores recomendados para resultados somente de dados (usados em combinação com header, timing e friendly definido como False): plain, csv ou tsv

Padrão

output_format=psql

paging

Tipo

Booleano

Descrição

Quando a opção está habilitada, pausa a saída pela altura da tela. Esse recurso é útil para a navegação em grandes conjuntos de resultados. Para rolar para baixo, pressione a tecla [ENTER]/[RETURN].

Padrão

paging=False

progress_bar

Tipo

Booleano

Descrição

Mostra a barra de progresso durante a transferência de dados.

Padrão

progress_bar=True

prompt_format

Tipo

cadeia de caracteres

Descrição

Muda o formato do prompt do SnowSQL.

O prompt do SnowSQL exibe dinamicamente o usuário atual, o warehouse, o banco de dados e o esquema, por padrão. Os tokens dinâmicos são escritos como [<token>], por exemplo [usuário] ou [warehouse]. Você pode alterar a ordem, o delimitador e a cor do objeto Snowflake. Altere a cor do objeto definindo um símbolo de pigmento entre colchetes.

Por exemplo, altere a ordem dos objetos para usuário, banco de dados e esquema e, em seguida, warehouse. Altere o delimitador para um ponto final. Altere o nome do objeto [usuário] para vermelho, os nomes [banco de dados] e [esquema] para verde, e o nome [warehouse] para azul:

prompt_format="[#FF0000][user]@[#00FF00][database][schema][#0000FF][warehouse]"
Copy

Coloque o valor entre aspas para evitar que caracteres «#» sejam interpretados como o início de um comentário.

Padrão

None

quiet

Tipo

Booleano

Descrição

Remove todos os dados de saída do terminal, mas continua a exibir mensagens de erro e dados de diagnóstico.

Padrão

quiet=True

remove_comments

Tipo

Booleano

Descrição

Retira comentários da saída.

Padrão

remove_comments=False

remove_trailing_semicolons

Tipo

Booleano

Descrição

Remove os ponto-e-vírgula finais do texto SQL antes de enviar as consultas para o Snowflake. Observe que a remoção dos ponto-e-vírgula pode impedir que o Snowflake use resultados em cache de diferentes clientes quando o parâmetro de sessão USE_CACHED_RESULT estiver habilitado.

Padrão

remove_trailing_semicolons=True

results

Tipo

Booleano

Descrição

Retorna os resultados da consulta. Se False, a consulta é executada de forma assíncrona. Nenhum resultado, inclusive mensagens de erro, é retornado.

Padrão

results=True

rowset_size

Tipo

Número

Descrição

Número de linhas a serem buscadas de uma só vez no modo interativo. Em seguida, os resultados são buscado para a saída um conjunto de linhas de cada vez.

Padrão

rowset_size=1000

sfqid

Tipo

Booleano

Descrição

Inclui a ID de consulta do Snowflake no resumo do resultado.

Nota: Você também deve definir timing_in_output_file=True para adicionar sqfid ao arquivo de spool.

Padrão

sfqid=False

sfqid_in_error

Tipo

Booleano

Descrição

Inclui a ID de consulta do Snowflake em mensagens de erro.

Padrão

sfqid_in_error=False

stop_on_error

Tipo

Booleano

Descrição

Quando um erro é encontrado, interrompe a execução da consulta, mas não é encerrado.

Padrão

stop_on_error=False

syntax_style

Tipo

Cadeia de caracteres (constante)

Descrição

Define as cores do texto no SnowSQL. Atualmente, o único valor suportado é default.

Padrão

syntax_style=default

timing

Tipo

Booleano

Descrição

Especifica se deve exibir o número de linhas produzidas e o tempo consumido pelas instruções SQL executadas. Essa informação é exibida como uma linha de texto sob a tabela de resultados gerada pelo SnowSQL. Se definida como False, a linha de texto sob a tabela de resultados não é exibida.

Pode ser usada em conjunto com header e output_format para produzir saídas somente de dados.

Padrão

timing=True

timing_in_output_file

Tipo

Booleano

Descrição

Especifica se os detalhes do tempo de execução devem ser incluídos no arquivo de saída, se a opção output_file estiver configurada. Requer também a definição da opção timing como True.

Se definida como False, a linha de texto sob a tabela de resultados não é incluída no arquivo de saída.

Padrão

timing_in_output_file=False

variable_substitution

Tipo

Booleano

Descrição

Substitui as variáveis pelos valores. Consulte Uso de variáveis.

Padrão

variable_substitution=False

wrap

Tipo

Booleano

Descrição

Ajusta a saída pela largura do terminal. Se False, as saídas são truncadas.

Padrão

wrap=True