AWS Glue Studio 到 AWS Athena 表

问题描述 投票:0回答:2

我在 AWS Athena 中有一个数据库,里面有一堆表。我想使用 AWS Glue Studio 执行这些表的联接。我已订阅适用于 Amazon Athena 的 CData AWS Glue 连接器。当我尝试使用此连接器创建连接并连接到 AWS Athena 中的其中一个表时,出现以下错误:

Py4JJavaError: An error occurred while calling o61.getSource. : java.lang.AssertionError: assertion failed: Glue ETL Marketplace: Either user/password or secretId should be provided for JDBC connector. at scala.Predef$.assert(Predef.scala:170) at com.amazonaws.services.glue.util.DataCatalogWrapper$$anonfun$22.apply(DataCatalogWrapper.scala:301) at com.amazonaws.services.glue.util.DataCatalogWrapper$$anonfun$22.apply(DataCatalogWrapper.scala:264) at scala.util.Try$.apply(Try.scala:192) at com.amazonaws.services.glue.util.DataCatalogWrapper.getCustomSourceConf(DataCatalogWrapper.scala:264) at com.amazonaws.services.glue.GlueContext.getCustomSourceWithConnection(GlueContext.scala:437) at com.amazonaws.services.glue.GlueContext.getSourceInternal(GlueContext.scala:909) at com.amazonaws.services.glue.GlueContext.getSource(GlueContext.scala:751) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244) at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357) at py4j.Gateway.invoke(Gateway.java:282) at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132) at py4j.commands.CallCommand.execute(CallCommand.java:79) at py4j.GatewayConnection.run(GatewayConnection.java:238) at java.lang.Thread.run(Thread.java:748)

我已遵循此链接中提到的所有说明:https://www.cdata.com/kb/tech/athena-glue-studio.rst 有没有人使用 AWS Glue Studio 连接到 Athena 表,如果是,您是否遇到过这个问题?任何对此提供帮助的指示将不胜感激。

amazon-web-services aws-glue amazon-athena aws-glue-workflow
2个回答
0
投票

Athena 不是数据库,而是分布式查询引擎。

底层数据库位于 Glue 元数据目录中。您不需要连接器来连接到这些表,只需从数据源菜单中选择它,如下所示:


0
投票

要超越“应为 JDBC 连接器提供用户/密码或 SecretId。”,您将需要配置 Secrets Manager。

要建立与 Athena 实例的连接,请按照以下说明操作:

  1. 将 Athena 连接属性凭证存储在 AWS Secrets Manager 中: A。登录 AWS Secrets Manager 控制台 b.选择存储新秘密。 C。在“存储新机密”页面上,选择“其他类型的机密”。此选项意味着您必须提供机密的结构和详细信息。 d.在键/值对中添加 Athena 连接属性 e.单击“下一步”,您可以保留其他配置步骤的默认值。

您可以在下面的 AWS 文档中找到有关如何创建 AWS Secrets Manager 密钥的更多信息:https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html

  1. 创建自定义连接器,然后保存更改。

  2. 然后创建连接。添加连接名称,选择默认的“连接凭证类型”,然后选择您创建的 AWS 密钥的名称。

不幸的是,您必须再次完成连接属性,因为这似乎是 Glue Studio 的一个怪癖。

我还建议将 AuthScheme 属性设置为“密码”,并且添加 Logfile 和 Verbosity 属性以启用日志记录始终是一个好主意,以防万一。

  1. 创建工作。

你应该可以走了。

© www.soinside.com 2019 - 2024. All rights reserved.