Snowflake查询含冒号的外部阶段前缀无结果,如何转义路径?
解决Snowflake外部阶段含冒号路径的查询问题
问题根源是路径中的冒号:会被Snowflake当作特殊语法解析(比如用于指定文件格式、压缩类型的分隔符),直接拼接在路径里会导致解析逻辑混乱,无法匹配到目标前缀。
你可以通过以下两种方式解决:
方式1:用单引号包裹路径部分
把带冒号的路径段用单引号括起来,让Snowflake将其当作完整字符串处理:
SELECT * FROM @s3data/'runs/2022/12/01/15:33:03/'
方式2:使用PATTERN参数过滤
通过PATTERN正则匹配目标前缀,绕开冒号的解析冲突:
-- 从上级路径过滤目标子路径 SELECT * FROM @s3data/runs/2022/12/01/ PATTERN => '15:33:03/.*' -- 直接从根阶段匹配完整前缀 SELECT * FROM @s3data/ PATTERN => 'runs/2022/12/01/15:33:03/.*'
以上两种写法都能准确匹配到目标前缀下的文件。
内容的提问来源于stack exchange,提问作者shadowtalker
相关产品推荐
相关产品推荐

