如何让AWS Glue Crawler为S3文件夹创建独立表而非Partitions?
AWS Glue Crawler 生成独立表而非分区的配置说明
你的需求是让每个S3文件夹对应一张独立的Glue表,而非将文件夹作为单表的分区,此时将Crawler的Table level设为2就是正确的解决方案,这是由Glue Crawler的核心识别逻辑决定的:
- 当Table level设为1或留空时,Crawler会把根路径(
s3://my-bucket/)识别为单个表,将第一层子文件夹自动解析为该表的分区,这就是你看到1张表加628个分区的原因。 - 当Table level设为2时,Crawler会将第一层子文件夹(即你的628个目标文件夹)各自作为独立的表,每个文件夹下的文件对应该表的数据源,完全匹配你生成628张独立表的需求。
若要确保配置稳定生效,还需检查以下细节:
- 确认每个文件夹内的文件格式、数据Schema一致(若不同文件夹Schema存在差异,Crawler仍会生成独立表,但需开启Schema变更检测功能)
- 检查Crawler的Include path仅配置根路径
$PATH,无需额外添加子路径规则 - 确认Crawler的自定义配置中未设置合并表的规则(比如
groupingPolicy相关的自定义参数)
如果之前运行过Table level为1的Crawler,需额外处理:
- 手动删除之前生成的带分区的单表,避免后续Crawler运行时出现元数据冲突
- 重新启动设为Table level=2的Crawler,确保它能完整识别所有子文件夹并生成独立表
内容的提问来源于stack exchange,提问作者sridhar5999
相关产品推荐
相关产品推荐

