You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Snowflake COPY INTO命令符合条件时仍拆分文件?

Snowflake COPY INTO 小文件异常拆分问题排查与解决

问题场景

执行COPY INTO导出数据时,已配置MAX_FILE_SIZE = 10000000(10MB),待导出数据仅数MB,远小于设定的文件大小限制,同时指定single=false,但Snowflake仍将数据拆分为多个文件,与官方文档中“MAX_FILE_SIZE大于待传输数据量时不会拆分”的描述不符。执行语句如下:

copy into @some-S3-path/some-test5/
from
(select 'abcd')
    
FILE_FORMAT = (TYPE = 'CSV' COMPRESSION = 'NONE' FIELD_OPTIONALLY_ENCLOSED_BY = '"')

MAX_FILE_SIZE = 10000000
overwrite = False
single=false
include_query_id = False
detailed_output = false
header = True;

可能原因及对应解决方法

  • 虚拟仓库并行度触发拆分:Snowflake导出依赖虚拟仓库的计算节点并行处理,即使数据量小,若虚拟仓库节点数(如XS规格默认2节点)大于1,每个节点可能独立生成文件。
    • 解决:临时切换为单节点虚拟仓库(如指定WAREHOUSE = XS_SINGLE)后执行导出,降低并行度。
  • CSV表头的并行输出干扰:开启header = True后,并行处理时每个节点会单独输出表头,进而生成多个小文件。
    • 解决:要么先导出无表头数据,再单独上传表头文件;若业务允许,改用single=true强制生成单个文件。
  • 会话级参数缓存残留:此前设置过MAX_FILE_SIZE=5GB,会话内可能存在参数缓存,未完全覆盖新设置。
    • 解决:开启新会话执行导出,或先执行ALTER SESSION UNSET MAX_FILE_SIZE;清除会话缓存后再运行COPY INTO。
  • 目标路径文件残留影响:目标S3路径下若存在历史小文件,可能干扰Snowflake的文件生成判断。
    • 解决:清空目标路径所有文件后重新执行导出,验证是否仍会拆分。

内容的提问来源于stack exchange,提问作者Yotam Levy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 06:05:03