首页 > 解决方案 > 无法创建新的 AWS Athena 数据目录

问题描述

我正在尝试在 Athena 中创建新的 Glue 数据目录。它总是以 INVALID_INPUT 失败,没有其他错误上下文。

这是我正在使用的 API https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Athena/Client.html#create_data_catalog-instance_method

选择 type = GLUE 时,它总是因输入无效而失败。

require 'aws-sdk-athena'
Aws::Athena::Client.new.create_data_catalog(name: 'testing', type: "GLUE")
Aws::Athena::Errors::InvalidRequestException (INVALID_INPUT)
    from (irb):51:in `rescue in irb_binding'
    from (irb):51

即使使用 AWS CLI,它也会失败并出现同样的神秘错误。

aws athena create-data-catalog --region us-west-1 --name testing --type GLUE                                                                                                                                                                               

An error occurred (InvalidRequestException) when calling the CreateDataCatalog operation: INVALID_INPUT

如何为 Athena 创建新的 Glue 数据目录?还是我仅限于默认值AwsDataCatalog

标签: amazon-web-servicesamazon-athena

解决方案


TL; DR:你已经有一个 Glue 数据目录,你只能有一个,这是一个非常糟糕的错误。

我的猜测是这个 API 的文档和实现都很差。当 Athena 推出时,它有自己的目录实现,因为 Glue 还不存在。启动 Glue 时,如果您开始使用 Athena,则必须选择使用 Glue 的目录,而新用户默认获得 Glue 目录。我不记得这是否是您用来迁移到 Glue 目录的 API 调用,但它可能是。

无论哪种方式,每个帐户只有一个 Glue 数据目录,而您已经有一个,我怀疑错误实际上只是您无法创建另一个。这大致就是 Athena 的错误消息在过去的实用性和帮助性。“出事了,你自己解决!” 当他们添加 Federated Query 和外部 Hive 目录时,他们本可以改进此 API 调用,添加有关 Glue 的适当文档以及有意义的错误消息,但我猜他们选择不这样做。


推荐阅读