es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cloud Composer no puede conectarse a la base de datos de SQL Server instalada en una máquina virtual de Azure.

Tengo una base de datos de origen SQL Server instalada en la instancia VM de Azure, y quiero sincronizar los datos con Bigquery. He elegido Apache Airflow para crear un DAG que realice este trabajo. El sistema de origen solo se puede conectar a través de la red VPN.

Conecté mi sistema local a la red y utilicé el paquete de Python pymssql para consultar la base de datos. Pude conectarme y ejecutar consultas. He desarrollado un flujo de trabajo DAG y lo he probado en mi entorno local. Ahora quiero implementar ese flujo de trabajo DAG en el entorno de GCP Composer.

Antes de crear un entorno de composer, he creado con éxito una red VPC entre GCP y Azure. Y para confirmar que la conexión es exitosa, creé una instancia de VM e hice una conexión Telnet a la IP de la base de datos para asegurarnos de que podemos hacer ping al servidor de la base de datos. Desde la instancia de VM, pudimos hacer ping al servidor de la base de datos. Pero al crear un entorno de composer en la misma red e implementar el código DAG, muestra el siguiente error:

Traceback (most recent call last):
  File "/home/airflow/gcs/dags/source.py", line 201, in <module>
    conn = pymssql.connect(server='x.x.x.x', user=<username>, password=<password>, database=<dbname>)
  File "src/pymssql/<em>pymssql.pyx", line 652, in pymssql.</em>pymssql.connect
pymssql._pymssql.OperationalError: (20009, b'Mensaje de error de DB-Lib 20009, gravedad 9:\nNo se puede conectar: el servidor adaptativo no está disponible o no existe (x.x.x.x)\nMensaje de error de Net-Lib durante el Time out de conexión (110)\nMensaje de error de DB-Lib 20009, gravedad 9:\nNo se puede conectar: el servidor adaptativo no está disponible o no existe (x.x.x.x)\nMensaje de error de Net-Lib durante el Time out de conexión (110)\n')

Las siguientes son las bibliotecas que se utilizan:

  • pymssql == 2.2.2

He estado enfrentando este error durante los últimos días. Sé que debe haber un problema en la configuración de la red, pero no he podido encontrar ese error. Cualquier ayuda es apreciada. ¡Gracias!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución para el error de la tubería DAG al implementarla en el entorno del compositor de GCP

    Declaración del problema

    El usuario desea mover datos de una base de datos de SQL Server instalada en la instancia de Azure VM a BigQuery. Para esto, el usuario ha elegido Apache Airflow para crear una tubería DAG. Como el sistema fuente solo puede conectarse a través de la red VPN, el usuario conectó el sistema local a la red utilizando el paquete Python pymssql para consultar la base de datos. Después de desarrollar la tubería DAG, el usuario desea implementarla en el entorno del compositor de GCP. Sin embargo, durante la implementación, el usuario encontró el siguiente error:

    Traceback (most recent call last):
      File "/home/airflow/gcs/dags/source.py", line 201, in <module>
        conn = pymssql.connect(server='x.x.x.x', user=<username>, password=<password>, database=<dbname>)
      File "src/pymssql/_pymssql.pyx", line 652, in pymssql._pymssql.connect
    pymssql._pymssql.OperationalError: (20009, b'DB-Lib error message 20009, severity 9:\nUnable to connect: Adaptive Server is unavailable or does not exist (x.x.x.x)\nNet-Lib error during Connection timed out (110)\nDB-Lib error message 20009, severity 9:\nUnable to connect: Adaptive Server is unavailable or does not exist (x.x.x.x)\nNet-Lib error during Connection timed out (110)\n')
    

    Solución

    Basado en el mensaje de error, parece que hay un problema de configuración de red. Aquí hay algunos pasos que el usuario puede intentar para resolver el problema:

    1. Asegúrese de que las instancias de máquinas virtuales en Azure puedan comunicarse con las instancias de Google Cloud a través de la conexión VPN. Verifique las reglas del cortafuegos y permita los protocolos requeridos para la comunicación.
    2. Verifique que todos los puertos necesarios para conectarse al servidor SQL estén abiertos en las reglas del cortafuegos de Azure. Esto ayudaría a confirmar si el problema es causado por la configuración del cortafuegos.

    3. Intente ejecutar la tubería DAG desde la instancia de VM en GCP Composer. Esto ayudaría a confirmar si el problema está en la tubería DAG o si hay un problema en la configuración de la red.

    4. Verifique que la dirección IP del servidor SQL proporcionada en la tubería DAG sea correcta y se pueda acceder desde la instancia de Google Cloud.

    5. Verifique que el servidor de la base de datos esté configurado para permitir conexiones desde clientes remotos.

    6. Verifique que la configuración de red del servidor SQL permita el tráfico desde el entorno del compositor de GCP.

    7. Verifique que no haya interrupciones de red o problemas de conectividad entre los dos entornos.

    Estos pasos deberían ayudar al usuario a resolver el problema. Si el problema persiste, el usuario puede buscar ayuda de los respectivos equipos de soporte de Azure y GCP.

Comments are closed.