我有我的第一个处理组,该处理组将表中的索引删除。 然后路由到确实插入表中的另一个进程组。 成功插入五十万行之后,我想在表上创建索引并进行分析。这是典型的数据仓库方法。谁能给我建议如何做到这一点?
我尝试设置计数器,但是无法在“表达式语言”中引用计数器。我已经尝试过RouteOnAttribute但没有成功。现在,我正在研究“等待并通知处理器”-也许那里有解决方案?
我已经获得了计数器来对流文件sql插入语句进行计数,但是无法通过表达式语言引用计数器值。即,此操作始终返回null:“ $ {InsertCounter}”,在其中正确设置了InsertCounter的情况下,它通过我的UpdateCounter进程显示在流程中。
那么也许可以使用此代码?
在等待处理器中,将目标信号计数设置为$ {fragment.count}。
在通知和等待处理器中将释放信号标识符设置为$ {fragment.identifier}
没有任何作用
答案 0 :(得分:1)
您可以使用“等待/通知”处理器来执行此操作。 我假设您正在使用ExecuteSQL,SplitAvro?如果是这样,则流程将如下所示:
在第二个进程组中
fragment.identifier
和fragment.count
(= 5,000)属性。
fragment.identifier
(发布信号标识符)的计数增加1。已执行5,000次。在第三个进程组中
fragment.identifier
(发布信号标识符)达到fragment.count
(目标信号计数)。此路由处理original
FlowFile,因此仅执行一次。或者,如果可能的话,使用具有记录意识的处理器将使流程更简单,更高效。
答案 1 :(得分:0)