Apache nifi 如何使用QueryDatabaseTable获取所选年份记录?
我想使用QueryDatabaseTable处理器获取特定年份记录,如果我在QueryDatabaseTable中使用select*from table where year>2018,我该如何实现。请帮助如果使用自定义查询,它将接受自定义查询并通过将自定义查询的结果集别名为Apache nifi 如何使用QueryDatabaseTable获取所选年份记录?,apache-nifi,Apache Nifi,我想使用QueryDatabaseTable处理器获取特定年份记录,如果我在QueryDatabaseTable中使用select*from table where year>2018,我该如何实现。请帮助如果使用自定义查询,它将接受自定义查询并通过将自定义查询的结果集别名为表名来包装它,而不是使用表名和列来返回属性。因此,在您的案例中,生成的SQL的SELECT部分如下所示: SELECT * FROM (select * from table where year > 2018) te
表名
来包装它,而不是使用表名
和列来返回
属性。因此,在您的案例中,生成的SQL的SELECT部分如下所示:
SELECT * FROM (select * from table where year > 2018) test
该查询在源数据库中有效吗?您确定要在自定义查询中使用表
表而不是测试
表吗?如果您的意思是“代码>测试< /代码>,那么您的自定义查询只添加<<代码> 子句,考虑使用<代码>附加的WHERE子句< /Cult>属性,而不是<代码>自定义查询属性.< /P>
如果这些建议都不起作用,请按照Andy的建议更新您的问题,在日志中包括任何错误/堆栈跟踪和/或QueryDatabaseTable中的任何流文件的行为 请提供
QueryDatabaseTable
处理器的配置,您得到的结果(错误堆栈跟踪、无流文件等)还包括现有表的一段,显示有匹配的记录,并证明相同的查询在不同的环境中运行(CLI、查询编辑器)返回预期结果。@问题中附加了Andy图像。。这就是我的QueryDatabaseTable配置。在我的源数据库中,同样的查询也可以正常工作。请检查。@mattb表名本身是test,但为了更好地理解,我提到了as table而不是test,是的,查询是作为test table工作的