配置 Snowflake CLI¶
Snowflake CLI 会使用名为 config.toml
的配置连接的全局配置文件和 Snowflake CLI 的日志。如果该文件不存在,则首次运行任何 snow
命令会自动创建一个空 config.toml
文件,然后您可以使用所需的连接填充该文件。有关 toml
文件格式的更多信息,请参阅 TOML (Tom 的[语义]明显、[配置]最小化的语言) (https://toml.io/en/)。Snowflake Python 库目前支持 TOML 1.0.0 版本。
config.toml
支持以下部分:
用于定义和管理连接的 [connections]
用于配置保存到日志文件的消息类型的 [logs]
Snowflake CLI 配置文件具有以下结构:
[connections]
[connections.myconnection]
account = "myorganzation-myaccount"
user = "jdoe"
...
[connections.testingconnection]
account = "myorganzation-myaccount"
user = "jdoe"
...
[cli.logs]
save_logs = true
level = "info"
path = "/home/<username>/.snowflake/logs"
.toml
配置文件的位置¶
默认情况下,Snowflake CLI 会查找 ~/.snowflake
目录中的 config.toml
文件,或者如果该目录不存在,则会查找系统特定位置,如下所示。您还可以使用 --config-file
标志或 SNOWFLAKE_HOME
环境变量指定应使用哪一个配置文件。
如果您指定
--config-file
选项(例如snow --config-file ./my-config-file-path
),|sf-cli| 会使用指定的配置文件。如果已设置
SNOWFLAKE_HOME
环境变量,Snowflake CLI 会使用此变量指定的位置。如果计算机中存在
~/.snowflake
目录,则 Snowflake CLI 将使用~/.snowflake/config.toml
文件。否则,Snowflake CLI 将根据操作系统使用以下某个位置中的
config.toml
文件:Linux:
~/.config/snowflake/config.toml
,但您可以使用 XDG 变量对其进行更新Windows:
%USERPROFILE%\AppData\Local\snowflake\config.toml
Mac:
~/Library/Application Support/snowflake/config.toml
备注
对于 MacOS 和 Linux 系统,Snowflake CLI 要求 config.toml
文件将其文件权限限制为仅限文件所有者读写。要设置文件所需的文件权限,请执行以下命令:
chown $USER config.toml
chmod 0600 config.toml
选择不同的配置文件¶
在某些情况下,例如持续集成、持续部署 (CI/CD) 环境,您可能更喜欢为测试和部署管道创建专用配置文件,而不是在单个 Snowflake 默认配置文件中定义所有可能的配置。
要使用不同的配置文件而不是默认文件,可以使用 snow
命令的 --config-file
选项,如下所示:
snow --config-file="my_config.toml" connection test
支持系统环境变量¶
Snowflake CLI 支持使用系统环境变量覆盖 config.toml
文件中使用以下格式定义的参数值:
SNOWFLAKE_<config-section>_<variable>=<value>
其中:
<config_section>
是配置文件中带有句点的部分替换为下划线 (_
) 的名称 (.
),例如CLI_LOGS
。变量是该部分中定义的变量的名称,例如
path
。
一些例子包括:
覆盖
config.toml
文件中[cli.logs]
部分中的path
参数:export SNOWFLAKE_CLI_LOGS_PATH="/Users/jondoe/snowcli_logs"
设置
myconnection
连接的密码:export SNOWFLAKE_CONNECTIONS_MYCONNECTION_PASSWORD="*******"
设置默认连接名称:
export SNOWFLAKE_DEFAULT_CONNECTION_NAME="myconnection"
配置日志记录¶
默认情况下,Snowflake CLI 自动将 INFO
、WARNING
和 ERROR
级别消息保存到日志文件中。要禁用或自定义日志记录,请在 config.toml
文件中创建 [cli.logs]
部分:
[cli.logs]
save_logs = true
level = "info"
path = "/home/<username>/.snowflake/logs"
其中:
save_logs
指示是否将日志保存到文件中。默认:true
。level
指定要保存到日志文件的消息级别。 从以下级别中进行选择,其中包括所选级别以下的所有级别:debug
警告
切换到
debug
日志记录级别可能会暴露敏感信息,例如已执行 SQL 查询。启用此级别时要小心。info
warning
error
默认:
info
path
指定保存日志文件的绝对路径。路径的格式因操作系统而异,如下所示:Linux:
path = "/home/<your_username>/.config/snowflake/logs"
MacOS:
path = "/Users/<your_username>/Library/Application Support/snowflake/logs"
Windows:
path = "C:\\Users\\<your_username>\\AppData\\Local\\snowflake\\logs"
如果未指定,该命令将在默认
config.toml
文件位置中创建logs
目录
如果您的 config.toml
是自动创建的,则 config.toml
文件包含填充有默认值的 |cli.logs|
部分。
一天的日志将附加到文件 snowflake-cli.log
中,后续重命名为 snowflake-cli.log.YYYY-MM-DD
,如图所示。
ls logs/
snowflake-cli.log snowflake-cli.log.2024-10-22