Apache nifi NiFi在将记录插入表后创建索引
我有了第一个在表中删除索引的进程组。 然后路由到另一个进程组,并将其插入表中。 在成功插入50万行之后,我想在表上创建索引并对其进行分析。这是典型的数据仓库方法。有人能就如何做到这一点提供建议吗 我已尝试设置计数器,但无法在表达式语言中引用计数器。我试过了,但一无所获。现在我正在深入研究等待和通知处理器-也许有一个解决方案 我已获得计数器来计数流文件sql insert语句,但无法通过表达式语言引用计数器值。Ie这总是返回空值:“${InsertCounter}”,在正确设置InsertCounter的地方,它通过我的流中的UpdateCounter进程显示 那么也许这个代码可以使用 在等待处理器中,将目标信号计数设置为${fragment.Count} 将notify和wait处理器中的释放信号标识符设置为${fragment.Identifier}Apache nifi NiFi在将记录插入表后创建索引,apache-nifi,Apache Nifi,我有了第一个在表中删除索引的进程组。 然后路由到另一个进程组,并将其插入表中。 在成功插入50万行之后,我想在表上创建索引并对其进行分析。这是典型的数据仓库方法。有人能就如何做到这一点提供建议吗 我已尝试设置计数器,但无法在表达式语言中引用计数器。我试过了,但一无所获。现在我正在深入研究等待和通知处理器-也许有一个解决方案 我已获得计数器来计数流文件sql insert语句,但无法通过表达式语言引用计数器值。Ie这总是返回空值:“${InsertCounter}”,在正确设置InsertCoun
什么都不管用我想我对这个问题的建议也适合你的情况
查看它您可以使用等待/通知处理器来执行此操作。 我想你使用的是ExecuteSQL,SplitAvro?如果是,则流将如下所示: 分裂法 第二组
- ExecuteSQL:例如,1个包含5000条记录的输出流文件
- SpritAvro:创建5000个流文件,此处理器添加
片段.标识符
和
片段.计数
(=5000)属性。
- 拆分:
- XXXX:对每个记录进行一些转换
- PutSQL:单独插入记录
- 通知:将
片段标识符(释放信号标识符)的计数增加1。执行了5000次
- 原始-到下一个进程组
- 拆分:
- 等待:等待
(释放信号标识符)到达fragment.identifier
(目标信号计数)。此路由处理原始流程文件,因此只执行一次fragment.count
- PutSQL:执行查询以创建索引和分析表
- ExecuteSQL:例如,1个包含5000条记录的输出流文件
- 执行记录级转换:使用UpdateRecord或LookupRecord,您可以在不将记录拆分为多个流文件的情况下进行数据处理
- PutSQL:执行查询以创建索引和分析表。由于包含所有记录的单个流文件不需要等待/通知,因此输出流文件可以连接到下游流