Configuration de SnowSQL¶
Ce chapitre décrit comment configurer SnowSQL en utilisant des paramètres de connexion, des options de configuration et des variables.
Dans ce chapitre :
À propos du fichier SnowSQL config
¶
SnowSQL prend en charge plusieurs fichiers de configuration qui permettent aux organisations de définir des valeurs de base pour les paramètres de connexion, les paramètres par défaut et les variables, tout en permettant à chaque utilisateur de personnaliser ses paramètres personnels dans ses propres fichiers <HOME_DIR>/.snowsql/config
. Lorsque SnowSQL démarre, il charge les valeurs des paramètres de configuration à partir des emplacements de fichiers de configuration suivants, dans l’ordre, en remplaçant les valeurs des fichiers chargés précédemment :
/etc/snowsql.cnf
/etc/snowflake/snowsql.cnf
/usr/local/etc/snowsql.cnf
<HOME_DIR>/.snowsql.cnf
(pris en charge uniquement pour la rétrocompatibilité)<HOME_DIR>/.snowsql/config
Par exemple, si le fichier de configuration /etc/snowsql.cnf
définit le paramètre log_level
sur info
, vous pouvez l’annuler en définissant le paramètre sur debug
dans votre fichier <HOME_DIR>/.snowsql/config
.
La commande snowsql
génère un fichier de configuration similaire au suivant la première fois que vous exécutez la commande.
[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
Vous devez créer ces fichiers de configuration en utilisant un encodage UTF-8.
Modifier le fichier de configuration SnowSQL¶
Pour modifier le fichier de configuration :
Ouvrez le fichier de configuration SnowSQL (nommé
config
) dans un éditeur de texte. L’emplacement par défaut du fichier est :- Linux/macOS:
~/.snowsql/
- Windows:
%USERPROFILE%\.snowsql\
Note
Vous pouvez changer l’emplacement par défaut en spécifiant l’indicateur de ligne de commande
--config path
au démarrage de SnowSQL.Modifiez les paramètres dans les sections suivantes :
Attention
Le mot de passe est stocké en texte clair dans le fichier
config
. Vous devez explicitement sécuriser le fichier pour en restreindre l’accès. Par exemple, sous Linux ou macOS, vous pouvez définir les permissions de lecture pour vous seul en exécutantchmod
:$ chmod 700 ~/.snowsql/config
Note
Si une valeur contient des caractères spéciaux (autres que des guillemets simples ou doubles), vous devez les mettre entre guillemets simples ou doubles, par exemple :
password = "my$^pwd"
Si une valeur contient des guillemets en plus d’autres caractères spéciaux, isolez ces guillemets en utilisant le backslash (
\
), par exemple :password = "my$^\"\'pwd"
Notez qu’isoler les guillemets est facultatif dans les valeurs non fermées (c’est-à-dire les valeurs qui ne contiennent pas d’autres caractères spéciaux).
Les valeurs multilignes doivent être entourées de trois guillemets simples ou doubles (
'''
ou"""
), par exemple :prompt_format='''[#FFFF00][user]@[account] [#00FF00]> '''
Section Paramètres de connexion¶
Dans la section [connections]
du fichier config
, définissez en option les paramètres de connexion par défaut pour SnowSQL, par exemple l’identificateur de compte, les identifiants de connexion utilisateur, la base de données et l’entrepôt par défaut. Vous pouvez également définir des connexions nommées afin d’effectuer plusieurs connexions simultanées à Snowflake ou de stocker différents ensembles de configurations de connexion.
Pour plus d’informations, voir Connexion par le biais de SnowSQL.
Section Options de configuration¶
Configurez le comportement de SnowSQL en ajoutant des paramètres dans la section [options]
du fichier config
:
[options] <option_name> = <option_value>
Où :
<nom_option>
est le nom de l’option (insensible à la casse). Si un nom invalide est spécifié, SnowSQL affiche une erreur.<valeur_option>
spécifie une valeur prise en charge (insensible à la casse) pour l’option, comme décrit ci-dessous.
+----------------------------+---------------------+------------------------------------------------------------------------------------+
| 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. |
+----------------------------+---------------------+------------------------------------------------------------------------------------+
Voir référence d’options de configuration SnowSQL (dans ce chapitre) pour obtenir une description de toutes les options valides.
Note
En plus de définir les options de configuration dans le fichier config
, vous pouvez définir les options en utilisant l’une des méthodes suivantes :
En vous connectant à Snowflake, vous pouvez utiliser les paramètres de connexion
-o
ou--option
pour définir ces options. Pour plus d’informations, voir Référence Paramètres de connexion.Après vous être connecté à Snowflake, vous pouvez utiliser la commande
!set
pour définir ces options pour la session. Pour plus d’informations, voir Référence Commandes.
Section Variables¶
Dans la section [variables]
du fichier config
, vous pouvez stocker des valeurs sous forme de variables à réutiliser. Cette fonction vous permet d’utiliser des valeurs définies par l’utilisateur et des valeurs de base de données dans les requêtes.
Pour plus d’informations, voir Utilisation de variables.
référence d’options de configuration SnowSQL¶
Les options modifient le comportement par défaut SnowSQL. Vous pouvez définir ces options à l’aide de l’une des méthodes suivantes :
Dans le fichier de configuration (comme décrit dans ce chapitre).
En utilisant le paramètre
-o
ou--option
lors de votre connexion à Snowflake.En utilisant la commande
!set
une fois connecté à Snowflake.
Note
Les noms et les valeurs des options sont insensibles à la casse.
auto_completion
¶
- Type:
Booléen
- Description:
Active l’auto-complétion contextuelle. Si cette option est activée, les fonctions, les noms de table et les variables stockés dans SnowSQL sont automatiquement complétés en mode interactif.
- Par défaut:
auto_completion=True
client_session_keep_alive
¶
- Type:
Booléen
- Description:
Indique s’il faut forcer un utilisateur à se reconnecter après une période d’inactivité dans une session JDBC ou ODBC. Lorsque le paramètre est défini sur
True
, Snowflake garde la session active indéfiniment, même s’il n’y a aucune activité de l’utilisateur. Lorsque le paramètre est défini surFalse
, l’utilisateur doit se reconnecter après quatre heures d’inactivité.- Par défaut:
client_session_keep_alive=False
echo
¶
- Type:
Booléen
- Description:
Reflète l’entrée locale. Si la valeur est définie sur
True
, reflètestdout
et le fichier de sortie.- Par défaut:
echo=False
editor
¶
- Type:
Chaîne (constante)
- Description:
Spécifie l’éditeur à invoquer lorsque la commande
!edit
est émise dans SnowSQL. Valeurs prises en charge :
emacs
vi
vim
- Par défaut:
editor=vim
empty_for_null_in_tsv
¶
- Type:
Booléen
- Description:
Si l’option est activée, lorsque
output_format
est réglé surTSV
, SnowSQL affiche une chaîne vide pour chaque valeur NULL.- Exemple:
empty_for_null_in_tsv=True
environment_variables
¶
- Type:
Liste
- Description:
Spécifie les variables d’environnement à définir dans les variables SnowSQL.
- Exemple:
environment_variables=PATH,USER,AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY
execution_only
¶
- Type:
Booléen
- Description:
Si l’option es activée, SnowSQL exécute les requêtes sans récupérer de données. Cette option est utile lorsque vous souhaitez uniquement mesurer les temps d’exécution. Notez que les valeurs renvoyées incluent les latences réseau et ne sont pas uniquement des temps d’exécution côté serveur.
- Exemple:
execution_only=True
exit_on_error
¶
- Type:
Booléen
- Description:
Si l’option est activée, SnowSQL sort lorsqu’une erreur se produit. Ce comportement est utile pour arrêter l’exécution des requêtes lorsqu’une erreur est rencontrée.
- Exemple:
exit_on_error=True
fix_parameter_precedence
¶
- Type:
Booléen
- Description:
Contrôle la priorité parmi les sources possibles du mot de passe, du mot de passe proxy et des paramètres de phrase clé privée.
Si la valeur est True, la priorité (du plus haut au plus bas) est :
La variable d’environnement ou le paramètre de ligne de commande SnowSQL.
Les paramètres de connexion spécifiques à la connexion, qui sont les paramètres de la section de connexion nommée du fichier de configuration, par exemple la section
[connections.myconnection]
.Les paramètres de connexion par défaut, qui sont les paramètres de la section
[connections]
du fichier de configuration.Si la valeur est False, la priorité (du plus haut au plus bas) est :
Les paramètres de connexion spécifiques à la connexion, qui sont les paramètres de la section de connexion nommée du fichier de configuration, par exemple la section
[connections.myconnection]
.La variable d’environnement ou le paramètre de ligne de commande SnowSQL.
Les paramètres de connexion par défaut, qui sont les paramètres de la section
[connections]
du fichier de configuration.- Par défaut:
Vrai
force_put_overwrite
¶
- Type:
Booléen
- Description:
Si activé, SnowSQL force la commande PUT à charger (c.-à-d. à mettre en zone de préparation) des fichiers de données depuis un répertoire/dossier local sur un ordinateur client vers la zone de préparation interne spécifiée (c.-à-d. Snowflake) sans vérifier si les fichiers existent déjà dans la zone de préparation. Si les fichiers sont déjà présents dans la zone de préparation de destination, la commande PUT écrase les fichiers existants.
- Par défaut:
force_put_overwrite=False
friendly
¶
- Type:
Booléen
- Description:
Si l’option est désactivée, SnowSQL supprime les messages de démarrage et de sortie.
- Par défaut:
friendly=True
header
¶
- Type:
Booléen
- Description:
Affiche l’en-tête dans la table des résultats rendue par SnowSQL. Désactiver cette option est utile lorsque vous voulez récupérer uniquement des données dans les résultats.
L’option peut être utilisée avec
output_format
ettiming
pour uniquement produire des données.- Par défaut:
header=True
insecure_mode
¶
- Type:
Booléen
- Description:
Permet d’ignorer les vérifications de révocation de certificat à l’aide de « Online Certificate Status Protocol » (OCSP). Cette option pourrait être utilisée dans une situation d’urgence où aucun service OCSP n’est accessible. Snowflake vous recommande fortement de ne pas activer cette option, à moins que l’assistance Snowflake ne vous l’indique.
- Par défaut:
insecure_mode=False
key_bindings
¶
- Type:
Chaîne (constante)
- Description:
Les raccourcis clavier à utiliser. Valeurs possibles :
emacs
: CTRL + a is home, CTRL + e is end. Tous les raccourcis clavier Emacs pour l’environnement REPL sont disponibles.
vi
: vous pouvez utiliser toutes les fonctions d’édition modale proposées par vi dans l’environnement REPL.- Remarque:
La valeur ne peut pas être modifiée par la commande
!set
pendant la session SnowSQL. Réglez plutôt la valeur dans le fichier de configuration ou sur la ligne de commande lorsque vous vous connectez à Snowflake.- Par défaut:
key_bindings=vi
log_bootstrap_file
¶
- Type:
Chaîne (chemin)
- Description:
Emplacement du fichier journal Bootstrap. S’il n’est pas spécifié,
log_file
est utilisé comme nom de base suivi de_bootstrap
. Par exemple, le nom de fichier journal estlog_bootstrap
par défaut.- Par défaut:
log_bootstrap_file=~/.snowsql/bootlog
log_file
¶
- Type:
Chaîne (chemin)
- Description:
Emplacement de log_file.
Note
Vous devez disposer des autorisations nécessaires pour écrire dans le répertoire parent du fichier journal ou pour modifier l’emplacement du fichier journal.
- Par défaut:
log_file=~/.snowsql/log
log_level
¶
- Type:
Chaîne (constante)
- Description:
Niveau de journal par défaut. Valeurs possibles :
CRITICAL
,ERROR
,WARNING
,INFO
,DEBUG
.
login_timeout
¶
- Type:
Nombre
- Description:
Délai de déconnexion en secondes.
- Par défaut:
login_timeout=120
noup
¶
- Type:
Booléen
- Description:
Empêche SnowSQL de télécharger et d’installer une nouvelle version si
True
. Par défaut, SnowSQL passe automatiquement à la dernière version si aucune version n’est spécifiée.- Par défaut:
noup=False
output_file
¶
- Type:
Chaîne (chemin d’accès et nom du fichier)
- Description:
Écrit la sortie dans le fichier spécifié en plus de la sortie du terminal.
- Par défaut:
Aucun
output_format
¶
- Type:
Chaîne (constante)
- Description:
Spécifie le format des résultats affichés dans le terminal. Valeurs possibles :
csv
expanded
fancy_grid
grid
html
json
latex
latex_booktabs
mediawiki
orgtbl
pipe
plain
psql
rst
simple
tsv
Valeurs recommandées pour les résultats tabulaires :
psql
,grid
oufancy_grid
Valeurs recommandées pour les résultats uniquement basés sur des données (utilisées en combinaison avec
header
,timing
, etfriendly
définis surFalse
) :plain
,csv
outsv
- Par défaut:
output_format=psql
paging
¶
- Type:
Booléen
- Description:
Lorsque l’option est activée, interrompt la sortie en fonction de la hauteur de l’écran. Cette fonction est utile pour parcourir de grands ensembles de résultats. Pour faire défiler vers le bas, appuyez sur la touche [ENTER]/[RETURN].
- Par défaut:
paging=False
progress_bar
¶
- Type:
Booléen
- Description:
Affiche la barre de progression lors du transfert de données.
- Par défaut:
progress_bar=True
prompt_format
¶
- Type:
chaîne
- Description:
Modifie le format d’invite SnowSQL.
L’invite SnowSQL affiche dynamiquement l’utilisateur, l’entrepôt, la base de données et le schéma actuels par défaut. Les jetons dynamiques s’écrivent [<jeton>], par exemple [utilisateur] ou [entrepôt]. Vous pouvez modifier l’ordre, le délimiteur et la couleur des objets Snowflake. Modifiez la couleur d’objet en définissant un jeton Pygments entre parenthèses.
Par exemple, modifiez l’ordre des objets sur utilisateur, sur base de données et sur schéma, puis sur entrepôt. Modifiez le délimiteur sur une période. Modifiez le nom de l’objet <utilisateur> en rouge, les noms <base de données> et <schéma> en vert et le nom <entrepôt> en bleu :
prompt_format="[#FF0000][user]@[#00FF00][database][schema][#0000FF][warehouse]"Placez des guillemets autour de la valeur pour éviter que les caractères « # » soient interprétés comme le début d’un commentaire.
- Par défaut:
None
quiet
¶
- Type:
Booléen
- Description:
Supprime toutes les données de sortie du terminal, mais continue à afficher les messages d’erreur et les données de diagnostic.
- Par défaut:
quiet=True
remove_comments
¶
- Type:
Booléen
- Description:
Supprime les commentaires de la sortie.
- Par défaut:
remove_comments=False
remove_trailing_semicolons
¶
- Type:
Booléen
- Description:
Supprime les points-virgules de fin d’un texte SQL avant d’envoyer des requêtes à Snowflake. Notez que la suppression des points-virgules peut empêcher Snowflake d’utiliser les résultats de différents clients mis en cache lorsque le paramètre de session USE_CACHED_RESULT est activé.
- Par défaut:
remove_trailing_semicolons=True
results
¶
- Type:
Booléen
- Description:
Renvoie les résultats de la requête. Si
False
, la requête est exécutée de manière asynchrone, et aucun résultat, y compris des messages d’erreur, n’est renvoyé.- Par défaut:
results=True
rowset_size
¶
- Type:
Nombre
- Description:
Nombre de lignes à récupérer en une fois en mode interactif. Les résultats sont ensuite récupérés pour la sortie d’un ensemble de lignes à la fois.
- Par défaut:
rowset_size=1000
sfqid
¶
- Type:
Booléen
- Description:
Inclut l’ID de requête Snowflake dans le résumé des résultats.
Note : Vous devez également définir
timing_in_output_file=True
pour ajoutersqfid
au fichier spool.- Par défaut:
sfqid=False
sfqid_in_error
¶
- Type:
Booléen
- Description:
Inclut l’ID de requête Snowflake dans les messages d’erreur.
- Par défaut:
sfqid_in_error=False
stop_on_error
¶
- Type:
Booléen
- Description:
Lorsqu’une erreur est rencontrée, arrête l’exécution de la requête, mais ne se termine pas.
- Par défaut:
stop_on_error=False
syntax_style
¶
- Type:
Chaîne (constante)
- Description:
Définit les couleurs de texte pour SnowSQL. Actuellement, la seule valeur prise en charge est
default
.- Par défaut:
syntax_style=default
timing
¶
- Type:
Booléen
- Description:
Indique s’il faut afficher le nombre de lignes produites et le temps écoulé pour les instructions SQL qui ont été exécutées. Ces informations sont affichées sous la forme d’une ligne de texte sous la table des résultats rendue par SnowSQL. Si
False
, la ligne de texte sous la table des résultats n’est pas affichée.Peut être utilisé en conjonction avec
header
etoutput_format
pour produire des données de sortie uniquement.- Par défaut:
timing=True
timing_in_output_file
¶
- Type:
Booléen
- Description:
Spécifie s’il faut inclure les détails de l’heure d’exécution dans le fichier de sortie, si l’option
output_file
est configurée. Nécessite également de définir l’optiontiming
surTrue
.Si le paramètre est défini sur
False
, la ligne de texte sous la table des résultats n’est pas incluse dans le fichier de sortie.- Par défaut:
timing_in_output_file=False
variable_substitution
¶
- Type:
Booléen
- Description:
Remplace les variables par les valeurs. Voir Utilisation de variables.
- Par défaut:
variable_substitution=False
wrap
¶
- Type:
Booléen
- Description:
Inclut la sortie en fonction de la largeur du terminal. Si
False
, les sorties sont tronquées.- Par défaut:
wrap=True