NIFI的使用:
注意:FlowFile由【属性】和【内容】组成,在解析的过程中这个概念非常重要,因为有些组件操作的是属性,有些组件操作的是内容,在配置组件时Destination配置项的选择很重要,flowfile-content将解析结果放在数据流的内容中替换了原有的内容,flowfile-attribute将解析结果添加到flowfile的属性中,原本的内容不变。根据后续操作的需要,选择处理结果存放的位置。
(一)拖拽组件--选择类型--选择配置
处理器:
①Getfile:配置提取文件路径
②Putfile:配置接收文件路径,勾选failure、success
③SplitJson:拆分json,勾选failure、original
JsonPath Expression:选择json中需要拆分的字段名称,该字段名称中的value为json格式的多条数据,组件会将value中的多条数据拆分成数量相等的数据流,并舍弃拆分字段名称value值之外的所有数据。
Before:{"name": "lkd", "age": [{"max": "99"},{"min": "3"}],"testdata": "lkd"}
Last:{“max”:”99”}
{“min”:”3”}
将age中的两条数据拆分出来了
④PutElasticsearch5:将数据存储到ES中,勾选全部三个选项
ElasticSearch Hosts:配置主机:端口,localhost:9300
Identifier Attribute:标识符属性,选择了系统自动生成的uuid,或许可以使用我们生成的id作为标识,但是暂时没有理清数据的正确格式。能做到简单的通过uuid标识数据成功入库。
Index:索引名称
Type:类型名称
其他的必填参数系统已经自动生成,无需我们填写但是可以修改。
⑤SplitText:将文件按照行分割,Line Split Count参数设置分割步长
⑥AttributeToJson:将流数据的属性转换为json
配置attributes list:添加属性名称,可以将属性名称和属性值拼接为json键值对。
⑦EvaluateXPath组件解析xml文件。
配置选项中Destination选择flow-attribute操作流的节点。
Return Type选择string返回结果为字符串。
添加属性(corpcode),添加属性获取规则(/result/scheme/tool_info/attribute::corpcode)获取xml文件中节点下的属性。
或者(/result/scheme/tool_info)获取xml文件中节点中的内容。