如何使用ApacheNiFi在Elasticsearch中处理动态索引创建



我正在使用Nifi将数据路由到Elasticsearch。我使用NiFi根据一组属性动态创建索引。我在Elasticsearch中使用索引生命周期策略管理,它要求所有索引都必须事先手动引导,才能应用ILM设置。由于我的NiFi流会自动将消息接收到Elasticsearch中,因此自动创建的任何索引都不会应用ILM策略。

目前我的流量是来自卡夫卡的Nifi Consume-->更新属性-->PutElasticsearch记录。

一个解决方案(我认为(是在PutElasticsearch处理器之前调用invokehttp处理器,通过在弹性搜索之前提取的属性动态引导索引。索引是使用以下语法动态创建的:index_${attribute_1}_${attribute_2}。这里我唯一关心的是调用invokehttpprocessor将与每个新的流文件一起运行。这可能需要数千次调用来引导索引。如果索引已经存在,可能会发生冲突。

这真的是最好的方法吗?也许我可以运行QueryElasticsearchRecord处理器来获得索引列表,并以某种方式将其与attribute_1attribute_2字段上的传入流文件相匹配。但我认为,这仍然需要一个持续的查询?

如果并且仅当InvokeHTTP看到一个特定的值或属性,该值或属性表示需要一个新的(以前未发送的(索引值输入到ElasticSearch时,您可以运行InvokeHTTP。如果你想沿着这条路走下去,这只是个主意。

最新更新