Apache nifi 在Nifi分布式缓存中执行查找

Apache nifi 在Nifi分布式缓存中执行查找,apache-nifi,Apache Nifi,我正在nifi中配置一个样本查找,其中我正在distributedcache中使用PutDistributedMapCache放置一个样本记录。现在我配置了一个查找记录处理器,它读取一个示例json,在分布式缓存中查找两个属性,并填充一个字段 缓存项标识符:${id\u store},${id\u product} 流量: 查找记录配置 生成流向putcache的流文件: 为lookuprecord生成流文件: 问题是查找总是以不匹配的关系发送记录,而value_product1的值总是为

我正在nifi中配置一个样本查找,其中我正在distributedcache中使用PutDistributedMapCache放置一个样本记录。现在我配置了一个查找记录处理器,它读取一个示例json,在分布式缓存中查找两个属性,并填充一个字段

缓存项标识符:${id\u store},${id\u product}

流量:

查找记录配置

生成流向putcache的流文件:

为lookuprecord生成流文件:

问题是查找总是以不匹配的关系发送记录,而value_product1的值总是为空。 请帮我找丢失的东西

更新:

已更改缓存项标识符。

查找记录密钥已更改为:

LookupRecord中出错:我已仔细检查了JSON模式


在第一个屏幕截图中,PutDistributedMapCache的配置将缓存条目标识符显示为id\u store、id\u product。该值应具有表达式语言,并且可能应为${id\u store}{u${id\u product}。假设存储id为1,产品id为2,这将在缓存中创建一个键为1_2的条目


在LookupRecord中,DistributedMapCacheLookupService只接受一个键,您有键和键2。您需要将key设置为记录路径语句,该语句将id_存储和id_产品连接起来,以形成与上面相同的key。所以concat/id_store,''.'和/id_product

感谢Bryan的输入,我已经做了建议的更改,但仍然没有进行查找。用屏幕快照更新了输入的问题Bryan:转到PutDistributedMapCache的GenerateFlowFile没有任何名为id_store或id_product的属性,它在流文件的内容中只有JSON。为了引用缓存项标识符中的值,您需要属性,您可以在GenerateFlowFile中添加用户定义的属性,这些属性将成为属性。因此,我在这个GenerateFlowFile中添加了两个用户定义的属性,attr1-${id\u store}和attr2{id\u product}。这是正确的吗?在我这样做之后,查找仍然失败。当我在putcache的数据源中检查属性部分时,它是空的。不,属性应该是id_store=1和id_product=3或与json匹配的任何内容