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