Generate table fetch SQL SERVER 2016的问题

时间:2018-03-13 17:48:47

标签: apache-nifi

我尝试从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

有人可以告诉我这个错误是否已修复,如果没有解决这个错误的解决方案。

这是我的流程。

enter image description here

修改

GenerateTableFetc: enter image description here

2 个答案:

答案 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 ,从而解决了该问题。

不知道它的根本原因。但该解决方案可能适合您的情况。

希望这对你有帮助。