Amazon web services 如何在带有DynamoDB Athena连接器的查询中使用AWS Glue元数据

Amazon web services 如何在带有DynamoDB Athena连接器的查询中使用AWS Glue元数据,amazon-web-services,amazon-dynamodb,aws-glue,amazon-athena,Amazon Web Services,Amazon Dynamodb,Aws Glue,Amazon Athena,我正在尝试使用雅典娜联邦查询系统和预构建的。我有连接器设置,因此可以运行如下查询: SELECT * FROM "lambda:<connector>".[Something]."DynamoDB Table Name" 从“lambda:[Something]“DynamoDB表名”中选择* 但是,对于一些表,我从连接器中得到以下Java错误: 通用\u用户\u错误:在上下文[检索元数据]中执行Lambda函数[]时遇到异常[null],并显示消息[执行Lambda函数时出现意

我正在尝试使用雅典娜联邦查询系统和预构建的。我有连接器设置,因此可以运行如下查询:

SELECT * FROM "lambda:<connector>".[Something]."DynamoDB Table Name"
从“lambda:[Something]“DynamoDB表名”中选择*
但是,对于一些表,我从连接器中得到以下Java错误:

通用\u用户\u错误:在上下文[检索元数据]中执行Lambda函数[]时遇到异常[null],并显示消息[执行Lambda函数时出现意外错误]

我相信这个错误是由于连接器推断表模式的能力有限,导致它在遇到表中缺少引用的数据时引发空引用异常。因此,我尝试使用建议的解决方案:

作为一种解决方法,您可以在Glue中定义此DDB表的模式。这将导致连接器绕过其模式推断功能,并可能停止错误,以便在我们调查时继续工作

我已经设置了一个glue crawler来抓取有问题的表,我已经运行了glue crawler,表的元数据可以在glue控制台中查看。但是,我不明白如何实际使用此元数据而不是使用连接器的模式推断。对有问题的表的任何查询都会返回相同的错误

其他一些可能相关的信息,但我不确定:

  • Dynamo中的表名的大写字母如下:MyTable。这将在胶水中更改为所有小写字母,如:mytable
  • 该表包含名称中带有大写字母的列,如:mycl1、mycl2等。这些列的胶水更改为所有小写字母,如:mycl1、mycl2等
  • 所有资源都使用CloudFormation而不是控制台进行了分区。如果有什么需要分区,我更愿意这样做,而不是通过控制台
  • 上面查询中的[Something]是数据库名称,但似乎任何任意输入都可以工作。我怀疑我可能必须指定这个来让查询使用glue,但这只是一个猜测,到目前为止我所尝试的都没有成功

  • 你有没有找到答案?我面临着完全相同的问题。