Я пытаюсь запустить DAG через Airflow на моем docker контейнере для доступа к моей базе данных SQL со следующими данными:
server = '####'
database = '####'
username = '####'
password = '####'
driver = '{ODBC Driver 13 for SQL Server}'
params = urllib.parse.quote_plus('DRIVER='+driver+';SERVER='+server+';PORT=1433;DATABASE='+database+';UID='+username+';PWD='+ password)
engine = sqlalchemy.create_engine("mssql+pyodbc:///?odbc_connect=%s" % params)
def push_to_sql(**context):
salesforce_report = context['task_instance'].xcom_pull(task_ids='fetch_sf_data')
salesforce_report.to_sql('Daily_Report_SF',engine,if_exists='replace' ,index=False)
, но получаю следующий код ошибки:
pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 13 for SQL Server' : file not found (0) (SQLDriverConnect)")
Я попытался использовать следующее решение ( Не могу открыть lib 'ODB C Драйвер 13 для SQL Сервер'? Проблема линковки Sym? ), но это не сработало.
Когда я запускаю odbcinst -j
, я получаю следующее:
unixODBC 2.3.6
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
Если это помогает узнать, контейнер запускает образ puckel / docker -flowflow на компьютере, работающем на Windows 10. Что я делаю не так и как это исправить?
Большое спасибо за вашу помощь!