Как получить подключение pyodbc в AWS MWAA Airflow DAG?

#python-3.x #amazon-web-services #airflow #pyodbc #mwaa

#python-3.x #amazon-веб-сервисы #воздушный поток #pyodbc #mwaa

Вопрос:

Я попытался вставить requirements.txt для MWAA Airflow с pyodbc=4.0.30 и в коде, сделал строку подключения типа

 dbconnection = pyodbc.connect("Driver={ODBC Driver 17 for SQL Server};Server=" Server ";Database=" Database ";UID=" UserID ";PWD=" Password, autocommit=True)
 

Теперь ошибка заключается в следующем Broken DAG: [/usr/local/airflow/dags/test.py] No module named 'pyodbc'

Версия Airflow: 1.10.12

В документации вряд ли есть какая-либо документация по SQL Server/ Postgres основанному соединению MWAA AWS , особенно для pyodbc подключения, я ранее столкнулся с этой проблемой lambda functions и разобрался с lambda layers ней, но не уверен, как MWAA это работает, любые предложения приветствуются.

Пожалуйста, не рекомендуйте какие-либо другие технологии, такие как EC2, для размещения Airflow, поскольку компания очень жестко использует MWAA Airflow.

Комментарии:

1. Похоже, вы пытаетесь работать с pyodbc напрямую. В этом случае это точно так же, как и любой другой пакет python в вашем коде. На самом деле это не связано с Airflow или mwaa? В Airflow, если вы хотите использовать ODBC, вам следует установить ODBC provider pypi.org/project/apache-airflow-backport-providers-odbc и используйте OdbcHook — хук работает с подключением ODBC, которое вы определите в Admin -> Connections.

Ответ №1:

 import pymssql

conn = pymssql.connect(
            server=server,
            user=username,
            password=password,
            database=database
        )
query ="select IDpk,name,Remarks from TestTable"
df = pd.read_sql(query,conn)
 

Комментарии:

1. docs.aws.amazon.com/mwaa/latest/userguide/…