amazon-web-services - 无法创建新的 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
?
解决方案
TL; DR:你已经有一个 Glue 数据目录,你只能有一个,这是一个非常糟糕的错误。
我的猜测是这个 API 的文档和实现都很差。当 Athena 推出时,它有自己的目录实现,因为 Glue 还不存在。启动 Glue 时,如果您开始使用 Athena,则必须选择使用 Glue 的目录,而新用户默认获得 Glue 目录。我不记得这是否是您用来迁移到 Glue 目录的 API 调用,但它可能是。
无论哪种方式,每个帐户只有一个 Glue 数据目录,而您已经有一个,我怀疑错误实际上只是您无法创建另一个。这大致就是 Athena 的错误消息在过去的实用性和帮助性。“出事了,你自己解决!” 当他们添加 Federated Query 和外部 Hive 目录时,他们本可以改进此 API 调用,添加有关 Glue 的适当文档以及有意义的错误消息,但我猜他们选择不这样做。
推荐阅读
- maven - 有没有办法让aspectj maven插件忽略丢失的编织依赖项而不是使构建失败?
- java - 将 OpenCV Python 代码转换为 Java 代码,用于将边框/描边/轮廓转换为透明 PNG
- nginx - NGINX 上的全局变量
- java - logback 不会将异常记录到从 ThreadPoolTaskExecutor 池线程抛出的文件中
- firebase - Firebase FCM 向消息添加分析标签失败
- asp.net - aspx 智能感知不工作。标记推荐变为 <%@ %>。如何解决这个问题?
- memory-management - lex/yacc 如何使用数组访问内存?
- javascript - 如何每月在 Firebase 中制作销售报告?
- .net - 在 binace 上放置未来订单时出现对象引用错误
- python - Pytorch 中的线性回归问题。未实现错误