Apache nifi NiFi-1.0.0-ExecuteSQL,事件驱动
我有一个NiFi流,它将一些数据插入到一些表中。在向表中插入一些数据后,我发送一个信号,然后ExecuteSQL对该表运行聚合查询。表名基于文件名 问题是,当ExecuteSQL运行查询时,我只得到结果的一个子集。若在数据库控制台中运行相同的查询,则返回的行数不同 这可能是一个与事件驱动的调度策略有关的问题吗Apache nifi NiFi-1.0.0-ExecuteSQL,事件驱动,apache-nifi,Apache Nifi,我有一个NiFi流,它将一些数据插入到一些表中。在向表中插入一些数据后,我发送一个信号,然后ExecuteSQL对该表运行聚合查询。表名基于文件名 问题是,当ExecuteSQL运行查询时,我只得到结果的一个子集。若在数据库控制台中运行相同的查询,则返回的行数不同 这可能是一个与事件驱动的调度策略有关的问题吗 如果ExecuteSQL被停止,并且我在ExecuteSQL的队列中获得流文件(信号),然后我手动启动ExecuteSQL,我将返回预期结果。如果您正在运行多个插入(例如使用PutSQL)
如果ExecuteSQL被停止,并且我在ExecuteSQL的队列中获得流文件(信号),然后我手动启动ExecuteSQL,我将返回预期结果。如果您正在运行多个插入(例如使用PutSQL),并且您希望仅在所有插入都完成后运行ExecuteSQL,它们完成的顺序并不确定,您可以尝试以下两种方法之一:
- MergeContent-在PutSQL之后使用MergeContent处理器,设置插入完成时要触发的最小条目数和/或最大仓位。您可以将合并的关系路由到ExecuteSQL
- MonitorActivity-使用MonitorActivity处理器监视PutSQL的输出流,并在配置的时间段后触发非活动警报。您可以将非活动关系路由到ExecuteSQL以运行聚合查询
- MergeContent-在PutSQL之后使用MergeContent处理器,设置插入完成时要触发的最小条目数和/或最大仓位。您可以将合并的关系路由到ExecuteSQL
- MonitorActivity-使用MonitorActivity处理器监视PutSQL的输出流,并在配置的时间段后触发非活动警报。您可以将非活动关系路由到ExecuteSQL以运行聚合查询