Python 是否有人使用Docker apache/airflow:2.0.1访问SQL Server
我正在用docker compose使用基本容器apache/airflow:2.0.1试用apache airflow 我正在学习这个教程 如何运行简单查询以从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
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来获取数据,所以构建我的模型-没有其他数据库连接可以做到这一点