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

如何在Redshift COPY时加载指定文件夹下所有PARQUET文件并排除JSON文件?

解决Redshift COPY命令仅加载PARQUET文件并排除JSON的问题

你可以通过以下两种方式实现只加载目标文件夹中的PARQUET文件,排除JSON文件:

方法1:使用正则表达式筛选文件

利用Redshift COPY命令的REGEXP参数,匹配所有.parquet后缀的文件,同时指定父路径让Redshift递归扫描所有带时间戳的子文件夹:

COPY 你的目标表名
FROM 's3://bucket/path/'
IAM_ROLE 'arn:aws:iam::你的账号ID:role/你的Redshift角色名'
FORMAT AS PARQUET
REGEXP '.*\\.parquet';

这个命令会自动遍历s3://bucket/path/下所有子文件夹(包括带时间戳的),仅加载符合正则规则的PARQUET文件,完全忽略JSON文件。

方法2:结合通配符与正则表达式

如果需要明确匹配一级子文件夹(即时间戳文件夹),可以用*通配符指代未知的时间戳,再配合正则筛选文件:

COPY 你的目标表名
FROM 's3://bucket/path/*/'
IAM_ROLE 'arn:aws:iam::你的账号ID:role/你的Redshift角色名'
FORMAT AS PARQUET
REGEXP '.*\\.parquet';

这里的*会匹配任意命名的一级子文件夹(比如2024-06-07),再通过正则确保只加载PARQUET格式文件。

注意:虽然FORMAT AS PARQUET会指定解析格式,但加上REGEXP可以彻底避免Redshift尝试读取JSON文件,从根源解决加载失败的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 05:05:58