使用GenerateTableFetch对接SQL Server 2016时遇到异常问题
关于NiFi 1.5中GenerateTableFetch对接SQL Server 2016的问题解答
首先直接给你结论:你提到的那个针对SQL Server的GenerateTableFetch组件bug,在NiFi 1.5版本中并未修复。
具体原因说明:
- 你关注的那个PR是专门修复SQL Server下
GenerateTableFetch的分页查询语法兼容问题(比如适配SQL Server的TOP/OFFSET-FETCH逻辑),这个修复是在NiFi 1.7.0版本中正式合并到主分支的。 - NiFi 1.5的发布时间早于该修复的合并时间,所以这个版本的组件依然存在已知bug,导致对接SQL Server 2016时报错,而MySQL不存在这类语法兼容问题,因此能正常运行。
可行的解决方案:
- 升级NiFi版本:将NiFi升级到1.7.0或更高版本,就能直接使用修复后的
GenerateTableFetch组件,无需额外调整。 - 临时替代方案:如果暂时无法升级,可以用
ExecuteSQL配合SplitRecord组件模拟分页拉取逻辑:- 用
ExecuteSQL执行手动编写的SQL Server分页语句(比如使用OFFSET ... FETCH NEXT ...语法) - 用
SplitRecord将查询结果拆分为单条记录,实现类似GenerateTableFetch的分页效果
- 用
内容的提问来源于stack exchange,提问作者data_addict
相关产品推荐
相关产品推荐

