Snowflake加载本地CSV执行PUT命令报错如何解决
报错核心原因
Snowflake网页端工作表无本地文件系统访问权限,不支持直接执行PUT命令上传本地文件。PUT命令仅可在能读取本地磁盘的客户端(SnowSQL、本地驱动连接的IDE等)中运行,这是你执行命令报错的直接原因。
方案1:无需安装任何客户端,网页端快速上传(适配教程跟练场景)
全程不需要敲PUT命令,新手操作成本最低:
- 提前在对应数据库、Schema下创建与CSV字段结构匹配的目标表
- 在左侧对象导航栏找到已创建的
MY_CSV_STAGE内部托管阶段,点击进入阶段详情页 - 点击详情页的「上传文件」按钮,在本地文件选择弹窗中选中目标CSV文件,等待上传完成
- 回到工作表执行
COPY INTO命令,将阶段内的文件写入目标表,参考命令如下:
COPY INTO 你的目标表名 FROM @MY_CSV_STAGE FILE_FORMAT = ( TYPE = 'CSV' FIELD_OPTIONALLY_ENCLOSED_BY = '"' SKIP_HEADER = 1 ) PATTERN = '.*csv_dateien_fuer_snowflake.csv.gz';
注意:开启自动压缩后,上传到阶段的文件会自动添加
.gz后缀,PATTERN匹配规则需要对应上;SKIP_HEADER=1代表跳过CSV首行表头,可根据自身CSV的实际格式调整FILE_FORMAT内的参数。
方案2:通过SnowSQL执行
PUT命令上传 如果需要走命令行上传流程,按以下步骤操作即可:
- 下载对应操作系统版本的SnowSQL安装包,按默认引导完成安装
- 打开本地终端/命令提示符,执行连接命令登录Snowflake账号:
snowsql -a 你的Snowflake账号标识符 -u 登录用户名 -d 使用的数据库名 -s 使用的Schema名 -w 使用的虚拟仓库名
执行后按提示输入登录密码,完成连接
- 连接成功后,执行修正路径格式的
PUT命令(Windows路径统一使用正斜杠,避免转义错误):
PUT 'file://C:/Users/User/Downloads/Projekte/csv_dateien_fuer_snowflake.csv' @MY_CSV_STAGE AUTO_COMPRESS=TRUE;
PUT命令执行完成后,执行和方案1一致的COPY INTO命令,将阶段内文件写入目标表即可完成导入。
内容的提问来源于stack exchange,提问作者Siver R
相关产品推荐
相关产品推荐

