我想对运行增量 AWS Glue 爬网后出现的分区缺失问题进行故障排除。
简短描述
当 AWS Glue 爬网程序运行增量爬取时,它只能识别爬网程序在上一次爬取之后添加的分区。要添加分区,分区中超过 70% 的文件必须与爬网程序的表具有相同的架构。
**重要事项:**AWS Glue 爬网程序无法添加先前标记为架构不匹配的分区。最佳做法是在爬网程序运行之前,确保所有新分区的属性与原始表的属性相匹配。
解决方法
打开与爬网程序上次爬取相对应的 Amazon CloudWatch 日志,然后搜索新分区的 Amazon Simple Storage Service (Amazon S3) 前缀。如果新分区的架构和原始表的架构不匹配,则会出现“Partition does not match table schema or has mismatch keys”(分区与表架构不匹配或键不匹配)消息。
如果您收到上述错误消息,请验证新分区和原始表中的以下属性是否匹配:
确保新分区的 S3 结构与原始表的 S3 结构相匹配。例如,如果原始表的 S3 结构使用 yyyy-mm-dd 日期格式,则新分区的 S3 结构也必须使用 yyyy-mm-dd 日期格式。如果属性不匹配,请修改新分区中的文件,使其与原始表相匹配。
然后,使用 Athena 将新分区添加到表中。对于 Hive 式分区,请运行 MSCK REPAIR TABLE 命令。对于非 Hive 式分区,请运行 ALTER TABLE ADD PARTITION 命令。