¿Cómo puedo solucionar el error «Se ha producido un error al comunicarme con Amazon Athena» al conectarme a Athena con un controlador JDBC u ODBC?
Tengo problemas de tiempo de espera de conexión cuando utilizo Amazon Athena con un controlador de conectividad de bases de datos Java (JDBC) o conectividad de bases de datos abiertas (ODBC). O bien, no puedo ver los resultados de las consultas de Athena en mi herramienta de inteligencia empresarial.
Resolución
La causa más común de este error es la conexión entre el host en el que instaló el controlador JDBC u ODBC y los puntos de conexión de Athena o AWS Glue.
Para solucionar este error, compruebe la conectividad entre el controlador que se encuentra en el host instalado y Athena o AWS Glue.
Nota: En los siguientes pasos, sustituye el NOMBRE en vpce-NAME por el nombre de su punto de conexión de VPC.
Conectividad a Athena
Para asegurarse de que tiene una conectividad adecuada a Athena, tenga en cuenta los siguientes puntos:
- Su host puede conectarse a Athena con un punto de conexión de servicio público de Athena o un punto de conexión privado de Athena. Para obtener más información sobre cómo configurar el punto de conexión, consulte las Opciones de línea de comandos y la documentación de Boto3.
- Athena usa el puerto 443 para conectarse al host.
- La API de transmisión de Athena usa el puerto 444 para transmitir los resultados de consulta. Cuando usa un controlador JDBC u ODBC, Athena usa este puerto para transmitir los resultados de la consulta al controlador que se encuentra en el host del cliente. Por lo tanto, cuando utilice un controlador JDBC u ODBC para conectarse a Athena, desbloquee este puerto. Si este puerto está bloqueado, es posible que se agote el tiempo de espera de la herramienta de inteligencia empresarial o que no muestre los resultados al ejecutar una consulta.
Conectividad del punto de conexión de Athena
Un punto de conexión de Athena tiene un aspecto similar a athena.us-east-1.amazonaws.com. Cuando introduzca el punto de conexión en un comando, asegúrese de actualizar la región de AWS de destino en el punto de conexión.
Para probar la conectividad de un punto de conexión, ejecute los siguientes comandos según su sistema de operaciones (SO):
**Nota:**También puede usar estos comandos para probar la conectividad al puerto 444.
Windows
telnet athena.us-east-1.amazonaws.com 443
-o-
Test-NetConnection -Computer_Name athena.us-east-1.amazonaws.com -Port 443
Linux o macOS
nc -v athena.us-east-1.amazonaws.com 443
Si utiliza un punto de conexión de nube privada virtual (VPC) para el DNS privado, añada el vpce-NAME al principio del punto de conexión en estos comandos. Por ejemplo, en lugar de athena.us-east-1.vpce.amazonaws.com, escriba vpce-NAME.athena.us-east-1.vpce.amazonaws.com para el DNS privado. Sustituya NAME por el nombre de su VPC. Para obtener más información sobre el DNS privado, consulte Conectarse a Amazon Athena mediante un punto de conexión de VPC de interfaz y Controlar el acceso a los puntos de conexión de VPC mediante políticas de punto de conexión.
Además, asegúrese de seguir las prácticas recomendadas para los controladores ODCB o JDBC. Por ejemplo, ambos controladores requieren que mantenga abierto el puerto 444.
Conectividad a AWS Glue
Asegúrese de comprobar la conectividad entre el host que instaló en el controlador JDBC u ODBC y AWS Glue. Su host puede conectarse a AWS Glue con un punto de conexión de servicio público de AWS Glue o un punto de conexión de servicio privado de AWS Glue. Para obtener más información, consulte Puntos de conexión de servicio de AWS. Athena usa el catálogo de datos de AWS Glue para almacenar y recuperar los metadatos de las tablas para los datos de Amazon S3 de su cuenta. Por lo tanto, el controlador debe conectarse correctamente al catálogo de AWS Glue para obtener la información de los metadatos de la tabla.
Si utiliza un punto de conexión de servicio público de AWS Glue, pruebe la conectividad con un comando similar al siguiente ejemplo:
Nota: Puede que necesite usar Test-NetConnection o nc para comprobar la conectividad del puerto en función de su sistema operativo.
telnet glue.us-east-1.amazonaws.com 443
Si utiliza un punto de conexión de la interfaz de la VPC de AWS Glue, pruebe la conectividad con un comando similar al siguiente ejemplo:
Nota: Usa el siguiente comando si has desactivado el DNS privado para el punto de conexión.
telnet vpce-NAME.glue.us-east-1.vpce.amazonaws.com 443
Información relacionada
Contenido relevante
- OFICIAL DE AWSActualizada hace 8 meses
- OFICIAL DE AWSActualizada hace 3 años
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 2 años