Wie kann ich den Fehler „Bei der Kommunikation mit Amazon Athena ist ein Fehler aufgetreten“ beheben, wenn ich mit einem JDBC- oder ODBC-Treiber eine Verbindung zu Athena herstelle?

Lesedauer: 4 Minute
0

Ich habe Probleme mit dem Verbindungstimeout, wenn ich Amazon Athena mit einem Java Database Connectivity (JDBC)- oder Open Database Connectivity (ODBC)-Treiber verwende. Oder ich kann die Athena-Abfrageergebnisse in meinem Business Intelligence-Tool nicht sehen.

Behebung

Die häufigste Ursache für diesen Fehler ist die Verbindung zwischen dem Host, auf dem Sie den JDBC- oder ODBC-Treiber installiert haben, und Athena- oder AWS Glue-Endpunkten.

Um diesen Fehler zu beheben, überprüfen Sie die Konnektivität zwischen dem Treiber, der sich auf dem installierten Host befindet, und Athena oder AWS Glue.

Hinweis: Ersetzen Sie in den folgenden Schritten NAME in vpce-NAME durch Ihren VPC-Endpunktnamen.

Konnektivität zu Athena

Beachten Sie die folgenden Punkte, um sicherzustellen, dass Sie über eine ausreichende Verbindung zu Athena verfügen:

  • Ihr Host kann sich entweder über einen öffentlichen Athena-Endpunkt oder einen privaten Athena-Endpunkt mit Athena verbinden. Weitere Informationen zum Festlegen des Endpunkts finden Sie unter Befehlszeilenoptionen und in der Boto3-Dokumentation.
  • Athena verwendet Port 443, um sich mit dem Host zu verbinden.
  • Die Streaming-API von Athena verwendet Port 444, um die Abfrageergebnisse zu streamen. Wenn Sie einen JDBC- oder ODBC-Treiber verwenden, verwendet Athena diesen Port, um die Abfrageergebnisse an den Treiber auf dem Client-Host zu streamen. Wenn Sie also einen JDBC- oder ODBC-Treiber verwenden, um eine Verbindung zu Athena herzustellen, entsperren Sie diesen Port. Wenn dieser Port blockiert ist, läuft Ihr Business Intelligence-Tool möglicherweise ab oder zeigt keine Abfrageergebnisse an, wenn Sie eine Abfrage ausführen.

Athena-Endpunktkonnektivität

Ein Athena-Endpunkt sieht ähnlich aus wie athena.us-east-1.amazonaws.com. Wenn Sie den Endpunkt in einem Befehl eingeben, achten Sie darauf, die AWS-Zielregion im Endpunkt zu aktualisieren.

Um die Konnektivität eines Endpunkts zu testen, führen Sie je nach Betriebssystem (OS) die folgenden Befehle aus:

Hinweis: Sie können diese Befehle auch verwenden, um die Konnektivität zu Port 444 zu testen.

Windows

telnet athena.us-east-1.amazonaws.com 443

-oder-

Test-NetConnection -Computer_Name athena.us-east-1.amazonaws.com -Port 443

Linux oder macOS

nc -v athena.us-east-1.amazonaws.com 443

Wenn Sie einen Virtual Private Cloud (VPC)-Endpunkt für privates DNS verwenden, fügen Sie in diesen Befehlen vpce-NAME an den Anfang Ihres Endpunkts an. Geben Sie beispielsweise anstelle von athena.us-east-1.vpce.amazonaws.com vpce-NAME.athena.us-east-1.vpce.amazonaws.com für privates DNS ein. Ersetzen Sie NAME durch den Namen Ihrer VPC. Weitere Informationen zu privaten DNS finden Sie unter Herstellen einer Verbindung mit Amazon Athena mithilfe eines VPC-Schnittstellenendpunkts und Steuern des Zugriffs auf VPC-Endpunkte mithilfe von Endpunktrichtlinien.

Stellen Sie außerdem sicher, dass Sie die bewährten Methoden für ODCB - oder JDBC-Treiber befolgen. Beispielsweise erfordern beide Treiber, dass Sie Port 444 offen lassen.

Konnektivität zu AWS Glue

Überprüfen Sie unbedingt die Konnektivität zwischen dem Host, den Sie auf dem JDBC- oder ODBC-Treiber installiert haben, und AWS Glue. Ihr Host kann entweder mit einem öffentlichen AWS Glue-Endpunkt oder einem privaten AWS Glue-Service-Endpunkt eine Verbindung zu AWS Glue herstellen. Weitere Informationen finden Sie unter AWS Glue-Service-Endpunkte. Athena verwendet den AWS-Glue-Datenkatalog, um Tabellenmetadaten für die Amazon S3-Daten in Ihrem Konto zu speichern und abzurufen. Daher muss Ihr Treiber erfolgreich eine Verbindung zum AWS Glue-Katalog herstellen, um die Metadateninformationen der Tabelle abzurufen.

Wenn Sie einen öffentlichen AWS Glue-Endpunkt verwenden, testen Sie die Konnektivität mit einem Befehl, der dem folgenden Beispiel ähnelt:

Hinweis: Möglicherweise müssen Sie Test-NetConnection oder nc verwenden, um die Portkonnektivität auf der Grundlage Ihres Betriebssystems zu überprüfen.

telnet glue.us-east-1.amazonaws.com 443

Wenn Sie einen AWS Glue VPC-Schnittstellenendpunkt verwenden, testen Sie die Konnektivität mit einem Befehl, der dem folgenden Beispiel ähnelt:

Hinweis: Verwenden Sie den folgenden Befehl, wenn Sie privates DNS für den Endpunkt deaktiviert haben.

telnet vpce-NAME.glue.us-east-1.vpce.amazonaws.com 443

Weitere Informationen

Verbindung zu Amazon Athena mit ODBC- und JDBC-Treibern herstellen

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 10 Monaten