我尝试从SQL Server中提取数据并使用generate table fetch。当我使用MYSQL数据库而不是SQL Server为同一个生成表提取它时,它按预期工作。每当我用来连接SQL Server时,我都会收到如下错误。
GenerateTableFetch[id=07bed292-0162-1000-0000-00004bc12345] failed to process session due to java.lang.IllegalArgumentException: Order by clause cannot be null or empty when using row paging: Order by clause cannot be null or empty when using row paging
SQL Server版本:2016
我浏览了以下链接,并了解到SQL Server生成表提取存在错误。但是我不知道错误是否已修复。
https://github.com/apache/nifi/pull/1510
Nifi版本I使用 - 1.5
有人可以告诉我这个错误是否已修复,如果没有解决这个错误的解决方案。
这是我的流程。
修改
答案 0 :(得分:2)
这是NiFi中某些DatabaseAdapter中的一个错误,使用的GenerateTableFetch没有设置Max-value Column。在这种情况下,有一种解决方法,您可以使用2008驱动程序,然后使用ReplaceText处理器来替换" ORDER BY asc"使用" ORDER BY newid()asc"。我试图在任何地方找到这可能是一个问题,我会写一个Jira来涵盖所有案例。一般症状是没有ORDER BY子句的OFFSET / LIMIT子句。
答案 1 :(得分:0)
@ user805,
在GenerateTableFetch中访问SQL Server2016时,我也遇到了这个问题。
GenerateTableFetch[id=07bed292-0162-1000-0000-00004bc12345] failed to process session due to java.lang.IllegalArgumentException: Order by clause cannot be null or empty when using row paging: Order by clause cannot be null or empty when using row paging
我已将databasetype
更改为 Generic
,从而解决了该问题。
不知道它的根本原因。但该解决方案可能适合您的情况。
希望这对你有帮助。