如何在ODBC与SnowSQL连接设置中调整Snowflake仓库规格
Snowflake客户端仓库规格配置方案
SnowSQL和ODBC两类客户端均支持通过连接参数指定使用的仓库,无需固定在Snowflake UI调整,具体配置方法如下:
SnowSQL仓库调整方法
你当前用Small规格是因为连接时没有指定目标仓库,默认使用用户绑定的默认仓库,可通过以下3种方式修改:
- 连接命令直接传参
在现有snowsql启动命令中新增--warehouse参数指定目标仓库即可,示例如下:
snowsql -f ${INPUT_QUERY_FILE} \ -o quiet=true \ -o friendly=false \ -o header=true \ -o output_format=csv \ -o output_file=output_data/data.csv \ --accountname=${INPUT_ACCOUNT_NAME} \ --username=${INPUT_USER_NAME} \ --dbname=${INPUT_DBNAME} \ --private-key-path=/root/.snowsql/rsa_key.p8 \ --config /config \ --warehouse=DATA_SCIENCE_WH_L
上述配置就会直接使用Large规格的DATA_SCIENCE_WH_L仓库执行查询。
2. 配置文件固定默认仓库
在Snowsql配置文件的[connections]段新增仓库配置,后续所有连接默认使用该仓库,无需每次传参:
[connections] authenticator = SNOWFLAKE_JWT private_key_path = /root/.snowsql/rsa_key.p8 warehouse = DATA_SCIENCE_WH_L
- 连接后临时切换
如果需要在会话中灵活切换规格,可在SQL脚本开头执行切换语句:
USE WAREHOUSE DATA_SCIENCE_WH_L;
ODBC仓库调整方法
你当前ODBC默认使用Large规格,是因为R连接代码中指定了warehouse = 'DATA_SCIENCE_WH_L',要调整规格有两种方式:
- 直接修改R代码参数
把dbConnect方法中的warehouse参数值替换为目标规格对应的仓库名即可,比如要换成Small规格,修改为:
sfconn <- DBI::dbConnect(odbc::odbc(), dsn = 'snowflake', warehouse = 'DATA_SCIENCE_WH_S', database = 'ourorg', role='DATA_SCIENCE_FULL')
- DSN配置文件固定默认仓库
在odbc.ini的DSN配置段新增WAREHOUSE配置项,后续连接无需再在代码中传该参数:
[snowflake] Description=SnowflakeDB Driver=SnowflakeDSIIDriver Locale=en-US SERVER=<ourorg>.us-east-1.snowflakecomputing.com PORT=443 SSL=on ACCOUNT=<ourorg>.us-east-1 UID=MY_NAME PRIV_KEY_FILE=/home/my_name/keys/rsa_key.p8 PRIV_KEY_FILE_PWD=blahblah AUTHENTICATOR=SNOWFLAKE_JWT WAREHOUSE=DATA_SCIENCE_WH_S
注:Snowflake的仓库规格(Small/Large等)是创建仓库时预先配置的属性,不同规格对应不同的仓库名,连接时指定对应仓库名即可自动使用对应规格的算力
内容的提问来源于stack exchange,提问作者user14328853
相关产品推荐
相关产品推荐

