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
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:
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.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ê, executandochmod
:$ chmod 700 ~/.snowsql/config
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"
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"
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]> '''
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>
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. |
+----------------------------+---------------------+------------------------------------------------------------------------------------+
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:
No arquivo de configuração (como descrito neste tópico).
Usando o parâmetro
-o
ou--option
ao conectar-se ao Snowflake.Usando o comando
!set
depois de se conectar ao Snowflake.
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 comoFalse
, 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 parastdout
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 comoTSV
, 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
header
¶
- Tipo:
Booleano
- Descrição:
Exibe o cabeçalho na tabela de resultados gerada pelo SnowSQL. Desabilitar essa opção é útil quando você deseja recuperar somente os dados nos resultados.
Pode ser usada com
output_format
etiming
para produzir saída somente de dados.- Padrão:
header=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
oufancy_grid
Valores recomendados para resultados somente de dados (usados em combinação com
header
,timing
efriendly
definido comoFalse
):plain
,csv
outsv
- 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]"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 adicionarsqfid
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
eoutput_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çãotiming
comoTrue
.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