Apache Airflow 2.2.5找不到DB2连接类型如何创建连接
问题原因
Airflow核心安装包默认不会内置所有数据源的适配组件,连接类型下拉列表找不到DB2选项,是因为未安装DB2对应的Airflow官方适配依赖包,未安装的情况下系统不会加载DB2相关的连接类型、操作算子和Sensor组件。
解决步骤
- 安装DB2适配依赖
对应Airflow 2.x及以上版本,直接在Airflow运行环境中执行安装命令:pip install apache-airflow-providers-ibm-db2
安装完成后必须重启Airflow的webserver和scheduler服务,否则新安装的组件不会被加载。 - 验证连接选项
服务重启完成后,重新进入Airflow WebUI的新建连接页面,连接类型下拉列表中即可找到IBM DB2选项,按页面提示填写DB2的主机地址、端口、数据库名、登录用户名、密码后保存连接即可。 - 配置轮询逻辑
连接创建完成后,即可在DAG中使用SqlSensor实现表记录轮询,参考示例如下:from airflow import DAG from airflow.providers.ibm.db2.sensors.sql import SqlSensor from datetime import datetime with DAG( dag_id="db2_record_poll", start_date=datetime(2024, 1, 1), schedule=None, catchup=False ) as dag: poll_target_record = SqlSensor( task_id="wait_for_specified_record", conn_id="之前创建的DB2连接ID", sql="SELECT 1 FROM 你的目标业务表 WHERE 目标记录匹配条件 FETCH FIRST 1 ROWS ONLY;", mode="poke", poke_interval=60, # 轮询间隔,单位秒,可按业务需求调整 timeout=3600 # 最长等待超时时间,单位秒,避免无限轮询 ) # 检测到记录后挂载下游任务即可 # poll_target_record >> your_follow_up_task
注意:如果是基于Docker部署的Airflow,需要将依赖安装命令写入自定义镜像的Dockerfile构建新镜像,或者分别进入webserver、scheduler的运行容器执行安装命令后重启对应容器,仅在宿主机安装依赖不会生效。
内容的提问来源于stack exchange,提问作者Puja Shaw
相关产品推荐
相关产品推荐

