将 S3 存储桶添加到 Lake Formation 后 Athena 查询失败
Athena Query fails after adding S3 bucket to Lake Formation
- 这是我们在 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 数据库名称中。根据 Athena 文档:
“数据库名称、table 名称和列名称的唯一接受table 字符是小写字母、数字和下划线字符。” (https://docs.aws.amazon.com/athena/latest/ug/glue-best-practices.html#schema-names)
出于某种原因,当我们在 Lake Formation 之外工作时这不是问题,但是一旦我们在 LF 中注册 S3 位置,它就开始失败。我已经确认从数据库名称中删除这些字符可以解决问题。
- 这是我们在 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 数据库名称中。根据 Athena 文档:
“数据库名称、table 名称和列名称的唯一接受table 字符是小写字母、数字和下划线字符。” (https://docs.aws.amazon.com/athena/latest/ug/glue-best-practices.html#schema-names)
出于某种原因,当我们在 Lake Formation 之外工作时这不是问题,但是一旦我们在 LF 中注册 S3 位置,它就开始失败。我已经确认从数据库名称中删除这些字符可以解决问题。