您的位置:首页 > 其它

etl工具nifi使用系列(二):简单数据处理processor的使用

2017-12-02 20:58 796 查看
etl工具nifi使用系列(一):nifi介绍及基本概念

etl工具nifi使用系列(二):简单数据处理processor的使用

etl工具nifi使用系列(三):关于nifi Expression Language 表达式

etl工具nifi使用系列(四):打印日志调试

etl工具nifi使用系列(五):与外部交互(HDFS、mysql、kafka)

etl工具nifi使用系列(六):使用ExecuteScript执行脚本

etl工具nifi使用系列(七):开发自己的processor

etl工具nifi使用系列(八):调用rest api

处理数据:

AttributeToJson:将流数据的属性转换为json

配置attributes list:添加属性名称,可以将属性名称和属性值拼接为json键值对。

destination如果选择是flowfile-attribute,则会新增一个名为“JSONAttributes“的json类型新属性。



EvaluateJsonPath:使用jsonPath表达式语言获取json文件的节点和内容。



Jsonpath与XPath的语法结构近似,可以参考以下博客。

地址:http://www.cnblogs.com/kill0001000/p/4884803.html

EvaluateXPath:通过xPath解析xml文件。

可以配置选项中Destination选择flow-attribute操作流的节点。

Return Type选择string返回结果为字符串。添加属性(corpcode),添加属性获取规则(/result/scheme/tool_info/attribute::corpcode)获取xml文件中节点下的属性。

或者(/result/scheme/tool_info)获取xml文件中节点中的内容。

EvaluateXPath组件应用XPath对xml进行操作,关于XPath的具体使用方法参考:http://www.w3school.com.cn/xpath/index.asp

EvaluateXQuery:获取xml中多个节点,并将他们拆分成多个流,基于XQuery表达式语言。

XQuery参考:http://w3school.com.cn/xquery/xquery_example.asp

SplitText:将文件按照行分割,Line Split Count参数设置分割步长

SplitJson:拆分json数组,勾选failure、original

JsonPath Expression:选择json中需要拆分的字段名称,该字段名称中的value为json格式的多条数据,组件会将value中的多条数据拆分成数量相等的数据流,并舍弃拆分字段名称value值之外的所有数据。

jsonPath:$.name[*]

原始数据:{“name”: [{“last”: “li”},{“first”: “wang”}],”testdata”: “test”}

分割后后变成两条:

{“last”:”li”}

{“first”:”wang”}

如果整体数据就是jsonArray的形式,jsonPah可以用
$.*
。另外如果文件名重复,可以使用updateAttribute更改filename,设置为uuid。



存储数据:

PutElasticsearch5:将数据存储到ES中,勾选全部三个选项

Putfile:配置接收文件路径,勾选failure、success

数据分流:

RouteOnAttribute

RouteOnContent :使用正则匹配flow-content的内容。需要添加一个动态属性,属性名称将会作为一个新的relationship输出,属性值将作为匹配的规则。

以下是从数据库取出数据,判断是否是多条的例子:



正则表达式
^\[(.*)\]$
,匹配以
[
开始
]
结束的内容



RouteText

数据压缩:

CompressContent

数据加密:

EncryptContent
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: