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
destination如果选择是flowfile-attribute,则会新增一个名为“JSONAttributes“的json类型新属性。
Jsonpath与XPath的语法结构近似,可以参考以下博客。
地址:http://www.cnblogs.com/kill0001000/p/4884803.html
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
jsonPath:$.name[*]
原始数据:{“name”: [{“last”: “li”},{“first”: “wang”}],”testdata”: “test”}
分割后后变成两条:
{“last”:”li”}
{“first”:”wang”}
如果整体数据就是jsonArray的形式,jsonPah可以用
RouteOnContent :使用正则匹配flow-content的内容。需要添加一个动态属性,属性名称将会作为一个新的relationship输出,属性值将作为匹配的规则。
以下是从数据库取出数据,判断是否是多条的例子:
正则表达式
RouteText
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.aspSplitText:将文件按照行分割,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
数据分流:
RouteOnAttributeRouteOnContent :使用正则匹配flow-content的内容。需要添加一个动态属性,属性名称将会作为一个新的relationship输出,属性值将作为匹配的规则。
以下是从数据库取出数据,判断是否是多条的例子:
正则表达式
^\[(.*)\]$,匹配以
[开始
]结束的内容
RouteText
数据压缩:
CompressContent数据加密:
EncryptContent相关文章推荐
- etl工具nifi使用系列(六):使用ExecuteScript执行脚本(1)
- ETL工具之Kettle的简单使用一
- 关于使用ETL工具Kettle的简单介绍(三)
- etl工具nifi使用系列(一):nifi介绍及基本概念
- 关于使用ETL工具Kettle的简单介绍(一)
- 关于使用ETL工具Kettle的简单介绍(二)
- ETL工具kettle与java结合使用程序生成一个简单的转化文件
- etl工具nifi使用系列(三):关于nifi Expression Language 表达式
- ASP.NET AJAX入门系列(10):Timer控件简单使用
- 再次推荐SQLPrompt3 -简单破解无限期的使用这款很不错的SQL查询分析工具
- ASP.NET AJAX入门系列(10):Timer控件简单使用
- 数据自动生成工具 DataFactory 的简单使用
- ASP.NET AJAX入门系列(10):Timer控件简单使用
- 关于mysql界面工具的简单使用
- JAR工具的简单使用
- ASP.NET AJAX入门系列(10):Timer控件简单使用
- javascript入门系列演示·函数的定义以及简单参数使用,调用函数
- ASP.NET AJAX入门系列(10):Timer控件简单使用
- ASP.NET AJAX入门系列(10):Timer控件简单使用
- 防U盘病毒——简单办法(不使用额外工具)