将 S3 存储桶添加到 Lake Formation 后,Athena 查询失败

问题描述

  • 这是我们在 Athena 中得到的错误HIVE_UNKNowN_ERROR: Error creating an instance of com.facebook.presto.hive.lakeformation.CachingLakeFormationCredentialsProvider
  • 存储桶已在 Lake Formation 注册
  • 用于查询 Athena 的角色已在 Lake Formation 中获得对数据库数据库中所有表的完全访问权限
  • 已授予角色访问 Lake Formation 数据位置部分中底层 s3 存储桶的权限。

解决方法

已联系 AWS 支持。原来问题是我有“-”和“。”在我的 Athena 数据库名称中。根据雅典娜文档:

“数据库名称、表名称和列名称唯一可接受的字符是小写字母、数字和下划线字符。” (https://docs.aws.amazon.com/athena/latest/ug/glue-best-practices.html#schema-names)

出于某种原因,当我们在 Lake Formation 外工作时,这不是问题,但是一旦我们在 LF 中注册了 S3 位置,它就开始失败。我已经确认从数据库名称中删除这些字符可以解决问题。

,

确保您在存储桶名称后面包含斜杠 (/)