使用AirbyteTriggerSyncOperator同步数据时遇Invalid URL错误
AirbyteTriggerSyncOperator连接失败:MissingSchema URL错误
执行任务时触发以下错误:
requests.exceptions.MissingSchema: Invalid URL 'localhost/jobs': No scheme supplied. Perhaps you meant https://airbyte-server/jobs?
相关配置与环境信息
连接配置
Airflow UI中配置的airbyte_conn连接详情:
Conn Id: airbyte_conn Conn Type: HTTP Host: localhost Schema: (empty) Login: airbyte Password: password (airbyte defaults) Port: 8001 (airbyte server port - docker)
DAG任务代码
sync_airbyte_to_clickhouse_task = AirbyteTriggerSyncOperator( task_id='sync_airbyte_to_clickhouse', airbyte_conn_id='airbyte_conn', connection_id='45ce102e-1d33-4834-836a-592d37ee1316', asynchronous=False, timeout=3600, wait_seconds=10, dag=dag, )
环境
- 采用Docker Compose编排,Airflow、Airbyte、ClickHouse均运行于Docker容器
- Apache Airflow 2.x
已尝试操作
- 检查Airflow中
airbyte_conn的配置参数,确认无误 - 确认Airbyte服务已正常启动,但Airflow仍因URL问题无法建立连接
解决方案
1. 补充连接的协议Schema
Airflow HTTP类型连接的Schema字段需填写协议(http或https),之前留空导致生成的URL缺少协议头,引发MissingSchema错误。修改airbyte_conn的Schema值为http。
2. 替换Host为Docker服务名
Docker Compose网络内,localhost指向Airflow容器自身,而非Airbyte容器。需将Host替换为Docker Compose中Airbyte服务的名称(默认是airbyte-server),确保Airflow能正确访问Airbyte服务。
修改后的完整连接配置:
Conn Id: airbyte_conn Conn Type: HTTP Host: airbyte-server Schema: http Login: airbyte Password: password Port: 8001
3. 验证连接有效性
进入Airflow容器,执行以下命令测试Airbyte服务连通性:
curl http://airbyte-server:8001/api/v1/health
返回健康状态则说明配置正确。
内容的提问来源于stack exchange,提问作者Darvy Betances
相关产品推荐
相关产品推荐

