Python 是否有人使用Docker apache/airflow:2.0.1访问SQL Server

Python 是否有人使用Docker apache/airflow:2.0.1访问SQL Server,python,sql-server,docker,airflow,Python,Sql Server,Docker,Airflow,我正在用docker compose使用基本容器apache/airflow:2.0.1试用apache airflow 我正在学习这个教程 如何运行简单查询以从SQL Server数据库获取数据 在这个阶段,我只是想看看是否可能 我已经厌倦了扩展图像 FROM apache/airflow:2.0.1 RUN pip install apache-airflow-providers-microsoft-azure==1.2.0rc1 RUN pip install --no-cache-dir

我正在用docker compose使用基本容器apache/airflow:2.0.1试用apache airflow

我正在学习这个教程

如何运行简单查询以从SQL Server数据库获取数据

在这个阶段,我只是想看看是否可能

我已经厌倦了扩展图像

FROM apache/airflow:2.0.1
RUN pip install apache-airflow-providers-microsoft-azure==1.2.0rc1
RUN pip install --no-cache-dir --user apache-airflow-providers-microsoft-mssql
# this fails
# RUN pip install --no-cache-dir --user apache-airflow-providers-odbc
用这个来获取数据

def mssql_功能**kwargs: conn=MsSqlHook.get\u connectionconn\u id=mssql\u默认值 钩子 df=hook.get\u pandas\u dfsql=从sometable中选择前5个* 在df上做任何你需要的事情 printdf
有什么想法吗?

我在这里回答我自己的问题,主要是因为我最初的问题没有给人们提供太多的信息。非常感谢所有的回应

我需要添加几个包来让mssql连接正常工作,所以我扩展了docker映像。这是一个bug,所以我也需要添加apache和microsoft azure

Dockerfile

FROM apache/airflow:2.0.1
RUN pip install apache-airflow-providers-microsoft-azure==1.2.0rc1
RUN pip install apache-airflow-providers-microsoft-mssql
按照教程中的指定,构建新图像并设置env var以在docker compose中使用它

docker build-t search/apache:2.0.1-f./Dockerfile。 echo-e avirflow\u IMAGE\u NAME=custom/apache:2.0.1>>.env 下面是获取一些数据的代码,我通过Airflow中connections屏幕上的UI添加了连接

达格

从气流导入DAG 从afflow.operators.python导入PythonOperator,获取当前上下文,任务 从airflow.providers.microsoft.mssql.hooks.mssql导入MsSqlHook 从airflow.utils.dates导入天\u 默认参数={ “所有者”:“气流”, } 与达格 “测试etl mssqlhook”, 默认参数=默认参数, description='ETL DAG测试3', 计划时间间隔=无, 开始日期=日期前2天, 标记=['test'], 作为dag: dag.doc\u md=\u doc__ def启动**kwargs: 普林梅! def提取**kwargs: conn=MsSqlHook.get\u connectionconn\u id=mssql\u默认值 钩子 df=hook.get\u pandas\u dfsql=从dbo.atable中选择前5个* 在df上做任何你需要的事情 printdf 启动任务=PythonOperator 任务_id='start', python_callable=start, 提取任务=PythonOperator 任务_id='extract', python_callable=extract, 启动\u任务>>提取\u任务
那么您是否有任何错误?那么您是否有Microsoft SQL Server?链接教程使用Postgres。请发布完整的dag代码。@derpirscher我甚至没有收到错误,这是我的问题。原来芹菜调度程序刚刚停止,DAG都没有工作。我把它吹走了,然后错误出现了,让我找到了答案。thx无论如何。@Always从公司的SQL Server中得知我正在构建一个数据湖,我需要点击SQL Server来获取数据,所以构建我的模型-没有其他数据库连接可以做到这一点