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
Copy

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 :

  1. 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.

  2. 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écutant chmod :

    $ chmod 700 ~/.snowsql/config
    
    Copy

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"
    
    Copy
  • 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"
    
    Copy

    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]> '''
    
    Copy

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>
Copy

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.                               |
+----------------------------+---------------------+------------------------------------------------------------------------------------+
Copy

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 sur False, 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ète stdout 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é sur TSV, 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

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 est log_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 ou fancy_grid

Valeurs recommandées pour les résultats uniquement basés sur des données (utilisées en combinaison avec header, timing, et friendly définis sur False) : plain , csv ou tsv

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]"
Copy

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 ajouter sqfid 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 et output_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’option timing sur True.

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