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

Snowflake COPY FILES命令执行耗时久且未实际复制文件

Snowflake COPY FILES 执行成功但文件未复制问题

问题详情

  • 执行以下SQL脚本,意图将归档目录的文件移回stage根目录(实现“取消归档”):
COPY FILES INTO @az_uksdistrib/
FROM @az_uksdistrib/Archived
FILES = ('RFPT.9439.005589.DAT')
  • 单个文件执行耗时约1分钟,查询显示执行成功,但目标目录未出现该文件;循环处理多文件时,每个文件同样耗时约1分钟,仍无文件复制成功。
  • @az_uksdistrib/Archived目录下存在约10万个小于5MB的小型DAT文件,怀疑此情况导致问题,但执行过程未出现超时错误。
  • 已设置DETAILED_OUTPUT = TRUE重新执行查询,结果面板仅显示查询未产生结果。

排查与解决建议

  1. 校验路径与文件匹配

    • 确认@az_uksdistrib/Archived下的目标文件路径完全匹配,注意Snowflake stage路径默认区分大小写。
    • 尝试用通配符缩小范围测试,比如FILES = ('RFPT*.DAT'),验证是否能匹配到目标文件。
  2. 检查权限与存储集成

    • 确认执行语句的角色拥有@az_uksdistrib的WRITE权限,以及@az_uksdistrib/Archived的READ权限。
    • 检查对应存储集成的配置是否正常,确保Snowflake能正常读写底层存储(如Azure Blob Storage)。
  3. 优化大量小文件的处理方式

    • 批量处理多个文件,比如一次指定多个文件名(FILES = ('file1.DAT', 'file2.DAT', ...)),减少单文件操作的重复目录扫描开销。
    • 先将小文件合并为大文件再移动:用COPY INTO把Archived目录的小文件加载到临时表,再通过UNLOAD导出为大文件到目标stage根目录,降低目录扫描压力。
  4. 深挖操作日志

    • 查看底层存储的操作记录(如Azure Portal中的Blob Storage日志),确认是否存在存储层的权限拦截或操作失败记录。
    • 在Snowflake的Query History中找到该语句的详细日志,排查是否有隐藏的错误信息(即使查询显示成功,底层存储操作可能未完成)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 10:44:59