AWS Glue Crawler排除规则不生效问题排查求助
Glue Crawler 排除非latest.json文件的正确配置
你的问题出在排除模式的写法上,Glue Crawler的排除规则是基于相对于包含路径的相对路径,且通配符的使用需要精准对应文件路径结构。
针对你的目录结构,正确的排除模式应该是:
**/[0-9]*.json
这个模式会匹配任意子目录下以数字开头的JSON文件(比如foo/00001.json、bar/00001.json),从而将它们排除,只保留latest.json。
如果要更通用地排除所有非latest.json的JSON文件,也可以采用包含模式限定的方式:
- 包含路径保留为
s3:<bucket_name>/datalake/datasets/ - 在包含模式中添加
**/latest.json
这种方式直接限定爬虫只抓取各子目录下的latest.json,无需额外设置排除规则,逻辑更清晰。
另外需要注意几个常见误区:
- 不要省略目录分隔符
/,比如你之前用的**0*会匹配路径中包含0的目录或文件名,但无法精准匹配foo/00001.json这种结构,必须写成**/0*.json才能匹配子目录下以0开头的文件。 - 确认排除模式是添加在爬虫配置的排除路径列表里,而非包含路径区域。
- 爬取完成后,记得在Athena中刷新表结构,避免查看缓存的旧数据。
内容的提问来源于stack exchange,提问作者rictuar
相关产品推荐
相关产品推荐

