Airbyte连接MongoDB至MySQL时无法发现Schema的问题排查求助
问题复现
在全新安装的Airbyte环境中,配置MongoDB为数据源、MySQL为数据目标时,「发现Schema」阶段失败,报错如下:
Internal message: com.mongodb.MongoCommandException: Command failed with error 40353 (Location40353): 'Invalid $project :: caused by :: FieldPath must not end with a '.'.' on server 192.168.86.20:27017. The full response is {"ok": 0.0, "errmsg": "Invalid $project :: caused by :: FieldPath must not end with a '.'.", "code": 40353, "codeName": "Location40353"} Failure type: system_error
查询语句定位方法
- 查看Airbyte连接器日志:在Airbyte UI的「连接」页面找到对应MongoDB数据源连接,点击「查看日志」,搜索包含
$project或MongoCommandException的条目,日志中会附带Airbyte发送给MongoDB的完整查询语句。 - 开启调试日志:调整Airbyte部署的日志级别为
DEBUG,或在MongoDB数据源配置中启用调试模式,重新触发「发现Schema」操作,此时日志会输出查询语句的生成细节。 - 抓包分析:在Airbyte服务器与MongoDB服务器之间用
tcpdump抓包,过滤27017端口的流量,解析数据包中的查询内容,定位异常的$project语句。
问题解决方案
根据报错,核心是Airbyte生成的$project语句存在末尾带.的字段路径,可按以下方式处理:
- 修正MongoDB字段名:检查数据源集合,若存在字段名末尾带
.(如field.)的情况,重命名这类不符合MongoDB规范的字段后重试。 - 升级Airbyte版本:该问题属于旧版本已知bug,升级到最新稳定版(如v0.50及以上)可修复字段路径生成的异常逻辑。
- 手动指定Schema:若无法修改MongoDB字段,可在Airbyte数据源配置中手动定义Schema,跳过包含末尾
.的字段,绕过自动发现流程。
内容的提问来源于stack exchange,提问作者johnspackman
相关产品推荐
相关产品推荐

