AWS Lake Formation压缩失败:无法创建日志流的解决步骤咨询
遇到的问题是:Lake Formation Compaction任务执行后,S3中已经生成合并后的run-*.parquet文件,但控制台显示任务失败,报错提示“Optimizer was unable to create log stream in your account. Please double check the permissions with this Table.”
根本原因
Compaction的核心数据合并逻辑已经完成,但任务因无法创建CloudWatch日志流来记录任务过程,被标记为失败。问题出在Lake Formation Optimizer使用的IAM角色缺少日志操作权限,或者权限配置存在问题。
解决步骤
检查并补充Optimizer角色的CloudWatch权限
找到Lake Formation用于Compaction的服务角色(通常是默认的AWSGlueServiceRole-*,或者你自定义的角色),为其添加以下IAM权限:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/lakeformation/optimizer:*" } ] }同时确保角色的信任关系允许
lakeformation.amazonaws.com服务主体扮演该角色。验证表的Lake Formation权限配置
在Lake Formation控制台进入对应表的详情页,切换到“Permissions”标签,确认Optimizer角色已被授予ALTER和SELECT权限,这是Compaction任务正常执行的基础权限。排查CloudWatch Logs资源策略限制
如果你的账户配置了CloudWatch Logs的资源策略,检查是否存在阻止该角色创建/aws/lakeformation/optimizer/*日志组或日志流的规则,如有则调整策略放行。重新触发Compaction任务
完成上述配置后,手动触发一次Compaction任务,观察控制台状态是否更新为成功,同时可前往CloudWatch Logs查看是否生成了对应的日志流,确认日志写入正常。
额外说明
S3文件合并成功意味着数据层面的Compaction已经完成,只是日志记录环节的失败导致任务状态异常。修复权限后,后续任务会正常记录日志和更新状态,也方便后续排查其他潜在问题。
内容的提问来源于stack exchange,提问作者Mike R

